|
|
|
| Гостевая книга работает отлично, но появилась необходимость расширить ее возможности до Доски объявлений. Есть ли возможность добавить разделы куплю/продам, подскажите как это сделать.
И еще, как сделать разбиение объявлений по страницам, по 20 на странице.
Заранее благодарю. | |
|
|
|
|
|
|
|
для: dafsan
(28.07.2004 в 11:13)
| | Количество страниц +предыдущая + следующая:
<?php
// news.php - наша страница
//$start - начиная с какой позиции выводим новости
//$total - количество сообщений из бд
//$all_number_news - сколько выводим на страницу
if ($total/$all_number_news == bcdiv ($total,$all_number_news))
$num_pages = bcdiv ($total,$all_number_news);
else
$num_pages = bcdiv ($total,$all_number_news)+1;
echo "<center><br>";
if ($num_pages > 1)
{
if ($start/$all_number_news > 0)
{
echo "<A href=\"news.php?start=".($start-$all_number_news)."\">";
echo "[ Предыдущая ]";
echo "</a>";
}
else
echo "<font style=\"color:#f6f8fa;\">[ Предыдущая ]</font>";
echo " ";
for ($i = 0; $i < $num_pages; $i++)
{
if ($i == $start/$all_number_news)
{
echo "<b>";
echo $i+1;
echo "</b>";
}
else
{
echo "<A href=\"news.php?start=".($i*$all_number_news)."\">";
echo $i+1;
echo "</a>";
}
echo " ";
}
if ($start/$all_number_news < $num_pages-1)
{
echo "<A href=\"news.php?start=".($start+$all_number_news)."\">";
echo "[ Следующая ]";
echo "</a>";
}
else
echo "<font style=\"color:#f6f8fa;\">[ Следующая ]</font>";
}
echo "</center>";
?>
|
Будут вопросы - задавайте. | |
|
|
|
|
автор: elenaki (28.07.2004 в 17:26) |
|
|
для: Andron
(28.07.2004 в 16:48)
| | есть у меня постраничный вывод в виде 1 | 2 | 3 | ...
на каждой странице определенное количество записей из базы.
а сейчас мне приспичило сделать вот так, как здесь:
http://gds2002.narod.ru/articles/navbar/nav.html
но этот скрипт у меня не работает, там ошибка в орфографии, мне не найти :(
помогите! | |
|
|
|
|
|
|
|
для: elenaki
(28.07.2004 в 17:26)
| | Старнный скрипт - скачал архив - один JavaScript... Так и не понял как там PHP приплетается :))) Тут в соседней ветке Axxil предлагает решение для постарничного вывода. Или имеется ввиду подстветка жирным текущей страницы?
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=116&page=1 | |
|
|
|
|
автор: elenaki (28.07.2004 в 21:17) |
|
|
для: cheops
(28.07.2004 в 18:43)
| | нет. подсветка мне не нужна. мне нужно, чтобы постранично выводились результаты запроса, но группами - по 10 штук, а по бокам - предыдущая и следущая группа, если есть, конечно.
просто думала, может, у кого уже есть. придется переделывать то, что есть. сейчас пока статей немного, а когда ссылки на них не будут влезать в одну строку, некрасиво получится...
если интересно, можете посмотреть, как я сделала:
http://www.pol.org.gr
сейчас там 5 страниц по 10 статей. но количество их растет не по дням, а по часам... и скоро шеф скажет - сделай как у конкурентов:
http://www.e-forologia.gr
я не прошу делать за меня мою работу. просто подскажите алгоритм. хоть в каком направлении двигаться.
| |
|
|
|
|
|
|
|
для: elenaki
(28.07.2004 в 21:17)
| | А... правильно ли я понял, что нужна примерно следующая конструкция:
предыдущие 10|11|12|13|14|15|16|17|18|19|20 следующие
т.е. посетитель загружает страницу по адресу index.php?id=15, при этом отображаются ссылки на 5 страниц влево, и на 5 страниц вправо... на все остальные страницы слева и справа отображаются ссылки предыдущие и следующие.
1) Тогда, вычисляем id-5 если это число меньше нуля выводим ссылки на страницы от 0 до id, в противном случае выводим ссылки от id-5 до id и ссылку предыдущие.
2) Вычисляем id+5, если это число больше числа всех страниц (max) выводим после id ссылки от id до max, если меньше, то после id выводим ссылки от id до id+5 плюс ссылка на следующие страницы. | |
|
|
|
|
автор: elenaki (27.08.2004 в 13:32) |
|
|
для: cheops
(28.07.2004 в 21:46)
| | ура!!!!! я сделала! www.pol.org.gr
успела! а то статьи валятся в базу, а у меня никак руки не доходили навигацию подправить.
еще немного, и не влезли бы в одну строку все номера страниц...
кстати, вам тоже такое понадобится, когда число тем форума приблизится к 1500.
спасибо! :) | |
|
|
|
|
|
|
|
для: elenaki
(27.08.2004 в 13:32)
| | >кстати, вам тоже такое понадобится, когда число тем форума
>приблизится к 1500.
Пожалуй... /*на внутреннем у нас давно уже всё улезло на третью строчку :)))*/ | |
|
|
|
|
автор: elenaki (27.08.2004 в 16:29) |
|
|
для: cheops
(27.08.2004 в 14:46)
| | усовершенствованный постраничный вывод:
теперь выводятся только 9 номеров страниц (можно изменить).
и, если страниц больше, выводятся ссылки на Пред/След и на
Начало/Конец.
<?
$lines_per_page = 10; //количество строк на странице
$all_lines = 290; // всего записей в базе (это мы узнаем из запроса, здесь я его не делаю для краткости)
//проверяем, установлен ли номер страницы
if (!isset($pageview) or empty($pageview) or $pageview<=0) $pageview=1;
else $pageview=(int)$pageview;
//для запроса уменьшаем номер на 1
$page_for_query = $pageview-1;
//с какой позиции начинать считывать данные
$lpos = $page_for_query * $lines_per_page;
//всего страниц с округлением в большую сторону
$count_pages = ceil($all_lines / $lines_per_page);
//сколько номеров страниц показывать ДО и ПОСЛЕ текущей (включая ее саму)
$block = 5;
//число номеров страниц, отображаемых ДО текущей
$prin = $pageview - $block;
// для справки
echo " всего записей в базе: ".$all_lines."<br><br>";
echo " строк на странице: ".$lines_per_page."<br><br>";
echo " всего страниц: ".$count_pages."<br><br>";
if (($prin < 0) && ($pageview > 1))
{$pred = $pageview - 1;
echo "<a href=\"$PHP_SELF?pageview=1\">« Начало </a> | ";
echo "<a href=\"$PHP_SELF?pageview=$pred\">« Пред</a> | ";
for ($i = $pageview - 1; $i > 0; $i--)
{$nomer = $pageview-$i;
echo "<a href=\"$PHP_SELF?pageview=$nomer \">$nomer</a> | ";}
}
if (($prin >= 0) && ($pageview > 1)) {
$pred = $pageview - 1;
echo "<a href=\"$PHP_SELF?pageview=1\">« Начало </a> | ";
echo "<a href=\"$PHP_SELF?pageview=$pred\">« Пред </a> | ";
for ($i = $block - 1; $i >= 1; $i--)
{$nomer = $pageview-$i;
echo "<a href=\"$PHP_SELF?pageview=$nomer \">$nomer</a> | ";}
}
echo $pageview." | "; // на текущую страницу не нужна ссылка
//число номеров страниц, отображаемых ПОСЛЕ текущей
$meta = $pageview + $block;
if (($meta > $count_pages) && ($pageview < $count_pages)) {
$sled = $pageview + 1;
for ($i = $pageview+1; $i <= $count_pages; $i++)
{$nomer = $i;
echo "<a href=\"$PHP_SELF?pageview=$nomer \">$nomer</a> | ";}
echo "<a href=\"$PHP_SELF?pageview=$sled \"> След »</a> | ";
}
if (($meta <= $count_pages) && ($pageview < $count_pages))
{$sled = $pageview + 1;
for ($i = $pageview + 1; $i < $meta; $i++)
{$nomer = $i;
echo "<a href=\"$PHP_SELF?pageview=$nomer \">$nomer</a> | ";}
echo "<a href=\"$PHP_SELF?pageview=$sled \"> След »</a> | ";
echo "<a href=\"$PHP_SELF?pageview=$count_pages\"> Конец »</a> ";
}
?>
если где-то ошиблась или можно по-другому написать, исправляйте | |
|
|
|
|
автор: elenaki (28.07.2004 в 21:19) |
|
|
для: cheops
(28.07.2004 в 18:43)
| | а текст PHP-скрипта там на странице. и Java тоже, и CSS.
я со страницы брала. ругается, говорит, где-то скобки не хватает,
но вроде все скобки на месте... наверно, из-за кавычек... не знаю. | |
|
|
|
|
|
|
|
для: dafsan
(28.07.2004 в 11:13)
| | В конфигурационном файле config.php значение переменной $pnumber = 20; (если вы используете файловый вариант - следует загрузить новую версию 1.2.0).
А под доской объявления что подразумевается? У буржуев message board - это форум: многофункциональная гостевая с возможностью авторизации...
http://www.softtime.ru/info/downloads.php | |
|
|
|