DataLife Engine (DLE)
01.07.2009, 22:41Рубрика: other
Пришлось столкнуться с платным движком под название DataLife Engine. Не буду отрицать, впечатление хорошее. Административная часть так вообще на ура. Очень много настроек, гибкость системы, а главное легкость и понятливость. В общем, все, что нужно продвинутому пользователю.
Но как известно, никуда без ложки дегтя. Так как предстоящий проект не совсем подходил под движок, нужно было лезть вглубь. И тут же первое впечатление стало сходить на нет.
- Шаблоны просто жесть... Привычка использования гибкости smarty (и подобных) дает о себе знать. Нет php поддержки, все нужно в модулях прописывать. Странно, но в login.tpl как раз наоборот. Так почему же не выбрать один способ? Либо include, либо read? И так же сделать два шаблона login, для авторизованного и для не авторизованного пользователя. Пришлось в итоге инклюдить все шаблоны.
- Один из принципов программирования нарушен: повторение одних и тех же функций (к примеру function.inc.php – для админки, и function.php – для публичной части). То есть, хочу что то изменить, и нужно искать все (а не одно!) места.
- Добавление новостей (addnews.php) и редактирование (editnews.php) в разных файлах. А значит и сами формы в разных файлах, а значит опять по сто раз менять одно и тоже. Вот захотелось добавить что то сверх естественное (не используя DLE дополнительные поля) и готовимся по два раза это делать.
- Удаление новостей тоже забавно. Устанавливается флаг “yes” в $ifdelete. Забавное в удалении то, что перед тем как удалить, он производит кучу операций которые нужны при сохранении новости. Я даже был приятно удивлен когда увидел что перед удалением, новость не обновляется. А конструкция изменения новостей, такая же как в 5п. Только из-за того, что дата подставляется.
- Способы изменения и добавления информации в базу, тоже интересные. К примеру обновление профиля пользователя:
if( strlen( $password1 ) > 0 ) {
$password1 = md5( md5( $password1 ) );
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
} else {
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
}
Здесь не особо важно, но strlen( $password1 ) > 0 можно было бы заменить на $password1 != “”. Хотя всю конструкцию можно было бы заменить на один SQL запрос:
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', " . ($password1!=""?"password='" . md5( md5( $password1 ) ) . "',":"") . " allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";
- Так же, хотелось бы заметить, что в SQL можно присваивать так называемые алиасы для таблиц:
FROM " . PREFIX . "_comments as _c
И писать потом:
_c.id, _с.user_id и т.д. и т.п.
а не
PREFIX . "_comments.id и PREFIX . "_comments.user_id
И еще, все javascript скрипты запакованы. Для чего? Для того чтобы тормозить клиентскую сторону? Все равно распаковать их не проблема.
Можно еще найти много чего, но смысл? И так все понятно. Движок очень популярен, и таким он останется. Но не для программистов это точно.
Очередной раз убеждаемся, что свой корявый код, куда приятнее чужого корявого кода.
Ссылки по теме:
|
Aion-Top
(30.12.2009, 20:51:57) пишет: |
- dle тормозит
- тормозит dle
- не устанавливаеться dle
- не устанавливается dle
- dle не устанавливается
- как удалить DLE
- DLE xfields
- xfields dle
- JQuery для DLE
- dle дополнительные поля
- dle md5
- datalife engine
- dle password md5
- {xfields} dle
- smarty dle
- DLE smarty
- include php in DLE
- дополнительные поля на DLE
- Как обновить движок DLE
- что такое DLE
- datalife engine
- xfield dle
- DLE set names
- addnews.php DLE
- dle
- html код в xfields
- dle password md5(md5(
- не работает дополнительные поля в DLE
- DLE dnjhjq hfp yt ecnjyfdkbdftnmcz
- datalife engine xfield
- Include файла в DLE
- движок DataLife Engine не ставится
- SELECT
- пароль к sql в dle
- {land} дле
- Всплывающие подсказки DLE
- использование php в dle
- ДОбавить коды на сайте {fullname} DLE
- как вставить php код в новость DLE
- dle ajax что даёт
- dle второй раз не устанавливаеться
- как изменить пароль к админке в дле
- удаление новостей на dle
- dle добавить поле sql
- тормоза в dle от ajax
- DLE проблемы авторизованные пользователи
- Обновление профиля пользователя DLE
- USERPREFIX dle
- ajax примеры
- datalife xfields