Получаем список страниц для DLE движков при помощи PHP
Автор: Акшонин Виталий
1 декабря 2011 года
1 декабря 2011 года
Для чего это нужно?
А нужно это для следующих случаев:
- При индексации вашего сайта биржей ссылок sape.ru или другими биржами в зачет идут только страницу первого, второго и третьего уровня. Если статья находиться на 12 странице то она не будет проиндексирована и вы не сможете продавать с ней ссылки;
- Стандартный способ вывода ссылок в DLE это отображение первых 10 ссылок страниц и последней страницы и это не всегда удобно посетителям, чтобы добраться до 20 странице придется четыре раза выбрать страницу из предложенных: 10, 14, 18, 20. С полным списком страниц навигация значительно упрощается.
Настраиваем работу PHP на движке
В файле index.php заменяем
Код:
$tpl->compile('main');
на
Код:
#echo $tpl->result['main'];
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
$tpl->global_clear();
$db->close();
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
$tpl->global_clear();
$db->close();
Если все сделали правильно у вас в любом мессе вывода информации пишите
Код:
<?php echo "Test"; ?>
В том месте должен, соответственно появится текст «Test».
Выводим полный список страниц
Пишу полный под, далее дам расшифровку что и зачем делалось
Код:
<?php
$url = $_SERVER['REQUEST_URI'];
$b = explode("/", $url);
if ($b[1] == "index.php" or $b[1] == "" or $b[1] == "page")
{
echo "<font style=\"font-size: 6px;\">";
echo "Все страницы:<br>";
$all_page = ceil($count_all / $config['news_number']);
for ($a = 1; $a <= $all_page; $a++)
{
echo "<a href=\"http://SITE.ru/page/".$a."\">".$a."</a> ";}
echo "</font>";
}
?>
$url = $_SERVER['REQUEST_URI'];
$b = explode("/", $url);
if ($b[1] == "index.php" or $b[1] == "" or $b[1] == "page")
{
echo "<font style=\"font-size: 6px;\">";
echo "Все страницы:<br>";
$all_page = ceil($count_all / $config['news_number']);
for ($a = 1; $a <= $all_page; $a++)
{
echo "<a href=\"http://SITE.ru/page/".$a."\">".$a."</a> ";}
echo "</font>";
}
?>
- получаем адрес текущей страницы ($_SERVER);
- раскладываем его на директории (explode);
- вводим условие, что если директория index.php или page или главная страница будем выводить полный список, если эта какая-либо другая страница, список выводить не будем. Можете сами добавить необходимые страницы на которых хотите сделать вывод;
- получаем количество страниц ($all_page) делим общее количество новостей на количество новостей на одной страницы, переменные $count_all и $config['news_number'] стандартные их кода DLE;
- создаем цикл от 1 до полного количества страниц с шагом 1;
- в теле цикла выводим ссылку с номером страницы.
Полученный результат
На моем сайте результат работы крипта выглядит так:
Чтобы лучше понять как это реализовано на практике смотрим http://carnovosti.ru/, список всех страниц в левом блоке.