Инфо DataLife Engine v.11.2 Final Release

Тема в разделе "DLE", создана пользователем killoff, 23 ноя 2016.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    Не знаю в 11.2 или раньше, но наткнулся на очень интересный код в mysql.class.php:

    PHP:
        function sql_mode()
        {
            
    $remove_modes = array( 'STRICT_TRANS_TABLES''STRICT_ALL_TABLES''ONLY_FULL_GROUP_BY''NO_ZERO_DATE''NO_ZERO_IN_DATE''TRADITIONAL' );
            
            
    $res $this->query"SELECT @@SESSION.sql_mode" );
            
    $row $this->get_array();
            
            if ( !
    $row[0] ) {
                return;
            }
            
            
    $modes_array explode','$row[0] );
            
    $modes_array array_change_key_case$modes_arrayCASE_UPPER );

            foreach ( 
    $modes_array as $key => $value ) {
                if ( 
    in_array$value$remove_modes ) ) {
                    unset( 
    $modes_array$key ] );
                }
            }
            
            
    $mode_list implode(','$modes_array);

            if(
    $row[0] != $mode_list) {
                
    $this->query"SET SESSION sql_mode='{$mode_list}'" );
            }
            
        }
    Кто понял о чём речь - молодец, кто нет - читаем https://habrahabr.ru/post/166411/

    Зачем это в DLE? Для меня загадка... Строгий режим MySQL особой защиты не даёт, да и DLE не плохо генерирует запросы чтобы фильтровать их на стороне MySQL...
    Могу предположить, что это намёк на приближающийся PDO для других баз данных :)
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    Объясните мне кто-нибудь вот этот кусок кода с template.class.php:
    PHP:
            if (strpos $this->template"{*" ) !== false) {
                
    $this->template preg_replace("'\\{\\*(.*?)\\*\\}'si"''$this->template);
            }

            
    $this->template $this->check_module($this->template);
    А ниже ещё такой:
    PHP:
            if (strpos $template"{*" ) !== false) {
                
    $template preg_replace("'\\{\\*(.*?)\\*\\}'si"''$template);
            }

            
    $template $this->check_module($template);
    Откуда у нас теги {*...*} ? Что это за нововведение? Я видимо пропустил...

    Причём мы их не обрабатываем, а зачем-то вырезаем... Это какая-то защита? Или возможность "комментировать" теги вместо их удаления из шаблона? Если последнее, то почему нет [*...*] ?

    UPD:
    Я нуб...
    http://dle-news.ru/release/1673-datalife-engine-v110-final-release.html - версия 11.0:
    26. Добавлена поддержка нового глобального шаблонного тега: {* Закомментированный код *}. Данный тег предназначен для комментирования кода, все что заключено между "{*" и "*}" будет удалено из шаблона. И будет отсутствовать при выводе на сайте. Данные теги будут полезны разработчикам шаблонов, для отладки той или иной функциональности, когда нужно временно закомментировать ту или иную функциональность. Данный тег является глобальным и может использоваться во всех шаблонах.
     
    Последнее редактирование: 3 янв 2017
  3. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.101
    Симпатии:
    758
    Удобный тег для комментирования! Раньше я создавал теги <!---тут_удаляемый_код---> чтобы оставлять комментарии в шаблонах, с этими тегами не надо добавлять новые теги для комментариев в шаблоне.
     
    Горбушка нравится это.
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    @killoff, да просто не использую DLE ни на одном сайте - вот и пролетает часть нововведений мимо меня... А так - да, очень удобная штука, вот только подружить IDE с такой записью не думаю что просто... Ну чтобы подсветка была как комментария.

    А вообще... Копаться в чужом коде невероятно увлекательный процесс... Натыкаешься на море интересных, а парой странных вещей.
    К примеру, раньше в DLE был вот такой кусок кода:
    PHP:
            if (strpos $this->template"[group=" ) !== false) {
                
    $this->template preg_replace_callback "#\\[(group)=(.+?)\\](.*?)\\[/group\\]#is", array( &$this'check_group'), $this->template );
            }
            if (
    strpos $this->template"[not-group=" ) !== false) {
                
    $this->template preg_replace_callback "#\\[(not-group)=(.+?)\\](.*?)\\[/not-group\\]#is", array( &$this'check_group'), $this->template );
            }
    В новых версиях он превратился в:
    PHP:
            if (strpos $this->template"[group=" ) !== false OR strpos $this->template"[not-group=" ) !== false) {
                
    $this->template $this->check_group($this->template);
            }
    И в целом, это правильно. Кусок кода, отвечающий за обработку одного и того же объединили и заменили единой функцией. Здорово! Нет, правда, здорово!
    Но следующей строкой идёт:
    PHP:
            if (strpos $this->template"[page-count=" ) !== false) {
                
    $this->template preg_replace_callback "#\\[(page-count)=(.+?)\\](.*?)\\[/page-count\\]#is", array( &$this'check_page'), $this->template );
            }

            if (
    strpos $this->template"[not-page-count=" ) !== false) {
                
    $this->template preg_replace_callback "#\\[(not-page-count)=(.+?)\\](.*?)\\[/not-page-count\\]#is", array( &$this'check_page'), $this->template );
            }
    Что помешало объединить эти теги? Зачем было переписывать одно и оставлять рядом другое точно такое же?

    И да, это не в укор кому-то, не подумайте... Я уверен, что код check_group был переписан ради какого-то нового функционала, затрагивающего этот тег... Я сам не лучше... Это скорее намёк что ребят, надо бы провести полный рефакторинг кода и убрать вот такие места :)
     
  5. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.101
    Симпатии:
    758
    в итоге будет (или не будет) это сделано в сл. версии... 11.3 либо сразу 12.0 сделают :)
     
  6. kab2008

    kab2008 Постоялец

    Регистр.:
    15 фев 2008
    Сообщения:
    104
    Симпатии:
    10
    3 января 2017 внесены следующие изменения:
    Файлы дистрибутива были обновлены. Исправлена проблема со вставкой картинок, устранена проблема в редакторе Floara c форматированием, и несколько других обнаруженных ошибок.

    Порадуете?
     
  7. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    у них как-то все не в то место развитие идет... лучше бы код улучшали, ООП, шаблонизатор нормальный и т.п. А они все крутят и крутят.
    Пробовал перевести на https. Все таки пришлось править руками некоторый код. Написал в поддержку, обещали включить в обновления. Но ведь нашел еще пару мест, например, xml-карта, тоже протокол задан в коде, а не из конфига.
    Это вы в чем сравнивали, что за софт?
     
  8. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    WinMarge к примеру
    ООП - это лишь стиль программирования. Он не лучше и не хуже процедурного, но, как правило, увеличивает порок вхождения.
    Чем текущий не устраивает? Как по мне - один из лучших, что я видел... Нельзя использовать PHP в шаблонах? Ну извините, зато безопасно.

    Им бы модульность сделать... Плагины... А то код править каждый раз - зло...
     
    killoff нравится это.
  9. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Неудобно модули писать, когда нужно вывести циклы, например, таблицу: саму таблицу и строки в цикле. Приходится либо создавать лишние tpl (таблицу), либо html пихать в php.
    Ну я это и имею в виду. Например, чтобы что-то добавить в full.story, необходимо в php движка лезть. После обновления снова править. Достучаться до переменных через тот же шаблон includ'ом нельзя, что неудобно. И т.д... можно продолжать бесконечно.
     
  10. ignat70

    ignat70 Писатель

    Регистр.:
    9 мар 2014
    Сообщения:
    9
    Симпатии:
    5
    Как правильно прописывать путь до картинки для категории иконок? не отображается иконки в 11.2 категориях
    upload_2017-1-8_15-17-48.png