foto
Клиент 3 октября 2022 02:46 #

Оптимизация DLE

В engine/classes/tempates.class.php найти и удалить
$mobile_detect = new Mobile_Detect;

if ( $mobile_detect->isMobile() ) {
	$this->smartphone = true;
	$this->desktop = false;
}

if ( $mobile_detect->isTablet() ) {
	$this->smartphone = false;
	$this->desktop = false;
	$this->tablet = true;
}

if( $mobile_detect->isiOS() ){
	$this->ios = true;
}

if( $mobile_detect->isAndroidOS() ){
	$this->android = true;
}

и в plugins.class.php
case 'Mobile_Detect':
	include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mobiledetect.class.php'));
	break;
+1
foto
Клиент 19 мая 2020 00:28 #

Views-Top v.1.1 by Sander

Потому что данные можно изменить через правку кода.
0
foto
Клиент 14 марта 2019 12:59 #

Стол заказов by Sander

Ошибся, 10.3.0 а не 10.0.3 :)
+1
foto
Клиент 14 января 2019 09:33 #

Мультивыбор в доп.полях для DLE 13 v.1.2

Не нужно так критично, людей которые еще делают что-то под DLE слишком мало, а бесплатно и качественно вовсе.
+2
foto
Клиент 8 января 2019 20:54 #

Мультивыбор в доп.полях для DLE 13 v.1.2

У меня как на удивление тоже бесплатно.
+2
foto
Клиент 8 января 2019 16:00 #

Мультивыбор в доп.полях для DLE 13 v.1.2

Интересно, чем?
+1
foto
Клиент 14 августа 2018 16:01 #

Хак: Добавляем удобности шаблонизатору

На быструю руку
/**
 * Упрощенный код шаблонизации блоков
 *
 * @param       mixed   $data    Input mixed
 * @param       string  $tag     Input string
 */
public function checkBool($data, $tag)
{
	if (strpos($this->copy_template, "[if {$tag}]") !== false || strpos($this->copy_template, "[if !{$tag}]") !== false) {
		$this->copy_template = preg_replace_callback("#\\[if\s(!?){$tag}\\](.*?)\\[/if\s{$tag}\\]#is", function ($m) use($data, $tag) {
			if ($m[2]) {
				$elseBool = false;
				if (strpos($m[2], "[else {$tag}]") > 1) {
					$elseBool = true;
				}
				
				if ($elseBool && (!$data && !$m[1] || $data && $m[1])) {
					return explode("[else {$tag}]", $m[2])[1];
				} elseif ($elseBool && (!$m[1] && $data || !$data && $m[1])) {
					return explode("[else {$tag}]", $m[2])[0];
				} elseif (!$m[1] && $data || !$data && $m[1]) {
					return $m[2];
				}
			}
		}, $this->copy_template);
	}
}

[if fixed]зафиксировано [if poll]голосование есть[else poll]голосвания нет[/if poll][else fixed]не зафиксировано[/if fixed]
[if fixed]зафиксировано[/if fixed]
[if !fixed]не зафиксировано [if poll]голосование есть[else poll]голосвания нет[/if poll][/if fixed]
[if !fixed]не зафиксировано[else fixed]зафиксировано[/if fixed]
0
foto
Клиент 13 августа 2018 20:20 #

Хак: Добавляем удобности шаблонизатору

Конкурентоспособным другим движкам а не разработкам к нему. Не важно придумали все или нет, всегда можно реализовать лучше / по-другому и т.п
0
foto
Клиент 13 августа 2018 20:03 #

Хак: Добавляем удобности шаблонизатору

Или так
/**
 * Упрощенный код шаблонизации блоков
 *
 * @param       mixed   $data    Input mixed
 * @param       string  $tag     Input string
 */
public function checkBool($data, $tag)
{
	if (strpos($this->copy_template, "[if {$tag}]") !== false) {
		$this->copy_template = preg_replace_callback("#\\[if\s(!?){$tag}\\](.*?)\\[/if\\]#is", function ($m) use($data) {
			if ($m[2]) {
				$elseBool = false;
				if (strpos($m[2], '[else]') > 1) {
					$elseBool = true;
				}
				
				if ($elseBool && !$data && !$m[1]) {
					return explode('[else]', $m[2])[1];
				} elseif ($elseBool && $data && $m[1]) {
					return explode('[else]', $m[2])[1];
				} else {
					if ($data && $elseBool && !$m[1]) {
						return explode('[else]', $m[2])[0];
					} elseif (!$data && $elseBool && $m[1]) {
						return explode('[else]', $m[2])[0];
					} else {
						if ($data && !$m[1]) {
							return $m[2];
						} elseif (!$data && $m[1]) {
							return $m[2];
						}
					}
				}
			}
		}, $this->copy_template);
	}
}

В итоге конструкция
if ( $row['fixed'] ) {
	$tpl->set( '[fixed]', "" );
	$tpl->set( '[/fixed]', "" );
	$tpl->set_block( "'\\[not-fixed\\](.*?)\\[/not-fixed\\]'si", "" );
} else {
	$tpl->set( '[not-fixed]', "" );
	$tpl->set( '[/not-fixed]', "" );
	$tpl->set_block( "'\\[fixed\\](.*?)\\[/fixed\\]'si", "" );
}
Меняется на
$tpl->checkBool($row['fixed'], 'fixed');

А в шаблоне
[if fixed]зафиксировано[else]не зафиксировано[/if]
[if !fixed]не зафиксировано[else]зафиксировано[/if]
[if fixed]зафиксировано[/if]
[if !fixed]не зафиксировано[/if]


Развивать DLE не стоит, этот кусок говна никогда не станет конкурентоспособным другим движкам, даже тому бесплатному Livestreet не говоря о WP. Развитие кода и его структура застряла в архейской эре. Это пизд*ц а не код. А его высказывания что DLE не нужно ООП просто заставляет меня каждый раз брать револьвер и играть в русскую рулетку с самим собой. Даже с учетом этого, пусть будет этот говно код, но DLE нахер никому не упал, нет комьюнити. Из разрабов, ты, я, 0-web... всё?
0
foto
Клиент 13 июня 2018 04:35 #

Avatar-Select by Sander v.1.2

Именно, 5.6 и 7.0 в ioncube так и работают.
0
foto
Клиент 15 мая 2018 14:35 #

Avatar-Select by Sander v.1.2

Цитата: Jointhepoland
Модуль бомба.
Но я думаю меня многие поддержат нужен подобный модуль, но для вставки картинок в новость.
Есть тематики сайтов которые вставка в новость не меняться по смыслу. Лишь бы из было из чего выбирать.
Можете ли реализовать точно такой же функцыонал, но для вставки картинок в новость.

Это есть в DLE. Залейте файлы в /uploads/ и вы сможете выбрать их при добавлении / редактировании новости.
0
foto
Клиент 31 октября 2017 13:58 #

TPL-IF by Sander v.2.3

Хм, красота в буковках или хорошая производительность? Ибо рекурсивные шаблоны в данном случае будут не из легких.
0
foto
Клиент 31 октября 2017 13:57 #

TPL-IF by Sander v.2.3

Но так же и в самом PHP, если условие первое не подходит то вслед за ним идет другое, если же оно не верно (false) то не заходит внутрь if.
Цитата: Sander
Чтобы текст был показан только если хороший рейтинг и у новости есть комментарии или много просмотров.

[if rating>10 && comm_num>0 || rating>10 && views>100] ... [/if]
Так, разве нет?

Цитата: Sander
PS. Зачем дублировать trim() в цикле если его можно вынести в функцию.
Почему не используешь foreach ?

Это довольно старый код, я его не марафетил даже.

Всего не сделаешь, чем-то нужно пожертвовать, но в данном случае жертва минимальна, приоритет как бы сохраняется и как бы нет.
0
foto
Клиент 31 октября 2017 13:31 #

TPL-IF by Sander v.2.3

Для этого я написал функцию которая разбивает по || потом смотрит есть ли там && проходит по массиву && и если первое условие срабатывает то отдает и так далее.
0
foto
Клиент 31 октября 2017 13:22 #

TPL-IF by Sander v.2.3

p.s у письмо на активацию аккаунта попадает в спам. Почта gmail.
+1
foto
Клиент 31 октября 2017 13:20 #

TPL-IF by Sander v.2.3

Хм, а почему нельзя использовать || и && если значения числовые?

Цитата: SKYNET74
Это печально, нагрузка и скорость при обилии условий будет не очень маленькой, тестировал шаблонизатор DLE и свой нативный на PHP подобной логике, разница в десятки раз. Ваш работает по подобию DLE-шного, только условия посложнее.

Не верно, у меня такой же способ реализации через preg_match, switch и if - работает быстро, никаких просадок в скорости загрузки не заметно и быть по идеи не может.
0
foto
Клиент 31 октября 2017 13:15 #

TPL-IF by Sander v.2.3

Ну что же могу сказать - работа отличная. Придется свой не много апгрейднуть тогда :) Только я все же думал сделать вложенные условии
[if ...]
    [if ...]
        ....
    [else]
        ...
    [/if]
[/if]
Но реализация с числовыми if мне понравилась. Только не понятно почему так долго не было обновления? Ведь мог давно его обновить.
0
© Sander-Development. 2009-2024.
При копировании, ссылка на источник обязательна.