|
|
|
| У меня на сайте вот такая постраничная навигация в гостевой книге!
<?php
$base="guest_db.txt"; // Файл где находиться инфа
$general=file($base); //Заносим весь наш файл в массив
$lines_file=file($base); //Еще разочек занесем наш файли в массив
$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
$pmessages = file("$base");
$onlyg=$p_n_msg; //Сколько записей выводить на страницу
/*
Тут начинаеться самая главная часть нашего файла
Просчитываем странички :-)
*/
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++)
{
if ($onlyg != $page)
{
@$line .= " [ <a href=\"guest.php?page=$onlyg\">$onlyg</a> ]";
}
if ($onlyg == $page)
{
//То такой
@$line .= "[ $onlyg ]";
}
}
$guestfile = fopen("guest_db.txt","a");
if(@strlen($msg)>=46)
{
$prob=0;
$strok=strlen($msg)/45;
$strok=floor($strok);
for($s=$strok; $s>=1; $s--)
{
$sim=45*$s;
for($a=$sim-1; $a>=($sim-45); $a--)
if($msg[$a]==" ")
$prob++;
if($prob==0)
$msg = wordwrap($msg,45," ",1);
}
}
for ( $a = $first-1; $a >= $second-1; $a--)
{
@list($nick,$date,$msg,$mail,$url)=explode("||", $general[$a]);
$ad = $a;
$ad++;
if(strlen($msg)>=46)
{
$prob=0;
$strok=strlen($msg)/45;
$strok=floor($strok);
for($s=$strok; $s>=1; $s--)
{
$sim=45*$s;
for($m=$sim-1; $m>=($sim-45); $m--)
if($msg[$m]==" ")
$prob++;
if($prob==0)
$msg = wordwrap($msg,45," ",1);
}
}
$msg=str_replace(":))","<img src='1).gif'>","$msg");
$msg=str_replace("((:","<img src='1).gif'>","$msg");
$msg=str_replace(":)","<img src='1.gif'>","$msg");
$msg=str_replace("(:","<img src='1.gif'>","$msg");
$msg=str_replace(":(","<img src='2.gif'>","$msg");
$msg=str_replace("):","<img src='2.gif'>","$msg");
$msg=str_replace("*чмок","<img src='chmok.gif'>","$msg");
$msg=str_replace("*лол","<img src='lol.gif'>","$msg");
$msg=str_replace("*lol","<img src='lol.gif'>","$msg");
print "<table width='100%' border='2' cellpadding='0' cellspacing='0' bgcolor='$bgcolor_table' bordercolor='$bordercolor' align='center'>
<tr>
<td>
<table width='100%' border='1' cellpadding='0' cellspacing='0' bgcolor='$bgcolor_zag_table' bordercolor='$$bordercolor'>
<tr>
<td width='50%'><font color='$zag_msg' size='3'><b><center>$nick</center></b></font>
</td>
<td width='50%'><font color='$zag_msg' size='2'><b><center>$date</center></b></font>
</td>
</tr>
</table>
<table width='100%' border='0' cellpadding='3' cellspacing='3' summary=''>
<tr>
<td><font color='$msg_color' size='2'><i>$msg</i></font>
</td>
</tr>
<tr>
<td>
<table width='100%' border='0' cellspacing='1' summary=''>
<tr>
<td width='40%'>
</td>
<td width='60%'><font color='$zag_msg' size='2'><b>Email: <a href='mailto:$mail'>$mail</a></b></font>
</td>
</tr>
<tr>
<td width='40%'>
</td>
<td width='60%'><font color='$zag_msg' size='2'><b>URL: <a href='http://$url'>$url</a></b></font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table><br>";
}
echo "<table width='100%' border='1' cellpadding='0' cellspacing='0' summary='' bordercolor='$bordercolor' bgcolor='$bgcolor_zag_table'>
<tr>";
if ($pages!=1)
echo"
<td><center><b><font color='$msg_color' size='2'>$line</b></CENTER></td>";
echo" <td width='200'><i><font color='$zag_msg'><center>Всего сообщений: <font color='$text_zagolov'><b>$lines</b></font></center></font></i></td>
</tr>
</table>";
?>
|
Работает она конечно отлично, но столкнулся я с другой проблемой. В гостевой у меня сейчас больше 200 сообщений а на страницу выводится лишь по 10 и в итоге получайтся что у меня страниц выводится выше крыши, что смотрится прогсто ужасно! Помогите пожалуйста сделать так чтоб выводилось первые десять страниц а далее следовало многоточие и последняя страница! А при нажатии на многоточие появлялись остальные десять страниц, но ещё первая и последняя, а если 10 последующих нет то (допустим если всего 15 страниц), то после нажатия на многоточие высвечивалясь первая и оставшиеся страницы!
ну примерно так:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... [30]
[1] ... [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... [30]
[1] ... [11] [12] [13] [14] [15
|
Короче это примерно как у вас на форуме!!!
Если меня ктонибудь понял то помогите пожалуйста! | |
|
|
|
|
|
|
|
для: m@rchello
(16.12.2005 в 09:19)
| | Посмотрите тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5805
PS Такой большой код лучше прикреплять в виде файла, так как тема быстро набирает вес и выгружать её хоят всё меньше и меньше народу. | |
|
|
|
|
|
|
|
для: cheops
(16.12.2005 в 14:13)
| | Я так и не понял что нужно сделать! Немогли бы вы хотябы просто обьяснить без примеров как это осуществляется??? | |
|
|
|
|
|
|
|
для: m@rchello
(17.12.2005 в 09:54)
| | Прикрепите, если вам не сложно файл guest_db.txt, чтобы я мог отладить скрипт у себя на локальной машине. | |
|
|
|
|
|
|
|
для: cheops
(17.12.2005 в 13:12)
| | вот пожалуйста!!! | |
|
|
|
|
|
|
|
для: m@rchello
(17.12.2005 в 13:18)
| | Я сейчас убегаю, если забуду ответить - поднимите эту тему вечером. | |
|
|
|
|
|
|
|
для: cheops
(17.12.2005 в 13:24)
| | хорошо!!! Спасяб что помогаете!!! | |
|
|
|
|
|
|
|
для: m@rchello
(17.12.2005 в 13:18)
| | Сел разрбираться - не могу понять в каком цикле осуществляется вывод постраничной навигации - не могли бы вы указать номер строки, где осуществляется вывод? | |
|
|
|
|
|
|
|
для: cheops
(18.12.2005 в 13:50)
| | Если вы имеете виду в каком месте уже выводятся страницы то это 172 строка $line | |
|
|
|
|
|
|
|
для: m@rchello
(18.12.2005 в 18:36)
| | Хм... а в приведённом в первом посте файле только 27 строк... | |
|
|
|
|
|
|
|
для: cheops
(18.12.2005 в 21:10)
| | Всмыле только 27 строк???? | |
|
|
|
|
|
|
|
для: m@rchello
(19.12.2005 в 04:04)
| | Я ошибся :))) 127 в коде, который приведён в первом посте только 127 строк, я не очень понимаю где выводится и главное, где формируется строка $line? | |
|
|
|
|
|
|
|
для: cheops
(19.12.2005 в 15:05)
| | cheops - Посмотрите в прикреплённом файле я вырезал только саму постраничную навигацию без всяких примочек! | |
|
|
|
|
|
|
|
для: m@rchello
(19.12.2005 в 15:46)
| | Всё, понял, ближе к ночи сделаю. | |
|
|
|
|
|
|
|
для: cheops
(19.12.2005 в 16:07)
| | Спасибочки!! | |
|
|
|
|
|
|
|
для: m@rchello
(19.12.2005 в 17:59)
| | Посмотрите вот этот вариант... | |
|
|
|
|
|
|
|
для: cheops
(19.12.2005 в 20:04)
| | Огромнейшее спасибо!!!:)) То что нужно!!!:)) | |
|
|
|