Получаем данные из БД сайта на DLE через API

php-dle На днях решил посмотреть как подключить свой скрипт в 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.

Оцените статью
Дневник Сеошника
Добавить комментарий

  1. vseproceo.ru

    У тебя справа вверху, то ли баннер прозрачный, то ли он съехал. Это так спецом сделано ?

    Ответить
    1. ARKSEO

      Не кроссбраузерный баннер какой-то

      Ответить
  2. Иван

    Подскажи пожалуйста. Я учусь в этой теме и не понимаю до конца. Как получить количество комментариев в новости?
    Для чего делаю.

    Если новость имеет больше 10 комментариев, то выводим ярлык «Обсуждаемая новость».

    Ответить