Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
21 июля 2015, 12:42
4
+3
<?php
if ($modx->event->name != 'OnDocFormPrerender' || $resource instanceof Ticket || $resource instanceof TicketsSection) {
    return;
}

if ($Tickets = $modx->getService('Tickets')) {
    $modx->controller->addLexiconTopic('tickets:default');
    
    $Tickets->loadManagerFiles($modx->controller, array(
        'config' => true,
		'utils' => true,
		'css' => true,
		'comments' => true,
    ));
    
    $insert = '
		tabs.add({
			title: _("comments"),
			items: [{
				xtype: "tickets-panel-comments",
				hidden: false,
				record: ' . $modx->toJSON($resource->toArray()) . ',
				parents: ' . $resource->id . ',
			}]
		});
	';
	if ($modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
		$modx->controller->addHtml('
		<script type="text/javascript">
			Ext.onReady(function() {
				window.setTimeout(function() {
					var tabs = Ext.getCmp("modx-resource-tabs");
					if (tabs) {
						' . $insert . '
					}
				}, 10);
			});
		</script>', true);
	}
	else {
		$modx->controller->addHtml('
		<script type="text/javascript">
			Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() {
				var tabs = this;
				tabs.on("beforerender", function() {
					' . $insert . '
				});
			});
		</script>', true);
	}
}
Может и включу потом, да. Но пока это твой эксклюзив =)
Василий Наумкин
21 июля 2015, 12:36
0
Тебе как, тайно код отправить, или чтобы все видели?
Василий Наумкин
21 июля 2015, 12:28
0
Кидай на R100477009970, выеду куда-нибудь.
Василий Наумкин
21 июля 2015, 09:26
0
2000 рублей, вот здесь. Уже проверил, всё работает.
Василий Наумкин
21 июля 2015, 07:28
0
Думаю, можно написать плагин, который будет подключать эту вкладку к ресурсу так, чтобы ничего не ломалось при обновлениях, но бесплатно проверять лень.
Василий Наумкин
21 июля 2015, 07:24
0
Похоже на вот эту уязвимость.

То есть, к сайту обращаются с подменённым http host, который сохраняется в кэше страницы и потом показывается всем. Нужно или железно прописать site_url в настройках или вызывать тег [[!++site_url]] некэшированным.

У нас на хостинге Nginx не позволяет так подменять HTTP_HOST.
Василий Наумкин
19 июля 2015, 23:04
+1
Он покажет время обработки каждого тега MODX на странице.

Какая вероятность, что эта информация тебе поможет? Можешь сэкономить 250 рублей и
методом исключения, удалять модули и скрипты и проверять.
Василий Наумкин
19 июля 2015, 11:47
+2
С добрым утром. Это «быстрые плейсхолдеры», знакомься!

И ведь не удивляло, наверное, никогда, что эти «комментарии» пропадают при выводе, а если их удалить — ломается функционал?
Василий Наумкин
18 июля 2015, 04:47
0
После измения compress_css и compress_js нужно почистить кэш. Почистил?

У нас на хостинге PHP 5.5 — с ним у MODX проблем точно нет.
Василий Наумкин
17 июля 2015, 12:50
0
Вот взял и погуглил за тебя пример BETWEEN в xPDO::where.

И еще советую освоить тег code для оформления кода, иначе следующие вопросы, оформленные подобным образом, я буду просто удалять.
Василий Наумкин
17 июля 2015, 12:33
1
0
Видимо, объяснить всё же нужно.

Сниппет пагинации должен принимать параметр с номером страницы, чтобы выводить те или иные ресурсы, в зависимости от него. Соотвественно, он должен вызываться всегда, при каждой загрузке страницы. А кэшированные сниппеты вызываются только один раз — в этом сам смысл кэширования.

Отсюда следует простейший вывод, что такие сниппеты, как pdoPage и getPage нельзя кэшировать в принципе, иначе они не будут работать.
Василий Наумкин
17 июля 2015, 11:53
0
Сниппет для пагинации нельзя вызывать кэшированным.

Очень надеюсь, что не придётся объяснять — почему.
Василий Наумкин
16 июля 2015, 21:43
0
Вместо изменения системных настроек сразу удалять пакет? Силён!

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

У тебя этого конфига на странице нет. Либо сниппет вызывается кэшированным, либо вообще не вызывается. Других объяснений, почему не работает modX::regClientStartupScript, я придумать не могу.

может из-за того, что чанк в чанке а там сниппет… хотя глупое предположение )
Любителей чанков-в-чанке-а-там-сниппет вообще часто поджидают сюрпризы.
Василий Наумкин
16 июля 2015, 21:31
0
А, ясно.

Может, если с javascript что-то не в порядке, стоит выключить автосбор и минификацию скриптов через MinifyX?

Это, как бы, первое о чем нужно подумать.
Василий Наумкин
16 июля 2015, 21:04
+1
Или выводи форму поиска через mSearchForm, как положено, или убери у неё класс msearch2, потому что родной скрипт пытается её инициализировать, а конфига от сниппета нет.
Василий Наумкин
16 июля 2015, 16:32
0
Моё мнение на этот счёт однозначное — сайт не должен жить за счёт кэша.

При очистке на modx.pro, первый раз главная грузится так:
total time: 2.2554 s
query time: 0.4618 s
queries: 233
Потом вот так:
total time: 0.3539 s
query time: 0.0480 s
queries: 137

То есть, очистки кэша никто не замечает — как это и должно быть.