• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Информация DataLife Engine v.11.2 Final Release

Не знаю в 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_array, CASE_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}'" );
		}
		
	}

Кто понял о чём речь - молодец, кто нет - читаем Для просмотра ссылки Войди или Зарегистрируйся

Зачем это в DLE? Для меня загадка... Строгий режим MySQL особой защиты не даёт, да и DLE не плохо генерирует запросы чтобы фильтровать их на стороне MySQL...
Могу предположить, что это намёк на приближающийся PDO для других баз данных :)
 
Объясните мне кто-нибудь вот этот кусок кода с 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:
Я нуб...
Для просмотра ссылки Войди или Зарегистрируйся - версия 11.0:
26. Добавлена поддержка нового глобального шаблонного тега: {* Закомментированный код *}. Данный тег предназначен для комментирования кода, все что заключено между "{*" и "*}" будет удалено из шаблона. И будет отсутствовать при выводе на сайте. Данные теги будут полезны разработчикам шаблонов, для отладки той или иной функциональности, когда нужно временно закомментировать ту или иную функциональность. Данный тег является глобальным и может использоваться во всех шаблонах.
 
Последнее редактирование:
  • Автор темы
  • Модер.
  • #23
Удобный тег для комментирования! Раньше я создавал теги <!---тут_удаляемый_код---> чтобы оставлять комментарии в шаблонах, с этими тегами не надо добавлять новые теги для комментариев в шаблоне.
 
@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 был переписан ради какого-то нового функционала, затрагивающего этот тег... Я сам не лучше... Это скорее намёк что ребят, надо бы провести полный рефакторинг кода и убрать вот такие места :)
 
  • Автор темы
  • Модер.
  • #25
Это скорее намёк что ребят, надо бы провести полный рефакторинг кода и убрать вот такие места :)
в итоге будет (или не будет) это сделано в сл. версии... 11.3 либо сразу 12.0 сделают :)
 
3 января 2017 внесены следующие изменения:
Файлы дистрибутива были обновлены. Исправлена проблема со вставкой картинок, устранена проблема в редакторе Floara c форматированием, и несколько других обнаруженных ошибок.

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

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

Им бы модульность сделать... Плагины... А то код править каждый раз - зло...
 
Нельзя использовать PHP в шаблонах? Ну извините, зато безопасно.
Неудобно модули писать, когда нужно вывести циклы, например, таблицу: саму таблицу и строки в цикле. Приходится либо создавать лишние tpl (таблицу), либо html пихать в php.
Им бы модульность сделать... Плагины... А то код править каждый раз - зло...
Ну я это и имею в виду. Например, чтобы что-то добавить в full.story, необходимо в php движка лезть. После обновления снова править. Достучаться до переменных через тот же шаблон includ'ом нельзя, что неудобно. И т.д... можно продолжать бесконечно.
 
Как правильно прописывать путь до картинки для категории иконок? не отображается иконки в 11.2 категориях
upload_2017-1-8_15-17-48.png
 
Назад
Сверху