developing.name Решение проблем разработки сайтов. uncat php javascript jquery ajax html other C#

DataLife Engine (DLE)

01.07.2009, 22:41
Рубрика: other

Пришлось столкнуться с платным движком под название DataLife Engine. Не буду отрицать, впечатление хорошее. Административная часть так вообще на ура. Очень много настроек, гибкость системы, а главное легкость и понятливость. В общем, все, что нужно продвинутому пользователю.

Но как известно, никуда без ложки дегтя. Так как предстоящий проект не совсем подходил под движок, нужно было лезть вглубь. И тут же первое впечатление стало сходить на нет.
 

  1. Шаблоны просто жесть... Привычка использования гибкости smarty (и подобных) дает о себе знать. Нет php поддержки, все нужно в модулях прописывать. Странно, но в login.tpl как раз наоборот. Так почему же не выбрать один способ? Либо include, либо read? И так же сделать два шаблона login, для авторизованного и для не авторизованного пользователя. Пришлось в итоге инклюдить все шаблоны.
     
  2. Один из принципов программирования нарушен: повторение одних и тех же функций (к примеру function.inc.php – для админки, и function.php – для публичной части). То есть, хочу что то изменить, и нужно искать все (а не одно!) места.
     
  3. Добавление новостей (addnews.php) и редактирование (editnews.php) в разных файлах. А значит и сами формы в разных файлах, а значит опять по сто раз менять одно и тоже. Вот захотелось добавить что то сверх естественное (не используя DLE дополнительные поля) и готовимся по два раза это делать.
     
  4. Удаление новостей тоже забавно. Устанавливается флаг “yes” в $ifdelete. Забавное в удалении то, что перед тем как удалить, он производит кучу операций которые нужны при сохранении новости. Я даже был приятно удивлен когда увидел что перед удалением, новость не обновляется. А конструкция изменения новостей, такая же как в 5п. Только из-за того, что дата подставляется.
     
  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'";

     
  6. Так же, хотелось бы заметить, что в SQL можно присваивать так называемые алиасы для таблиц:
    FROM " . PREFIX . "_comments as _c
    И писать потом:
    _c.id, _с.user_id и т.д. и т.п.
    а не 
    PREFIX . "_comments.id и PREFIX . "_comments.user_id

И еще, все javascript скрипты запакованы. Для чего? Для того чтобы тормозить клиентскую сторону? Все равно распаковать их не проблема.

Можно еще найти много чего, но смысл? И так все понятно. Движок очень популярен, и таким он останется. Но не для программистов это точно.

Очередной раз убеждаемся, что свой корявый код, куда приятнее чужого корявого кода.

Ссылки по теме:

  • 01.07.2009 - DataLife Engine (DLE)
  •  

    Комментарии



    Aion-Top (30.12.2009, 20:51:57) пишет:

    Насчет первого пункта. Да, использовать PHP код в шаблонах нельзя, но что мешает подключать свои файлы в шаблон простым: {include file=″myFile.php″}? :)

     

    Имя*:
    e-mail*:
    URL:
    captcha*
    Текст*:
    • 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

    jQuery plugins:
    • pro.scroll - графический скролл для div
    • pro.tips - всплывающие подсказки
    Powered by PRO