8Dle
Авторизация

Приемы редактирования движка Dle

Сегодняшняя тема блога будет посвящена редактирование движку Dle, а точнее некоторым возможностям, модернизация которых ни как не навредят работе самой Datalife Engine. Иногда пользователю CMS Datalife Engine (Dle) требуется реализовать некоторые задачи, которые решают только при непосредственном вмешательстве в сам движок Dle. Для людей не имеющие никакого представления в языках программирования это может быть чревато последствиями, которые отразятся на работе самой Dle. Но иногда можно подправить код или заменить, на более свежий, без каких - либо познаний в языках программирования. Данная статья посвящена лишь малой части всех возможностей движка дле, которые можно отредактировать под конкретный сайт Dle.

Приемы редактирования движка Dle


Человеку, не знающему PHP, вообще не следует лесть в код Dle, за исключением инструкции по установки модулей и хаков, в которых четко предписано выполнение всех пунктов инструкции, в противном же случае, работоспособность приложений для Dle работать не будет. Но есть в Dle, такие места в коде, где можно изменить цифру, удалить пару слов (переменных) или заменить эти переменные и работа стандартных модулей становиться сразу другой. В данной статье я посвящу вопрос редактирования стандартного модуля "Топ новостей" и некоторых ответов на частые вопросы по проблемам с работой тех или иных модулей для Dle.

Редактирование модуля Топ новостей

Модуль "Топ новостей" является одним из самых популярных модулей на Dle. Данный модуль можно увидеть практически на любом сайте под управлением Datalife Engine (Dle). Но мало кто задумывался, как именно он работает и по каким критериям этот модуль оценивает популярность той или иной новости. Почему одни новости, на которых постоянно идет трафик, держатся в этом блоке всего месяц, а новые статьи на сайте попадают в этот Топ только через определенное время.

Все дело в одной строке модуля, файл ответственный за создания списка топ новостей расположен в папке "modules" и имеет имя "topnews.php", а строка которая ответственна за создания списка топ новостей имеет следующий вид:
$db->query( "SELECT id, short_story, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve=1 AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );


Это запрос в БД с определенным условием, который и определяет какие новости достойны попадания в топ, а какие нет.

Фактически условие отбора начинается со строки "date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month'", в которой сказано выбирать опубликованные новости с интервалом одного месяца от текущей даты до даты публикации новостей на сайте, которые были сделаны месяц назад. Если в этой строке заменить строку "INTERVAL 1 MONTH", к примеру, на "INTERVAL 7 DAY", то интервал списка новостей в топе сократиться до недели с момента публикации и по сегодняшнюю дату.

Строка "ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC" определяет по каким параметрам стоит оценивать новости. rating DESC - рейтинг новости, comm_num DESC - количество комментариев, news_read DESC - количество просмотров, date DESC - дата. Слово "DESC" - означает сортировку по убыванию, то есть от большего к меньшему. Из этих 4-х условий и составляется список "Топ новостей". При желании можно удалить одно или несколько условий. К примеру, на сайте где рейтинг выставляется по средствам кнопок "+" и "-" (как на этом сайте), было бы логичней вывод списка "Топ новостей" сориентировать под рейтинг новостей. Для этого просто следует удалить из строки условия отбора новостей все лишние условия и оставить только "ORDER BY rating DESC" (без запятой! Если же требуется оставить два условия, то они должны быть разделены запятой и пробелом).

Строка "LIMIT 0,10" определяет с какого элемента начинать составлять список в нашем случае это 0, то есть с начало, и 10 в конце, означает количество выводимых элементов списка. В данном случае в Топ новостей список будет составлен из 10 новостей. Следует отредактировать это условие по своему усмотрению. Но данный отбор очень примитивен, разработчики Dle могли бы создать более функциональный модуль "Топ новостей". Но, увы, имеем то, что имеем.

В Dle версии 9.4 модуль "Топ новостей" претерпел существенное изменений (статья "Новые функции движка Dle 9.4"), в результате которого администраторы Dle получили возможность управления видом (картинки, текст, кол-во символов) вывода этих Топ новостей. На более ранних версиях требовалось, устанавливать специальные хаки. Существует возможность замены файла (topnews.php) модуля Топ новостей с Dle 9.4, на более ранние версии.

Для этого следует скопировать файл "engine/modules/topnews.php"с версии Dle 9.4 и заменить его на такой же файл более ранней версии Dle. Создайте файл "topnews.tpl" в папке Вашего шаблона, согласно инструкции по адаптации шаблонов под Dle 9.6. По окончании следует открыть файл index.php и найти в нем строку:
$tpl->set ( '{topnews}', $topnews );

И заменить данную строку следующей:
$tpl->set ( '{topnews}', $tpl->result['topnews'] );


После установки модуля "Топ новостей" от Dle 9.4 можете спокойно оформлять свои Топ лист как Вам требуется.

Очень часто бывает так, что какой - то модуль из стандартной комплектации Dle не работает вовсе или работает не корректно. Чаще всего это связано с неправильной установкой модулей или же невнимательное удаление модулей и хаков. Выход из сложившейся ситуации прост: следует скачать такую же версию Dle и заменить тот файл, за который отвечает модуль. К примеру, файл загрузки файлов и картинок - engine/inc/files.php, файл добавления комментариев - "engine/modules/addcomments.php". В свое время у меня не работал редактор TPL шаблонов на сайте (не грузился шаблон), я просто заменил файл "engine/inc/templates.php" от версии Dle 9.4 и у меня все стало работать, как швейцарские часы.

Иногда пользователи устанавливают лицензионную версии Dle, при этом устанавливают модули и хаки на неё и в один момент (при достижении 100 публикации) узнают, что больше добавлять новости администратор сайта не может. Скачивать Nulled версию и обновлять сам движок вызовет у веб - мастера всего лишь огорчение. И при этом keygen Dle не активизирует сам движок Dle. Выход тоже простой, следует скачать Nulled версию движка Dle 9.4 и загрузить из него на сервер всего лишь один файл: "engine/inc/include/init.php". Данный файл как раз таки и отвечает за активацию Dle. В случае с Nulled версией Dle код активации Dle просто вырезан.

Вот так с помощью простых знаний можно решить множество встречающихся проблем с работой движка Dle. Надеюсь, что и дальше буду писать статье о редактировании тех или иных функциях Dle, которые можно существенно модернизировать. Все это зависит от степени накопления материала для статьи.

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация