|
|
|
| вот есть код вывода псотраничной тхт навигации... Но в базе у меня уже более 130 строк, и вид перехода на следующую страницу сообщений уже набрал вид:
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ][ 10 ][ 11 ][ 12 ][ 13 ][ 14 ]
Как можно соле [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ][ 10 ]переносить на следующую строку?
<?php
$base="log.txt"; // Файл где находиться инфа
$general=file($base); //Заносим весь наш файл в массив
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
$lines_gb=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
$pmessages = file("$base");
$onlyg=10; //Сколько записей выводить на страницу
if (@$page == "" or $page < 0) //Если переменная $page равна пустоте, или она меньше 0
{
$page = "1"; //Тогда переменнная $page=1
}
$first = count($pmessages) - ($onlyg * ($page - 1));
$second = count($pmessages) - ($onlyg * $page) + 1;
if ($second < 1)
{
$second = 1;
}
$pages = (int) ((count($pmessages) + $onlyg) / $onlyg); //Считаем общее количество страниц
for ($onlyg = 1; $onlyg <= $pages; $onlyg++) //Загоняем все в цикл, т.е. присваемваем переменно $onlyg значение
//1 и пока она меньше или равна $pages увеличиваем ее на единичку.
{
if ($onlyg != $page) //Если $olyg не равняется $page
{
//То наши ссылки имеют такой вид
$line_gb .= "[ <a href=\"?id=index&page=$onlyg\">$onlyg</a> ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$line_gb .= "[ $onlyg ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}
for ( $i = $first-1; $i >= $second-1; $i--)
{
list($name, $time, $mail, $icq, $msg)=explode("--", $general[$i]);
$id = $i;
$id++;
echo "
$name, $time, $mail, $icq, $msg
";
}
echo "<br><center><b>$line_gb</b><br>Всего записей - <font color=red>$lines_gb</font>.</center>";
?>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(08.04.2006 в 11:18)
| | Хм... а вы сделайте как у нас на главной странице форума, скрывайте лишние ссылки под троеточием ... | |
|
|
|
|
|
|
|
для: cheops
(08.04.2006 в 13:56)
| | А как мона ето сделать? | |
|
|
|
|
|
|
|
для: ZetRider
(08.04.2006 в 14:15)
| | Для этого можно приспособить следующую функцию
<?php
function pager($page, $total, $pnumber, $page_link, $parameters)
{
// Вычисляем число страниц в системе
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
// Проверяем есть ли ссылки слева
if($page - $page_link > 1)
{
echo "<a class=menu href=$_SERVER[PHP_SELF]?page=1{$parameters}>[1-$pnumber]</a> ... ";
// Есть
for($i = $page - $page_link; $i<$page; $i++)
{
echo " <a class=menu href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
else
{
// Нет
for($i = 1; $i<$page; $i++)
{
echo " <a class=menu href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
// Проверяем есть ли ссылки справа
if($page + $page_link < $number)
{
// Есть
for($i = $page; $i<=$page + $page_link; $i++)
{
if($page == $i)
echo " <em class=menu>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</em> ";
else
echo " <a class=menu href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
echo " ... <a class=menu href=$_SERVER[PHP_SELF]?page=$number{$parameters}>[".(($number - 1)*$pnumber + 1)."-$total]</a> ";
}
else
{
// Нет
for($i = $page; $i<=$number; $i++)
{
if($number == $i)
{
if($page == $i)
echo " <em class=menu>[".(($i - 1)*$pnumber + 1)."-$total]</em> ";
else
echo " <a class=menu href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber + 1)."-$total]</a> ";
}
else
{
if($page == $i)
echo " <em class=menu>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</em> ";
else
echo " <a class=menu href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
}
echo "<br><br>";
}
?>
|
$page - текущая страница, которая извлекается и GET-параметра page
$total - общее число позиций
$pnumber - число позиций на странице
$page_link - число ссылок до троеточия
$parameters - дополнительные GET-параметры в ссылки постраничной навигации | |
|
|
|