[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Зацените постраничную навигацию)
Страницы: 1, 2, 3, 4
Shkiper
Всем привет. Настрогал тут за пару часиков постраничную навигацию как под капотом DLE. Меня она как то вырубила своим северным сиянием, да и практики с составлением постранички у меня нет, так что вот попробовал сделать. Выкладываю саму функцию:
 <?php

function
paginator($count_news, $nameTbl, $where = NULL)
{
$page = $_GET['page']; //текущая страница

$count = Database::query("SELECT COUNT(`id`) FROM `".$nameTbl."`" . $where);


$all_page = ceil($count/$count_news);

if($page == 1)
{
$start = 0;
}
else
{
$start = ($page * $count_news) - $count_news;
}
$menu = "";


if($page >= 7 && ($all_page - 4) > $page)
{
$menu .= "<i>1</i> .... ";
$pre_nav = $page - 4;
$post_nav = $page + 4;
for($i=$pre_nav; $i<$page; $i++)
{
$menu .= "<i>".$i."</i> ";
}

$menu .= " <b>".$page."</b> ";

for($i=1;$i<=4;$i++)
{
$menu .= "<i>".($i + $page)."</i> ";
}

$menu .= " ..... <i>".$all_page."</i>";
}
else if($page < 7)
{

if($page == 1)
{
$menu .= "<b>".$page."</b> ";

for($i = 1;$i<$page;$i++)
{
$menu .= "<i>".$i."</i> ";
}

}

else
{
for($i=1; $i<$page; $i++)
{
$menu .= "<i>".$i."</i> ";
}
$menu .= " <b>".$page."</b> ";
for($i=($page + 1); $i<=7; $i++)
{
$menu .= "<i>".$i."</i> ";
}
}



$menu .= " ..... <i>".$all_page."</i>";
}
else
{
$menu .= "<i>1</i> ..... ";
$last_page = $all_page - 4;
for($i=$last_page; $i<=$all_page; $i++)
{
if($i == $page)
{
$menu .= "<b>".$i."</b> ";
}
else
{
$menu .= "<i>".$i."</i> ";
}
}
}


return array('start' => $start, 'result'=>$menu, 'number_news'=>$count_news);
//Вызов
echo "<pre>".print_r(3, 'news', 'WHERE `public`='1'')."</pre>";

А ну да, тут я использовал MySQLi, но это играет не большую роль ;) Возвращает она вот что:
Array
(
[start] => 15 //С нечго начинаем выборку
[result] => 1 2 3 4 5 6 7 ..... 24 //Сама навигация
[number_news] => 3 //Количество статей
)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.