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 разработчиков посетить
Источник: dle-news.ru