Каталог по буквенному идентификатору Алфавиту

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Каталог по буквенному идентификатору Алфавиту

Чтобы реализовать удобный каталог вывода новостей по буквенному идентификатору в дле, можно воспользоваться не большим Dle хаком. Такой каталог будет доступен на блоге по ссылке например:
ваш_сайт.ru/catalog/A
Каталог выводит новости по первой букве заголовка. Хак dle автоматический стандартный каталог сделан по алфавиту, но это легко можно будет поменять на любой другой тип сортировки.
Хак дле каталог по буквенному идентификатору Алфавит
Версии DLE: 7.2-9.3
«Автор:» Sander

Установка:Открыть файл index.php
После строки:
$tpl->set_block ( "'{banner_(.*?)}'si", "" );


Вставить:

$catalog_ru = explode(" ", "А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я");foreach($catalog_ru as $k=>$v){    if( $config['allow_alt_url'] == "yes" ) $catalog_ru[$k] = "<a href="/catalog/{$v}" title="Новости на букву: {$v}">{$v}</a>";    else $catalog_ru[$k] = "<a href="{$config['http_home_url']}index.php?catalog={$v}" title="Новости на букву: {$v}">{$v}</a>";}$catalog_ru = implode(" | ", $catalog_ru);$tpl->set ( '{catalog_ru}', $catalog_ru );$catalog_en = explode(" ", "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9");foreach($catalog_en as $k=>$v){    if( $config['allow_alt_url'] == "yes" ) $catalog_en[$k] = "<a href="/catalog/{$v}" title="Новости на букву: {$v}">{$v}</a>";    else $catalog_en[$k] = "<a href="{$config['http_home_url']}index.php?catalog={$v}" title="Новости на букву: {$v}">{$v}</a>";}$catalog_en = implode(" | ", $catalog_en);$tpl->set ( '{catalog_en}', $catalog_en );


Открыть файл engine/engine.php

Удалить код:

symbol = '$catalog' AND 


После строки:

$user_query = "catalog=" . urlencode ( $catalog );


Вставить:

if($catalog=='0-9') $stop_list .= "title regexp '^[0-9'"]+' AND ";            else{                $catalog = substr(convert_unicode($catalog),0,1);                if($catalog!='е' AND $catalog!='и') $stop_list .= "title LIKE '$catalog%' AND ";                elseif($catalog=='е') $stop_list .= "(title LIKE 'Е%' OR title LIKE 'Ё%') AND ";                elseif($catalog=='и') $stop_list .= "(title LIKE 'И%' OR title LIKE 'Й%') AND ";            }


Теперь достаточно в main.tpl в нужном месте установить теги

{catalog_ru} {catalog_en}


для вывода алфавита.

Разделительный знак между буквами " | " можно поменять на любой другой достаточно его заменить в коде скрипта
$catalog_ru = implode(" | ", $catalog_ru);$catalog_en = implode(" | ", $catalog_en);


Установка

Советуем все для datalife engine скачать хак каталог по буквенному идентификатору Алфавиту
  • 100
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак дле Запрет индексации страниц с ошибкой 404 Not Found в DLE« Далее Хак Вывод последних комментариев под краткой новостью
Добавление комментарияОставить комментарий
  • № :16
  • 16 сентября 2015 21:14
Цитата: dle9.com
Здравствуйте. Это сортировка с ограничением так задумано, переделать придется все и вряд ли кто возьмется.
или искать другой вариант или переходить на версию дле выше там уже кажется 9.8 уже внедрен буквенный каталог разработчиками движка

Спасибо за оперативный ответ!! Буду искать.
  • № :15
  • 16 сентября 2015 19:32
Цитата: Cesium
Здравствуйте. Версия 9.2, установил всё как описано в инструкции, заработало,но:
У меня в админке стоит ограничение "Количество новостей на страницу" - 15.
При нажатии на букву, он выводит 15 новостей и всё. Нет возможности переключится на следующую страницу с записями на эту букву. Подскажит, что делать? Спасибо!

Здравствуйте. Это сортировка с ограничением так задумано, переделать придется все и вряд ли кто возьмется.
или искать другой вариант или переходить на версию дле выше там уже кажется 9.8 уже внедрен буквенный каталог разработчиками движка
  • № :14
  • 16 сентября 2015 19:23
Здравствуйте. Версия 9.2, установил всё как описано в инструкции, заработало,но:
У меня в админке стоит ограничение "Количество новостей на страницу" - 15.
При нажатии на букву, он выводит 15 новостей и всё. Нет возможности переключится на следующую страницу с записями на эту букву. Подскажит, что делать? Спасибо!
  • № :13
  • 18 февраля 2013 08:51
A-Jey,
Олег Александрович a.k.a. Sander
Внимание! У вас нет прав для просмотра скрытого текста.
??
  • № :12
  • 17 февраля 2013 20:12
Синтексическая ошибка, если ее исправляешь появляется критическая. Жду когда подправят для версии 9.7
  • № :11
  • 5 апреля 2012 01:37
Ребята подскажите что за ерунда может быть на 9.5 перестали работать АЛФ.. Русские буквы и при клике на букву выдаёт, Рђ и другие символы
  • № :10
  • 23 марта 2012 03:13
из-зи кода, вставляемого в index.php на 9.3 не работает, 500 ошибка
  • № :9
  • 7 ноября 2011 15:28
Цитата: Максим
Максим

становятся ENG, сам не пойму почепу

Какая версия дле?

В версии 9.4 встроен свой родной каталок алфавит , лучше использовать его...
  • № :8
  • 7 ноября 2011 14:54
dle9 У меня всё нормально работает, единственный минус в том если стоит авто заполнение АЛФ.. при публикации новости русские буквы становятся ENG, сам не пойму почепу приходится редактировать букву после публикации, а так всё нормально работает
  • № :7
  • 3 октября 2011 07:18
Цитата: Олег
Если ничего не вставлять в engine/engine.php в версии 9.4 то даже Английские буквы перестают работать... у меня во всяком случаи перестали... Может дело что на Денвере тестю хотя по идее разницы не должно быть...


Разницы НЕТ.

Проверьте на шаблонах идущем в дистрибутиве.. так будет надежней
Сделать можно ещё Перестроение публикации.
Так же лучше проверять , с чистой Базой Данных (то есть установили движок вот с этой БД работать , внести каталоги и т.д.) проверять . так надежней исключены ошибки в БД.
  • № :6
  • 3 октября 2011 00:56
Если ничего не вставлять в engine/engine.php в версии 9.4 то даже Английские буквы перестают работать... у меня во всяком случаи перестали... Может дело что на Денвере тестю хотя по идее разницы не должно быть...
Постоянно выдаёт
Внимание, обнаружена ошибка
По данному адресу публикаций на сайте не найдено, либо у вас нет доступа для просмотра информации по данному адресу.

Хотя в адресной строке показывается нормальный переход на буквенный каталог.... fellow Странности да и только блин lol
  • № :5
  • 2 октября 2011 06:01
Цитата: Максим
Не чего не нужно вставлять в engine/engine.php 9.4 версии , Достаточно вставить как в описание в index.php и в main
{catalog_ru}
{catalog_en}
И всё работает

Спасибо за комментарий , теперь будем знать ! winked
  • № :4
  • 2 октября 2011 04:49
Не чего не нужно вставлять в engine/engine.php 9.4 версии , Достаточно вставить как в описание в index.php и в main
{catalog_ru}
{catalog_en}
И всё работает
  • № :3
  • 24 сентября 2011 23:42
Ясено ) Спасибо ))
Будем ждать пока кто-нить с ровными руками не сделает а то я со своими такого могу понаделать ))))))))))
  • № :2
  • 24 сентября 2011 20:52
пока только 9.3, для 9.4 возможно надо вносить изменение для определения кодировки, так в новой версии установлено дополнение авто-кой подбор нужной кодировки...
  • № :1
  • 24 сентября 2011 20:03
А не подскажите почему у меня на движке 9.4 русские не работают?
С английскими буквами всё в порядке, находит и выдаёт а вот с русскими у меня проблема... Может чёт подправить над или ещё что?
Я просто в этом не очень понимаю но сделал всё по инструкции ))