<< Click to Display Table of Contents >> Навигация: Разработчикам > API для разработки модулей |
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, охватывающий все аспекты взаимодействия с скриптом.