май 02 2009

DataLife Engine API

Дорогие друзья,

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

Рассмотрим небольшой пример использования API. Например нам необходимо получить всю информацию о пользователе с логином "admin". Для этого используем очень простой код:
include_once ('engine/api/api.class.php');
$info = $dle_api->take_user_by_name('admin');

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

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

Комментарии

  1. pentagon (Клиенты)

    2 мая 2009 17:11 24 комментария
    Отличный шаг! Снимаю шляпу.
  2. himik03-05 (Клиенты)

    2 мая 2009 21:43 1 комментарий
    Круто !!! Я не программер, сам модули писать не могу, но идея 100% будет востребована.
  3. Red Drag (Клиенты)

    3 мая 2009 10:14 63 комментария
    Большое спасибо!часто пишу моды,но не понимал для чего API! request
  4. Eagle (Клиенты)

    3 мая 2009 18:27 18 комментариев
    Вот из-за отсутствия API я в свое время от ДЛЕ и отказался :(
  5. Captain (Клиенты)

    3 мая 2009 20:25 131 комментарий
    Здорово, DLE все больше радует.
  6. mvia (Клиенты)

    4 мая 2009 10:51 20 комментариев
    Давно пора.
  7. aol (Посетители)

    4 мая 2009 12:47 2 комментария
    Ура, оно свершилось!
  8. celsoft (Администраторы)

    4 мая 2009 13:56 3 357 комментариев
    Цитата: aol
    Ура, оно свершилось!

    оно не свершилось, оно пытается полноценно свершится, а для этого необходима поддержка и желание разработчиков сторонних модулей.
  9. ShVad (Клиенты)

    6 мая 2009 21:33 45 комментариев
    celsoft,
    надо сделать авто подключение модулей.
  10. megaborgovik (Клиенты)

    9 мая 2009 11:45 9 комментариев
    Просто не верится, я было думал совместимость с модулями в этом деле нереализумая вещь, и впринципе смирился. А оказалось работа ведётся над этим.
    Это огромный шаг на пользу абсолютно всем !

    БРАВИСИМО !!! Очень порадовали !!!

    Тоже снимаю шляпу.

    Удачного внедрения !!!
  11. AquaVin (Клиенты)

    9 мая 2009 23:16 9 комментариев
    Цитата: ShVad
    надо сделать авто подключение модулей.

    Полностью поддерживаю, если бы модули можно было бы ставить так как на Joomla, тогда бы CMS точно была близка к идеалу.
  12. Pleomax (Посетители)

    11 мая 2009 22:28 15 комментариев
    О-о-е-е... Это круто!! После полноценного внедрения ЭйПиАй ДЛЕ будет вне конкуренции! =)
  13. Pavel Wershinin (Посетители)

    14 мая 2009 02:37 2 комментария
    Спасибо! Обязательно буду использовать API в работе! smile
  14. Pavel Wershinin (Посетители)

    5 июня 2009 21:25 2 комментария
    celsoft,
    Прошу прощения, а кто вам писал api.class.php ?
    Я дважды использовал API и оба раза баги, приходилось править сам класс. sad Уж не помню что у меня там не работало в первый раз, но вот сегодня, делал через API рассылку Персональных сообщений, опять пришлось вносить правки в ваш код.
    А именно строка №186 выглядит так

    $this->db->query( "update " . USERPREFIX . "_users set pm_unread = pm_unread + 1, pm_all = pm_all+1 " );


    Из-за нее количество сообщений плюсуется не только получателю, а всем пользователям сайта

    Пришлось дописывать, строчку.

    $this->db->query( "UPDATE " . USERPREFIX . "_users set pm_all=pm_all+1, pm_unread=pm_unread+1 where user_id='$user_id'" );
  15. celsoft (Администраторы)

    6 июня 2009 20:29 3 357 комментариев
    Pavel Wershinin,
    спасибо за информацию. Изменения будут внесены.
  16. Alex Ginner (Клиенты)

    8 июля 2009 22:13 2 комментария
    Я не прогрмист, но понимаю зачем это делается.При установке некоторых модулей, надо делать дамп базы данных сайта, что конкретно это не удобно и для простых пользователей так и програмистам. Да и мое мнение, что всетаки ДЛЕ будет на высоте. Уважаемые разработчики и програмисты сделайте ДЛЕ так чтобы он был первым. Я за ДЛЕ. Заранее спасибо

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Апрель 2020    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
27282930 

Опрос на сайте

Совершаете ли вы покупки в интернет?