![]() |
Показаны 28 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=65)
-- "1 2 3 4 ... Последняя страница" в vBulletin а я хочу (http://netadmin.ws/forum/showthread.php?threadid=5161)
"1 2 3 4 ... Последняя страница" в vBulletin а я хочу
когда страниц слишком много в vBulletin делает так "1 2 3 4 ... Последняя страница" , а я хочу чтоб было так 1 2 3 ... 11 12 13. Мелось но все таки так проще...
поддерживаю! 
__________________
yMC.ru - хомяк музыканта
Все бы хотели , а в Incvision такое уже есть, переходите на него
кстати вроде бы я видел какой то хак который так делает, на вборге...
__________________
КУКУ, врушка 
Ferz
quote:
переходите на него
__________________
yMC.ru - хомяк музыканта
2MCTarakan
quote:
фуууу, предатель!
__________________
пам парам пам пам 
и в итоге? какие новости по этому сабжу?
primitive
А где есть фунция, которая за это отвечает? Я хотел бы себе и на сайте такую, ее можно оторвать от остального кода? Нужен также код пагинации от вБ или Хиве - кто-нибудь его смотрел когда-то?
__________________
Международное брачное агенство в Сибири.
Tagore
Функция getpagenav() в admin/functions.php
Взять можно конечно. Неплохая функция для разбивки на страницы.
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid
Я знаю, где она, но мне не вполне не понятно, как она будет работать вне вБ кода. Как вынести ее оттуда? Или она просто будет работать? Помогите!
__________________
Международное брачное агенство в Сибири.
Tagore
У тебя так много званий (судя по подписи), а такие вопросы задаешь... Если ты знаешь php, то возьмешь. Если не знаешь php, то нечего и лезть туда. Извини за тон.
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid
Все правиьлно. Просто там много кода еще, которого надо взять... и тогда уже трудней.
__________________
Международное брачное агенство в Сибири.
Единственное что там мешает, так это вызов темлейтов. Ð_то можно легко заменить:
function getpagenav($results, $address) {
global $perpage, $pagenumber, $pagenavpages;
if ($results <= $perpage)
{
return "";
}
$totalpages = ceil($results/$perpage);
if ($pagenumber>1)
{
$prevpage = $pagenumber-1;
$prevlink = "<a href=\"$address&pagenumber=$prevpage\" title=\"Previous page\">«</a>";
}
if ($pagenumber<$totalpages)
{
$nextpage = $pagenumber+1;
$nextlink = "<a href=\"$address&pagenumber=$nextpage\" title=\"Next page\">»</a>";
}
while ($curpage++<$totalpages)
{
if ( ( $curpage <= $pagenumber-$pagenavpages || $curpage >= $pagenumber+$pagenavpages ) && $pagenavpages!=0 )
{
if ($curpage==1)
{
$firstlink = "<a href=\"$address&pagenumber=$curpage\" title=\"First page\">« First</a> ... ";
}
if ($curpage==$totalpages)
{
$lastlink = " ... <a href=\"$address&pagenumber=$curpage\" title=\"Last page\">Last »</a>";
}
}
else
{
if ($curpage==$pagenumber)
{
$pagenav .= " [$curpage] ";
}
else
{
$pagenav .= " <a href=\"$address&pagenumber=$curpage\">$curpage</a> ";
}
}
}
$pagenav = "<b>$totalpages Pages: $firstlink $prevlink $pagenav $nextlink $lastlink</b>";
return $pagenav;
}
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid
Ужасно непонятного тут нет, ну перечилсить манипулации было бы очень даже великодушно со твоей стороны. А то ведь ты это уже делал, а я - никогда раньше код на части не разрывал.
__________________
Международное брачное агенство в Сибири.
Denveroid уважаемый, может ты как для луюдей напишешь, ну как в стандарнтых хаках делают: "тут раньше было так, а теперь меняем на это..." а то не все Ð_НÐ_-соображающие тута 
__________________
yMC.ru - хомяк музыканта
MCTarakan
Хорошо, завтра прийду на работу и покажу пример. А сегодня надо отдыхать 
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid
А у тебя на сайте что за движок? Сам все писал или стянул откуда-то? Хорошо все-таки сделано. Грамотно.
__________________
Международное брачное агенство в Сибири.
Tagore
сам... но очень давно, 2 года назад. На самом деле он достаточно кривой. Сейчас вот думаю переписать, да со временем туго. Ну и с ленью все в порядке 
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid жду, уважаемый! 
__________________
yMC.ru - хомяк музыканта
Denveroid
Вся страна ждет.
Все в ожидании...
__________________
Международное брачное агенство в Сибири.
Ð_ассказываю.
Допустим есть таблица статей tbl_articles:
CREATE TABLE tbl_articles (
id int(8) NOT NULL auto_increment,
category_id int(8) NOT NULL default '0',
user_id int(8) NOT NULL default '1',
title varchar(255) NOT NULL default '',
text text NOT NULL,
dateline int(10) NOT NULL default '0',
PRIMARY KEY (id),
KEY category_id (category_id)
) TYPE=MyISAM;
Теперь нам надо разбить статьи по, скажем, 5 штук на страницу для каждой категории.
// ######### spliting pages ############
// статей на страницу
$perpage=5;
if(!isset($pagenumber)) $pagenumber=1;
// лимиты
$limitlower=($pagenumber-1)*$perpage+1;
$limitupper=($pagenumber)*$perpage;
// общее число статей
$articlescount=$db->query_first("SELECT COUNT(*) AS num
FROM tbl_articles WHERE category_id=('тут номер категории')");
$totalarticles=$articlescount["num"];
$limitlower = ($pagenumber - 1) * $perpage + 1;
$limitupper = ($pagenumber) * $perpage;
if ($limitupper > $totalarticles)
{
$limitupper = $totalarticles;
if ($limitlower > $totalarticles)
{
$limitlower = $totalarticles- $perpage;
}
}
if ($limitlower <= 0)
{
$limitlower = 1;
}
$sel_limitlower = $limitlower;
// вытаскиваем id статей
$getarticleids=$db->query("SELECT id FROM tbl_articles
WHERE category_id=('тут номер категории') LIMIT ".($sel_limitlower-1).", $perpage");
// составляем список id's для запроса
$articleids="id IN (0";
while($art=$db->fetch_array($getarticleids))
{
$articleids.="," . $art["id"];
}
$articleids.=")";
// вызов функции (это и будет переменная с ссылками на страницы)
$pagenav = getpagenav($totalarticles,"?perpage=$perpage");
// ################## /spliting pages ################
// достаем всю информацию о статьях с выбранными id's
$rejects=$db->query("SELECT * FROM tbl_articles WHERE $articleids");
function getpagenav($results, $address) {
global $perpage, $pagenumber;
// кол-во показываемых ссылок на страницы
$pagenavpages = 5;
if ($results <= $perpage)
{
return "";
}
$totalpages = ceil($results/$perpage);
if ($pagenumber>1)
{
$prevpage = $pagenumber-1;
$prevlink = "<a href=\"$address&pagenumber=$prevpage\" title=\"Previous page\">«</a>";
}
if ($pagenumber<$totalpages)
{
$nextpage = $pagenumber+1;
$nextlink = "<a href=\"$address&pagenumber=$nextpage\" title=\"Next page\">»</a>";
}
while ($curpage++<$totalpages)
{
if ( ( $curpage <= $pagenumber-$pagenavpages || $curpage >= $pagenumber+$pagenavpages ) && $pagenavpages!=0 )
{
if ($curpage==1)
{
$firstlink = "<a href=\"$address&pagenumber=$curpage\" title=\"First page\">« First</a> ... ";
}
if ($curpage==$totalpages)
{
$lastlink = " ... <a href=\"$address&pagenumber=$curpage\" title=\"Last page\">Last »</a>";
}
}
else
{
if ($curpage==$pagenumber)
{
$pagenav .= " [$curpage] ";
}
else
{
$pagenav .= " <a href=\"$address&pagenumber=$curpage\">$curpage</a> ";
}
}
}
$pagenav = "<b>$totalpages Pages: $firstlink $prevlink $pagenav $nextlink $lastlink</b>";
return $pagenav;
}
__________________
`
SiteMaker.Ru - Академия сайтостроительства
эээ... а как к форуму это прикрутить???
__________________
yMC.ru - хомяк музыканта
MCTarakan
Куда именно ты хочешь прикрутить это? Я лишь показал сам принцип... а прикручивать надо уже исходя из потребностей и желаний.
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid дык, как было запрошено в первом посте в тему... т.е. смотри, тут внизу стоит ща:
Страницы (2): « 1 [2]
Если бы тут было 10 страниц (например тут), то это выглядит так:
Страницы (10): « 1 2 [3] 4 5 » ... Последняя »
А хотелось бы, чтобы это выглядело так:
Страницы (10): « 1 2 3 ... 6 7 [8] 9 10 »
Страницы (10): « 1 2 [3] 4 5 ... 8 9 10 »
Т.е. показывало бы не только последнюю, но 2-3 перед ней!
Тоже самое в threadlist-е! 
__________________
yMC.ru - хомяк музыканта
MCTarakan
Господа, вы уже по-моему извращаетесь
Ð_то ж есть в опциях.
Options -> Thread display options -> Pages to show in nav bar
Ставьте 0, и будет вам счастье.
Но тогда будут показываться все ссылки на все страницы везде (на всех страницах форума). То есть так: 1 2 3 4 5 6 7 8 9 10 11 и т.д. Если хочется конкретно в showthread такое сделать, то идем в showthread.php:
ищем строку:
$pagenav = getpagenav($totalposts,"showthread.php?s=$session[sessionhash]&threadid=$threadid&perpage=$perpage".iif(isset($highlight), "&highlight=$highlight", ""));
и перед ней добавляем:
$pagenavpages=0;
И опять же, будет вам счастье.
__________________
`
SiteMaker.Ru - Академия сайтостроительства
Denveroid дык, а если страниц 20, а если 100???
просто человек сказал, что где-то (вроде в Инвижин) это осуществлено.. вот и хотелось бы! 
__________________
yMC.ru - хомяк музыканта
Denveroid
Так что последный твой пост не канет.
Я скоро выложу то, что я сделал. По поводу пагианции и upload в вБ.
__________________
Международное брачное агенство в Сибири.
Tagore
Большое спасибо.
Но вначале я хотел чтоб когда просматриваешь топики (Тоесть forumdisplay.php) было не.
Тест !!! ( 1 2 3 4 ... Последняя страница ), а
Тест !!! ( 1 2 3 4 ... 101 102 103 ). А вы сделали showthread.php хотя эта тоже очень приятно 
Isvet
I'm very busy, sorry for that.
Не могу, экзамены, времени нет ...будет ...
__________________
Международное брачное агенство в Сибири.
| Формат времени GMT. Текущее время 17:26. | Показаны 28 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.