На днях решил посмотреть как подключить свой скрипт в DLE, т.е. вывести какие-то данные из БД (или просто какую инфу) на страницу сайта DLE через свой скрипт.
Открыл документацию, а там оказывается все реализуется очень просто.
При этом в своем скрипте можно даже не создавать подключение к базе данных, не проверять соединение и не писать много лишнего кода.
Достаточно просто подключить DLE-шный файлик и все.
Перехожу к делу.
Пример — вывод количества новостей сайта DLE на страницу
1. Создаем файл, например my_skript.php. Преобразуем его в нужную кодировку, иначе будут кракозябры вместо русских букв. Если используете Notepad++, то там в меню «Кодировки > Преобразовать в ANSI» (или в UTF-8 без BOM);
2. В него помещаем код:
<?php
header ("Content-type: text/html; charset=windows-1251");
include ('engine/api/api.class.php');
$table = 'dle_post'; // название таблицы
$fields = '*'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
// $sort - поле, по которому осуществляется сортировка
// $sort_order - направление сортировки
$m = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit);
echo 'Количество новостей на сайте: '.count($m); // вывод на экран количества элементов
?>
В массив $m получаем все опубликованные новости сайта. То есть, как видим, простым подключением файла api.class.php мы избавились от необходимости подключения к БД и прочего кода.
3. Закидываем my_skript.php в корень сайта.
4. В файле шаблона DLE (например, в main.tpl) вставляем (подключаем свой скрипт) в то место, где нужно вывести кол-во новостей на сайте, строчку:
{include file="my_skript.php"}
Я привел в качестве примера просто вывод количества элементов в массиве, но можно, естественно, использовать любой из элементов этого массива — любые поля новостей.
При этом мы использовали API DLE и обошлись несколькими строчками кода, чтобы получить данные из базы.
Также в свой скрипт мы можем передать определенные данные через своеобразный GET запрос, например, строчкой
{include file="my_skript.php?id={news-id}"}
мы передадим в свой скрипт номер текущей новости в базе (если строчка в файле fullstory) и можем использовать переменную $id. При этом не нужно вытягивать из массива $_GET этот id, а сразу можно использовать эту переменную.
P.S. Недавно я писал, что только начал изучение PHP, так что сильно не смейтесь
Также, можете почитать как я избавлялся от вредоносных кодов после взлома моего сайта на DLE.
У тебя справа вверху, то ли баннер прозрачный, то ли он съехал. Это так спецом сделано ?
Не кроссбраузерный баннер какой-то
Подскажи пожалуйста. Я учусь в этой теме и не понимаю до конца. Как получить количество комментариев в новости?
Для чего делаю.
Если новость имеет больше 10 комментариев, то выводим ярлык «Обсуждаемая новость».