Главная > Уроки Dle > Описание функций DLE API v.0.09 Часть первая

Описание функций DLE API v.0.09 Часть первая


26-05-2011, 20:29. Разместил: Сергей
Давайте рассмотрим набор функция из версии 0.09 Datalife Engine API.

Вкратце об API:
Интерфейс прикладного программирования (англ. Application Programming Interface, API [эй-пи-ай]; по-русски чаще произносят [апи́]) — набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой.
В данном случае, под Операционной Системой подразумевается движок DLE.

Подготовимся к тестированию DLE API:
1) скачаем последнюю версию API (на момент написания статьи она имела номер 0.09) - api.zip [6.3 Kb] (cкачиваний: 49);
2) распакуем его в папку движка так, чтобы файл api.class.php лежал в папке /engine/api/;
3) создадим файл с именем test.php в папке /engine/modules/. В этом файле мы будем проверять разные функции API. Создадим базовую структуру файла по примеру:


<?
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
include_once(ENGINE_DIR . '/api/api.class.php');
// тут начинается тестовый код



// тут заканчивается тестовый код
$tpl->result['test']= $test;
$tpl->clear();
?>

* This source code was highlighted with Source Code Highlighter.


Теперь, переменная $test сможет выводится на экран.
4) подключим этот файл к движку, открыв файл /engine/init.php и добавив строку require_once ENGINE_DIR . '/modules/test.php'; после строчки require_once ENGINE_DIR . '/modules/gzip.php';.
5) добавим в файл index.php строчку $tpl->set ( '{test}', $tpl->result['test'] ); после строки $tpl->load_template ( 'main.tpl' );. Тем самым, мы добились того, что после вставки в шаблон главной страницы тега {test} мы сможем видеть, что выводит наш тестовый модуль.


А теперь, давайте пройдемся по функциям DLE API:

take_user_by_id ($id, $select_list = "*") - выводит данные о пользователе по его номеру.
Обязательный параметр - $id. Он указывает идентификатор пользователя, информацию о котором мы хотим получить.
Необязательный параметр - $select_list. Может принимать значения:
email - адрес электронной почты
password - хеш пароля (спасибо paha за исправление опечатки, тут почти полгода было записано "шех" )
name - имя
user_id - номер пользователя
news_num - кол-во новостей
comm_num - кол-во комментариев
user_group - номер группы пользователя
lastdate - дата последнего посещения
reg_date - дата регистрации
banned - является ли за баненным
allow_mail - может ли получать сообщения по почте
info - его информация "о себе"
signature - подпись
foto - файл фотографии
fullname - полное имя
land - страна
icq - номер ICQ
favorites - список избранного
pm_all - сколько имеет ЛС
pm_unread - сколько непрочтенных сообщений имеет
time_limit
xfields
allowed_ip
hash
logged_ip
restricted
restricted_days
restricted_date

Пример использования функции (просто скопируйте этот код в файл test.php, вставив его между комментариями о начале тестового кода и о его конце) :
$data=$dle_api->take_user_by_id(1);
$test=$data['name'];
Этот код выведет информацию о имени пользователя с номером 1. Переменная $data является массивом. В этом примере мы обращаемся к ее элементу "name". Мы модем обращаться к любому из элементов, указанных в списке выше.

take_user_by_name($name, $select_list = "*") - то же, что и выбор пользовтеля по его номеру, но пользователь выбирается по имени

take_user_by_email($email, $select_list = "*") - то же, что и выбор пользовтеля по его номеру, но пользователь выбирается по и-мейлу

take_users_by_group ($group, $select_list = "*", $limit = 0) - выбор пользователей из определенной группы.
Выводит список всех пользователей из определенной группы. Параметр $limit указывает максимальное число пользователей, которое скрипт может отобразить. Если установленно 0 - возвращает список пользователей группы без ограничений.

Пример использования функции (просто скопируйте этот код в файл test.php, вставив его между комментариями о начале тестового кода и о его конце) :
$data=$dle_api->take_users_by_group(1);
$count=count($data);
for ($c=0;$c<=$count;$c++)
{
$test.=$data[$c]['name'].'
';
}Этот код выведет имена всех пользователей группы "1", тоесть администраторов.

Вернуться назад