API для разработки модулей

Return to Introduction  Previous page  Next page

API предназначен для написания модификаций совместимых со старыми и будущими версиями скрипта. В случае использования API для получения данных из базы, вы можете быть уверенными что данный код будет работать и в будущих версиям, тем самым вы облегчается проверка и адаптация кода при выходе новой версии. Также при использовании API вам нет необходимости писать собственные функции для выборки данных, нет необходимости подключать и объявлять необходимые для работы с БД классы. Достаточно просто подключить файл API, и начать использовать его функции, все остальное он берет на себя.

 

Для использования API в своем модуле вы должны его подключить строчкой:

 

include ('engine/api/api.class.php');

 

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

 

Список функций API:

 

$dle_api->take_user_by_id( int $id [, string $select_list] );

получение массива с информацией о пользователе по его ID. Необязательный параметр $select_list указывает на перечень полей  БД которые необходимо получить или * для всех. Возвращает массив с информацией о пользователе либо false, если пользователь не найден.

 

$dle_api->take_user_by_name( string $name [, string $select_list]);

получение массива с информацией о пользователе по его логину. Необязательный параметр $select_list указывает на перечень полей  БД которые необходимо получить или * для всех. Возвращает массив с информацией либо false, если пользователь не найден.

 

$dle_api->take_user_by_email( string $email [, string $select_list]);

получение массива с информацией о пользователе по его E-Mail. Необязательный параметр $select_list указывает на перечень полей  БД которые необходимо получить или * для всех. Возвращает массив с информацией либо false, если пользователь не найден.

 

$dle_api->take_users_by_group( int $group_id [, string $select_list [, int $limit]]);

получение массива с информацией о пользователях по номеру группы. Необязательный параметр $select_list указывает на перечень полей  БД которые необходимо получить. Необязательный параметр $limit указывает на лимит количества возращаемых пользователей. Возвращает массив с информацией либо false, если пользователи не найдены.

 

$dle_api->take_users_by_ip( string $ip, [, bool $like [, string $select_list [, int $limit]]]);

Получение списка пользователей по IP, второй параметр $like указывает использовать точное совпадение при поиске, либо неточное. Необязательный параметр $select_list указывает на перечень полей  БД которые необходимо получить. Необязательный параметр $limit указывает на лимит количества возращаемых пользователей. Возвращает массив с информацией либо false, если пользователи не найдены.

 

$dle_api->change_user_name( int $user_id, string $new_name);

Изменение логина пользователя. user_id ID пользователя, логин которого необходимо заменить. new_name новый логин пользователя. Возвращаемые значения: true если успешно выполнено, false если новое имя уже занято другим пользователем.

 

$dle_api->change_user_pass( int $user_id, string $new_pass);

Изменение пароля пользователя. user_id ID пользователя, пароль которого необходимо заменить. new_pass новый пароль пользователя.

 

$dle_api->change_user_email( int $user_id, string $new_email);

Изменение E-Mail пользователя. user_id ID пользователя, E-Mail которого необходимо заменить. new_email новый E-Mail пользователя. Возвращаемые значения: 1 - успешно выполнено, -1 - новый E-Mail уже существует, -2 - некорректный E-mail.

 

$dle_api->change_user_group( int $user_id, int $new_group);

Изменение группы пользователя. user_id ID пользователя, группу которого необходимо заменить. new_group ID новой группы пользователя. Возвращаемые значения: true если успешно выполнено, false если указан ID несуществующей группы.

 

$dle_api->external_auth( string $login, string $password);

Авторизация по логину и паролю. Возвращаемые значения: true - авторизация успешна, false - логин или пароль не верны.

 

$dle_api->external_register( string $login, string $password, string $email, int $group);

Регистрация пользователя в базе данных. В функцию передаются: Логин, Пароль, E-mail и номер группы в которой зарегистрировать пользователя. Возвращаемые значения: 1 - успешно выполнено, -1 - новый логин уже существует, -2 - новый E-Mail уже существует, -3 - некорректный E-Mail,  -4 - задана несуществующая группа.

 

$dle_api->send_pm_to_user ( int $user_id, string $subject, string $text, string $from);

Отправка персонального сообщения пользователю. $user_id ID получателя. $subject тема сообщения. $text текст сообщения. $from логин отправителя. Возвращаемые значения: 1 - успешно выполнено, -1 - получатель не найден, 0 - ошибка БД.

 

$dle_api->load_table ( string $table [, string $fields [, string $where [, bool $multirow [, int $start [, int $limit [, string $sort [, string $sort_order]]]]]]]);

 

Получение информации из таблицы БД.

$table - название таблицы

$fields - необходимые поля через запятую или * для всех

$where - условие выборки

$multirow - забирать ли один ряд или несколько

$start - начальное значение выборки

$limit - количество записей для выборки, 0 - выбрать все

$sort - поле, по которому осуществляется сортировка

$sort_order - направление сортировки

 

Возвращается массив с данными, либо false если в БД по указанным параметрам ничего не найдено.

 

$dle_api->save_to_cache ( string $fname, mixed $vars);

Запись данных в файл кеша. Параметр $fname указывает имя файла кеша без указания его расширения. $vars - данные для записи в кеш.

 

$dle_api->load_from_cache ( string $fname,  [, int $timeout [, string $type]]);

Чтение данных из файла кеша. Параметр $fname указывает имя файла кеша без указания его расширения. Необязательный параметр $timeout указывает количество секунд, в течении которых информацию из кеша считать актуальной. Если файл кеша будет устаревшим, то функция возвращает false.   Необязательный параметр $type указывает на тип данных который хранится в кеше,  если не 'text' - считаем, что хранился массив и возвращается массив данных.

 

$dle_api->clean_cache (  [string $name] );

Удаление кеша. Необязательный параметр $name указывает на конкретное имя файла без расширения который нужно удалить

 

$dle_api->get_cached_files();

Получение массива содержащего названия файлов кеша.

 

$dle_api->edit_config ( mixed $key,  [, string $new_value]);

Изменение и сохранение настроек скрипта.

 

Параметр  $key string или array

                string: Название параметра

                array: ассоциативный массив параметров

 

Параметр $new_value - значение параметра. Не используется, если $key массив

 

$dle_api->take_news ( string $cat,  [, string $fields [, int $start [, int $limit [, string $sort [, string $sort_order]]]]]);

Получение новостей

$cat  - категории новостей, через запятую

$fields - перечень получаемых полей новостей или * для всех

$start  - начальное значение выборки

$limit - количество новостей для выборки, 0 - выбрать все новости

$sort - поле, по которому осуществляется сортировка

$sort_order - направление сортировки

 

Возвращает ассоциативный 2-х мерный массив с новостями

 

$dle_api->checkGroup ( int $group );

Проверяет существует ли указанная группа или нет. Возвращаемые значения: true если группа существует, false если группа не существует.

 

$dle_api->install_admin_module ( string $name, string $title, string $descr, string $icon [, string $perm] );

Установка стороннего модуля в админпанель скрипта.

 

$name - название модуля, а именно файла .php находящегося в папке engine/inc/, но без расширения файла

$title - заголовок модуля

$descr - описание модуля

$icon - имя иконки для модуля, без указания пути. Иконка обязательно при этом должна находится в папке engine/skins/images/

$perm - информация о группах которым разрешен показ данного модуля. Данное поле может принимать следующие значения: all или ID групп через запятую. Например: 1,2,3. если указано значение all то модуль будет показываться всем пользователям имеющим доступ в админпанель

 

$dle_api->uninstall_admin_module ( string $name );

Удаление стороннего модуля из админпанели скрипта.

 

$name - название удаляемого модуля

 

$dle_api->change_admin_module_perms ( string $name, string $perm );

Изменение группы пользователей которым разрешен показ стороннего модуля в админпанели скрипта.

 

$name - название модуля

$perm - информация о группах которым разрешен показ данного модуля. Данное поле может принимать следующие значения: all или ID групп через запятую. Например: 1,2,3. если указано значение all то модуль будет показываться всем пользователям имеющим доступ в админпанель

 

 

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