-
Публикации
1 592 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
12
Сообщения, опубликованные пользователем IT-Security
-
-
По Вашему администраторы не могут быть недобросовестными?Тут админки раздают налево и направо, а потом удивляются, что сайт взломан)
-
Открыть файлы из апгрейда и выдрать оттуда запросы. В чём проблема?
-
Доброе время суток!
Появилась идея сделать версию DLE с внёднённым расширенным АПИ. Не только для создания модулей, но и для их подключения.
Что планируется сделать:
1) Функции управления окружением из модулей
Давно хотелось в модуле не вставлять десятки файлов для JS/AJAX/эффектов, которые уже могут быть подключены. С другой стороны подключать всё подряд тоже как-то не хочется.
Решение простое:
dleAPI::connect_js('filename');
Лежать js дожны в папке js текущего скина. Есть возможность грузить внешние JS:dleAPI::connect_js('http://www.www.ru/file.js', true);
Аналогично с CSS файлами:dleAPI::connect_css('file.css');
или:dleAPI::connect_css('http://www.www.ru/file.css', true);
Файлы грузятся 1 раз!Также они будут сжиматься через gzip, что ускорит их загрузку + будут кэшироваться. Также из окружения можно будет менять title страницы:dleAPI::set_title ('Это title');
Или дописывать:dleAPI::set_title ('Это дописано', true);
Метатэги:dleAPI::set_meta('keywords', $keywords); dleAPI::set_meta('description', $keywords);
2) Возможность авторизовывать по email Да, это реально. Помимо классической авторизации по логину/паролю будет авторизация по паре email/пароль. 3) Объект dleAPI доступен из любого места Да, Вы можете делать запросы к API из любого места. Кроме этого появляется HTTP-GateWay для запросов снаружи. Работает он по двум ключам. Первый - открытый. По нему доступны функции для чтения данных (Кроме авторизационной информации) Второй - закрытый. По нему работают все фунции. Также у АПИ есть настройка с какого шлюза разрешать запрос (Да, полноценные соц. сети на ДЛЕ реальны). 4) Расширенное кэширование В АПИ мной было разработано timelife кэширование. Оно также будет доступно внутри ДЛЕ. 5) Дополнительные поля Будут разработаны и введены редактируемые и индексируемые дополнительные поля. Это удобно для различного рода балансов и прочих вещей, которые требуеют отдельное поле в БД. Индексация идёт по трём полям:user_id - module_id - field_id
Перед началом работы с дополнительным полем необходимо установить в систему модуль, который будет работать с доп. полями.dleAPI::setupModule(unique_name);
В ответ будет получен ID модуля в системе. Можно менять доп. информацию о модуле:dleAPI::moduleSetInfo($module_id, $descr, $version, $author);
После этого нужно добавить для модуля возможность ставить поля.dleAPI::addField($module_id, $fieldName);
Получаем в ответ ID поля. И наконец-то ставим поле:dleAPI::setField($field_id, $user_id, $value);
Если поля нет - оно создастся. Если есть - обновится.dleAPI::readField ($field_id, $user_id);
Чтение значения. Далее:dleAPI::removeField($field_id);
Удаление доп. поляdleAPI::unistallModule($module_id);
Удаление информации по модулю. Информацию по модулю и прочие детали планируется хранить в базе с кэшированием на диск. Поэтому снизить производительность это не должно. С другой стороны нужно понимать, что ДЛЕ будет кушать чуть больше ресурсов имея такие навороты. Также в проекте:dleAPI::set_update_url($module_id, $url);
Каждый раз при вызове:dleAPI::check_updates($module_id)
будет проверяться наличие новое версии и возвращаться результат. Серверная часть для отдачи версии будет предоставлена. 6) Управление выводом Теперь можно будет в любом модуле объявитьdleAPI::single_output();
После этого весь остальной вывод будет подавлен 7) Расширенные бб-тэги Теперь бб-тэги можно будет добавлять (Работать для начала будет только в шаблонах!) Пример:[parser=функция]Данные|через|слэш[/parser]
Что будет?Возьмётся фукнцияdleAPI::parser
и в неё будет переданы все аргументы, через | + название функции. Парсер вызовет callback-функцию, а она уже вернёт нормальный вывод. Пример:[parser=no_cookie]Превед![/parser]
В моём примере будет вызвана функция no_cookie, которая будет проверять посещал человек за эту сессию сайт или нет и если не посещал, то будет выведен текст. Такая функция пример будет, правда называться она будет no_session или first_visit. Удобно для сайтов, которые показывают флешку в первой загрузке и картинку на фоне когда человек уже сидит на сайте. Напомню, что также будет HTTP-режим АПИ для внешней обработки текста. 8) Подключение внешних компонентов Можно подключать внешние компоненты. Изначально в АПИ будет доступно:dleAPI::$db и dleAPI::$cache.
Опционально можно будет загрузить:dleAPI::$http_request и dleAPI::$geoip
9) Расширенная капча antibot.php будет модифицирован и будет выдавать каждый раз разный тип капчи, разные надписи и прочее, что должно помочь в защите от ботов. 10) Статические страницы Будет возможность вывести в любом место содержимое статической страницы. {staticpage id="$id" cache="true/false"} Это крайне удобно для различного рода сообщений и прочего. И АПИ вариант: dleAPI::getStaticPage ($id, $cache); 11) Модульность Будет добавлена полноценная модульность на стыке default в engine.php Примерно так:if ($config['allow_api'] == 'yes') { $modules = dleAPI::get_modules (); if (in_array ($do, $modules)) { require_once ($modules[$do]['handler']); } }
После этого модуль будет вставлен.
Пока это всё в разработке... Хотелось бы выслушать мнение.
Прошу перепостить эту тему, так как она важна для развития движка.
P.S. Поставляться всё это будет в виде патчей, чтобы не выкладывать файлы движка.
Использование в нуленных версиях крайне не рекомендуется.
Напомню про случай, когда моё апи изменили для возможности выполнять произвольный код и выложили.
Посему рекомендую лицензионный дистрибутив и оригинальное АПИ.
ВСЕ модули и ВСЁ АПИ в целом будет включаться/выключать в админ-панели!
-
А зачем?Кто хочет итак может скинуть фин помощь
- 1
-
Доброе время суток, дорогие друзья!
С радостью хочу объявить о второй ветке DLE API - версии 2.0.
Что же ждёт нас в версии 2.0?
1) Код полностью портирован под PHP 5.1, что сильно расширяет его возможности. Из главных - ООПность и статические методы.
Одна копия объекта на всю систему в ЛЮБОМ месте. Ничего не нужно объявлять, глобалить, наследовать
2) Расширенный конструктор запросов. Помимо уже привычного loadTable будет также insert, insertUpdate, update и новый select.
3) HTTP расширение, которое позволит связать воедино сотни сайтов. Дополнительно будет защита для доступа к АПИ по принципу:
host:ID:ключ.
Если у Вас популярный сайт на ДЛЕ, то Вы сможете создавать десятки новых ресурсов на основе одного.
4) Внешний парсер
Теперь Вы можете передать bb-тэги в функцию, а на выходе получить полноценный HTML для вставки в другие ресурсы.
Кроме того Вы можете использовать свои бб-тэги. Эта функция также работает в HTTP-режиме.
Грубо говоря если Вы хотите сделать свой бб-тэг [simple]12345[/simple], то будет вызвана функция simple и в неё будет передана строка 12345.
Это позволяет делать свою разметку и использовать на сторонних ресурсах.
5) Теперь апи можно без проблем использовать для создания своих backend'ов. Ещё в старой версии появился метод checkAuth, который проверял авторизацию.
Теперь его также можно использовать.
6) Методы addNews, addVote, sendEmailMessage
Новые методы, которые ещё больше расширяют возможности движка.
7) Суб-класс HTTPRequest
Суб-класс для удобной работы с HTTP-запросами
Вот примерный список того, что будет в новой версии API.
Высказываемся
Версия 2.0 Alpha:
1) Реализовано
6) Реализован sendEmailMessage
Дополнительно:
- Оптимизирован весь код
- Проверки email заменены на аналоги из версии 8.5
- Функции сгруппированы по типам
- Изменён стиль кода
- Улучшен синтаксис SQL
- 6
-
Новая версия.
http://www.newleaf.ru/uploads/api_test.rar
Изменения:
- Исправлены баги
- Исправлен стиль отступов
Пробуем и выражаем пожелания.
Ведётся разработка новой версии API под PHP5.
-
Понравилось высказывание насчёт заказа дизайна у Лебедева))))А денег хватит?)))
Есть у него отличное высказывание:
"Мы принципиально не работаем с частными лицами, политическими и религиозными организациями, мудаками, а также с теми, чьи убеждения противоречат нашим. "
-
А версии то у них последние стояли?Патч безопасности на lostpassword стоял? (Если версия старая)
-
Да, могу. Завтра займусь. Ещё есть пожелания?На выходных займусь HTTP-POST-API.
На него можно будет обращаться из внешнего мира. Поставляться будет как отдельный файл.
По большому счёту это будет просто внешний интерфейс
-
Единственное что можно сделать - ставить Flash Media Server. Он по протоколу RTMP может транслировать. Его не то, чтобы не сохранить, но это намного труднее.
-
Не существует запросов типа варчар. Делал проект где нужно было выбрать всех друзей и друзей друзей.
Одним запросом сразу сожралось 20% от Core2Quad 2.66. Можно и одним запросом сложить мощный сервер.
А можно сотней маленький ничего не сделать.
-
Есть компаньон теперь надёжный. Вдвоём намного шустрее делать))))
-
Пишите в ICQ 683-993 - что-нибудь придумаем.
-
Да, совсем поправить забыл =( Сегодня фикс выложу, спасибо за репорт
-
А можно захостится у меня
-
Так он есть.
Комментарии давно в класс ведь вынесены.
-
Новая версия API:
http://www.newleaf.ru/uploads/api_test.zip
Изменения:
- Добавлен метод проверки авторизации (Работает из простого массива, из кук, сессий). Возвращает false или массив авторизованного пользователя
- Поправлено добавлено комментариев, добавлено обновление количества комментариев у пользователя.
Пользуемся, комментируем.
- 1
-
К выходным будет
-
Можно реализовать.
Что-то типа:
function check_auth () return false/массив пользователя
Висеть должно на одном домене. Устроит?
-
Завтра фикс выложу ещё. Чтобы человеку счётчик комментов обновляло.
-
API не меняет глобальное окружение движка, а работает локально.
-
Тестовая версия API.
http://www.newleaf.ru/uploads/api_test.zip
Добавлена функция для добавления комментариев:
/**
* @param $newsId int - ID новости
* @param $userName string - имя пользователя
* @param $ip string - IP пользователя
* @param $text string - комментарий
*/
function addComment ($newsId, $userName, $ip, $text) {[/php] -
Можно. Реализую как время будет.
-
А сколько у Вас извиняюсь вообще записей?
DLE API Edition (in develop)
в Готовые Моды, Хаки, Локализаторы, Советы
Опубликовано:
11 пункт - готово. Загрузка модулей работает. Грузит из локального кэша или из базы.