24.07.2010, 15:20 | #1 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Работа с DataLife Engine
1. Введение Список переменных и классов DLE которые вы можете использовать в вашем подключаемом модуле, без дополнительного объявления: $is_logged - содержит информацию, является ли посетитель авторизованным пользователем или гостем, и содержит значения true или false. $member_id - содержит массив с информацией о авторизованном пользователе, включая всю его информацию из профиля. $db - класс DLE для работы с базой данных. $tpl - класс DLE для работы с шаблонами. $cat_info - массив содержащий информацию обо всех категориях на сайте. $config - массив содержащий информацию обо всех настройках скрипта. $user_group - массив содержащий информацию о всех группах пользователей и их настройках. $category_id - содержит ID категории которую просматривает посетитель. $_TIME - содержит текущее время в UNIX формате с учетом настроек смещения в настройках скрипта. $lang - массив содержащий текст из языкового пакета. $smartphone_detected - содержит информацию о том, просматривает ли пользователь сайт со смартфона или с обычного браузера, и содержит значения true или false. $dle_module - содержит информацию о разделе сайта, который просматривает пользователь, либо информацию переменной do из URL браузера. Внимание: Ваш модуль должен только читать данные из данных переменных, внесение изменений в значения переменных повлечет сбои в работе стандартных возможностей скрипта и дальнейшей его некорректной работе. 2. Создание модулей для DLE 2.1 Разберём, для начала, создание модуля в качестве блока, который затем можно вставить в любую часть вашего шаблона. 2.2 Но если же нам мало одного блока, а хотим, к примеру, чтобы наш модуль занимал всю страницу, то поступаем след. образом: Последний раз редактировалось Праведник; 24.07.2010 в 15:45. |
3 пользователя(ей) сказали cпасибо: |
25.07.2010, 16:24 | #41 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Просак
Цитата:
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
25.07.2010, 22:44 | #42 |
Гость
Сообщений: n/a
|
По поводу тестов... заинтересовали... )
Решил выяснить, какой способ быстрее подсчитывает данные. Тест проводился в php цикле. n - количество раз. Засекалось время в начале работы скрипта и в конце, после чего высчитывалось время выполнения запроса. Первый тест, выполнялся 200 раз. Код:
SELECT SQL_NO_CACHE count(`guid`) FROM `creature` Код работал 0.0197730064392с. SELECT SQL_NO_CACHE `guid` FROM `creature` Код работал 16.0518889427с. SELECT SQL_NO_CACHE count(1) FROM `creature` Код работал 0.0185179710388с. SELECT SQL_NO_CACHE count(*) FROM `creature` Код работал 0.0183970928192с. Второй тест, выполнялся 200000 раз. Код:
SELECT SQL_NO_CACHE count(`guid`) FROM `creature` Код работал 19.9426920414с. SELECT SQL_NO_CACHE count(1) FROM `creature` Код работал 19.7694129944с. SELECT SQL_NO_CACHE count(*) FROM `creature` Код работал 19.4894280434с. |
2 пользователя(ей) сказали cпасибо: | Праведник (25.07.2010) |
26.07.2010, 22:33 | #43 |
Гость
Сообщений: n/a
|
дак кто нить мне объяснит как же сформировать запрос по правильному, если GMT +3 время (московское).
При этом данные из таблицы статуса после определенного аптайма выглядят следующим образом: Текущий аптайм: 0 ?nbsp;2 ??bsp;12 ?; Максимальный аптайм: 0 ?nbsp;3 ??bsp;0 ?; Именно значения часов минут секунд не выводятся правильно, а через какие то пробелы %) |
26.07.2010, 22:38 | #44 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Опять "какие-то", "некие", "неопределенные"? Точные сведения давай - когда, в какой ситуации, почему и отчего.
Цитата:
- вот это неразрывный пробел. Видишь разницу? Дальше копайся САМ!!!
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
26.07.2010, 23:14 | #45 | ||
Гость
Сообщений: n/a
|
Код:
../engine/modules/wow/includes/functions/func.php строка return "{$d} ?nbsp;{$h} ??bsp;{$m} ?;"; Цитата:
Цитата:
|
||
Пользователь сказал cпасибо: | tempura (26.07.2010) |
26.07.2010, 23:50 | #46 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.07.2010, 00:01 | #47 |
Гость
Сообщений: n/a
|
исходники корявистые
видимо спешил наш автор 2% дописывал и изменял сам |
27.07.2010, 01:43 | #48 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Исходники автор поправил ещё вчера. И, кстати, полностью отказался от использования функции конверта времени. Это должно быть довольно очевидно, если смотреть. Просто копировал из дебиана и вот так вот получилось. Мелочи жизни. Знающий человек исправит за 2 секунды, даже не всматриваясь. Ну а бездарный копипастер будет дурить голову на пол страницы.
Последний раз редактировалось Праведник; 27.07.2010 в 01:48. |
Пользователь сказал cпасибо: | tempura (27.07.2010) |
27.07.2010, 02:21 | #49 | ||
Гость
Сообщений: n/a
|
Цитата:
Т.е. он получается что убил 3 строки в своей чудо таблице статуса сервера? или дописал функцию склонения к тем двум убитым строчкам Насчет знающих\не знающих, я базируюсь на немного другом аспекте - это веб дизайн, а не кодинг. Для меня увидеть беду во временных константах - смертельно, так как я даже незнаю где поправить, чтобы он вывел чудесные словосочетания (уже в нормальном просклонённом виде): часов, минут, секунд 2 tempura: Цитата:
P.s. там были строчки где просто ????;??; &??; Но к ним же не допишешь: дней часов минут секунд, ведь бред же получится... Потом посмотришь, а там, допустим: 3 дней 2 часов 1 минут 2 секунд Код:
function conventNormTime($nSec) { $d = floor( $nSec / (3600*24) ); $nSec = ($nSec - $d * 3600 * 24); $h = floor( $nSec / 3600 ); $nSec = ($nSec - $h * 3600); $m = floor( $nSec / 60 ); return "{$d} {$h} {$m} "; Все бы хорошо еслиб еще он умел склонять день дней часы часов минуы минут секунд секунд И, кстати, данная функция подходит под UTC? ведь он подгоняет помоему кол-во дней в високосном году Последний раз редактировалось fr3ak; 27.07.2010 в 02:25. |
||
27.07.2010, 02:25 | #50 | |||
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Цитата:
Цитата:
Цитата:
|
|||
27.07.2010, 02:41 | #51 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Не бывает с тем, кто сначала смотрит, а потом постит на форум. Вы этого не сделали. Вам проще докопаться на форуме, чем посмотреть - ну и мне тоже. Что посеешь, то и пожнешь.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
Пользователь сказал cпасибо: |
27.07.2010, 04:54 | #53 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
27.07.2010, 11:37 | #54 | |||
Гость
Сообщений: n/a
|
Цитата:
Цитата:
И еще, 5 утра - это сегодня, а не вчера... Цитата:
|
|||
19.08.2010, 16:14 | #55 |
Пользователь
|
Народ, а общую авторизацию mangos'a и dle никто не пробовал сделать еще?
|
19.08.2010, 19:32 | #56 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Вопрос не понят. Мангос хранит данные о юзерах в своей таблице, ДЛЕ - в своей. Синхронизация требуется? Или слияние этих двух таблиц?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
19.08.2010, 21:53 | #57 |
Пользователь
|
Уже есть готовая база ДЛЕ, хотелось ее задействовать для мангоса...
|
19.08.2010, 22:23 | #58 |
Гость
Сообщений: n/a
|
Вы не правильно отталкиваетесь от того, что Вам нужно.
Если есть база данных (DLE) и Вам нужно интегрировать её с мангосом, то что нужно сделать? Правильно, внести изменения в исходный код мангоса и заставить его брать данные из базы DLE. Второй вариант, дополнить базу мангоса полями, обеспечивающими работоспособность DLE движка, что куда более целесообразно и правильно. Добавляем недостающие поля, немного переписываем код авторизации DLE и все. Делов-то, на пару часов с пивком ) |
29.08.2010, 04:40 | #59 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Прошу прощения за отсутсвие поддержки по данной теме некоторое время. Были разного рода проблемы.
По сути заданного вопроса: Действительно, товарищ Тимз прав: лучше всего добавить необходимые поля именно к таблице аккаунтов. Делается сие элементарно, но... всегда есть свои "но". 1. Вам придётся отредактировать также файлы авторизации, регистрации (разумеется) и восстановления паролей, а это подразумевает хотябы минимальное понимание php, mysql. 2. Время от времени в дле находят критические уязвимости, с которыми можно запросто потерять контроль над сайтом, а в некоторх случаях и над сервером. 3. Чую попой, что 90% рунета использует так называемые "nulled" версии. Не для кого не секрет, что люди, которые их изготавливают, имеют свой собственный интерес. В таком случае вероятность п.2 увеличивается по экспаненте (в зависимости от автора нула). Вывод: понты - это безусловно красиво, но целесообразно ли? |
14.09.2010, 16:13 | #60 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Адресовано тем, кто использует у себя DataLife Engine 9 версии:
Проблема: Недостаточная фильтрация входящих данных. Ошибка в версии: Все версии Степень опасности: Высокая Для исправления откройте файлы engine/modules/search.php и engine/modules/fullsearch.php и найдите: PHP код:
PHP код:
PHP код:
PHP код:
|
16.09.2010, 13:07 | #61 | |
Пользователь
|
Цитата:
2. Баги и дыры есть везде, идеальный код - разве что Hello world :-D 3. Само собой, просто нужно пробежаться по коду внимательно перед юзанием Вывод: исходя из п.1. - написал свою мини-CMS с авторизацией от `realmd`.`accounts` ;-) |
|
16.09.2010, 20:40 | #62 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Если поискать, то там тоже наверняка можно будет найти дыру в безопасности...
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
16.09.2010, 21:20 | #63 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Фишка в другом: DLE/Joomla/Друпал и т.д. и т.п. - довольно используемые движки с открытым (привед нулерам) кодом. В них специально ищут ошибки как логики, так и программирования. При нахождении ошибок, как правило, они вылетают в паблик.
Не все администраторы каждые 10 минут клацают кнопку "обновить" на оф сайте производителей, в надежде увидеть заплатку (ну или хотябы инфу об уязвимости). В период, пока будет выпущена заплатка и её установят, школота (и не только) сложит кучу сайтов тупо ради удовольствия. Достаточно вспомнить случай с версией 8.2, в которой при формировании лёгкого запроса можно было получить любой пароль от любого участника. Это была повальная эпидемия... кого не хакнули - тот просто был неинтересен. Что касается самописных цмс: Их, как правило, в паблик не выбрасывают, а значит и найти ошибку в коде становится несколько затруднительно. А если учесть тот факт, что цмски используются в ограниченном кол-ве, то ещё и по сути бесполезным. Разумеется, что если захотят сломать, сломают. Это вопрос квалификации и желания. |
16.09.2010, 23:06 | #64 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Вот ту мимо, как мне кажется. Коммерческие проекты, за вырубание которых можно срубить бабло, не делаются на открытых (в т.ч. ломаных) cms, только на чьих-то приватных разработках. Скорее уж их устойчивость в том, что найти заказ на такой хак непросто...
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
28.09.2010, 15:40 | #65 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Автоцензором немного поломали код. Так что если будут вопросы, задаём.
|
28.09.2010, 16:04 | #66 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
аттачем приложи
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
29.09.2010, 09:42 | #67 | |
Новичок
Регистрация: 16.09.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
|
Цитата:
Третий вариант изменить авторизацию в DLE и заставить его делать селект из базы аккаунтов мангос при вводе логина/пароля. Так сделал в sb wow галерее |
|
02.10.2010, 13:32 | #68 |
Гость
Сообщений: n/a
|
С закрытыми глазами моё сообщение читали? Во втором варианте так и написано, только нужно понимать, что для работоспособности DLE полей логин\пароль не хватит. Соответственно придется добавить.
|
28.01.2011, 22:44 | #70 |
Пользователь
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
|
Пожалуйста:
1) Создаём категорию в админке Для этого заходим в любой менеджер баз данных, открываем базу с сайтом. Там ищем таблицу *_admin_sections, где * - перфикс таблицы. По-умолчанию она должна быть пуста. Вставляем данные в таблицу: id - ну тут, думаю, всё ясно... от 1 и до +бесконечность. name - имя модуля* (о нём речь пойдёт чутка ниже) title - заголовок категории модуля. descr - описание категории. icon - иконка (путь указывается относительно папки /engine/skins/images/ (тут расположена графика админки)) allow_groups - группы, имеющие доступ. 1 - айди админов (правда хз зачем он нужен.. читаем ниже). 2 Создаём модуль. if(понимаем принципы работы с файлами) { Создаём файл админки с именем, указанным в поле name таблицы *_admin_sections. В нём пишем код, который будет сохранять настройки ваших модулей. И соответсвенно, читать их. } else { http://www.spravkaweb.ru/php/netfile/file/ } Сам модуль админки кидаем в папку engine/inc/ Подключение будет произведено автоматически. P.S. ВНИМАНИЕ: указание о группах в базе данных не запрещает и не предотвращяет запуск модуля пользователями из других групп. Для разграничения доступа ваши подключаемые модули обязаны сами производить проверку групп и разрешать выполнение только разрешенным группам. Последний раз редактировалось Праведник; 28.01.2011 в 22:48. |
07.11.2011, 15:59 | #71 |
Новичок
Регистрация: 17.10.2010
Сообщений: 24
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
|
Праведник, можно пример регистрации учетной записи через DLE, с созданием аккаунта в игре?
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с MySQL через c++ | Hantet | Языки программирования | 54 | 10.04.2013 10:38 |
работа с базой characters извне | Energy | Флудильня | 15 | 31.08.2010 19:10 |
Работа с Mangos | Vampirenok | Корзина | 2 | 29.08.2010 05:00 |
ScriptDev2 Работа с ГО. | xmolex | Прочая документация | 9 | 04.08.2010 06:59 |