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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
20 мая 2015, 11:13
0
pdoParser включен? Лог сайта без ошибок? Кэш почистил?
Василий Наумкин
20 мая 2015, 09:33
0
Видимо, что-то не кэшируется.

Могу предложить попробовать modstore.pro/debugparser
Василий Наумкин
20 мая 2015, 06:35
0
Предлагаю это всё тебе протестировать самостоятельно, когда выспишься.
Василий Наумкин
20 мая 2015, 00:31
1
0
Как минимум с тем, что парсер MODX выбирает теги регулярками, создаёт из них объекты и запускает на выполнение.

pdoParser пробует их выполнить без объектов, а если не может — отдаёт в парсер MODX.

Ну а Fenom просто и без затей компилирует шаблон в исполняемый PHP код, который полюбому будет быстрее.

И осталась ли возможность использовать специальные плейсхолдеры типа [[#12.pagetitle]]?
Конечно. Теперь можно даже так:
{$modx->getObject('modResource', 12)->pagetitle}
Василий Наумкин
19 мая 2015, 22:36
+4
Ну ты и навелосипедил!

Обновляйся на 2.0.0-rc, включай pdoParser при установке, и можно использовать Fenom на страницах сайта и в шаблонах.

Вообще, короче, везде можно.
Василий Наумкин
19 мая 2015, 20:19
+1
Теперь достаточно написать один простенький сниппет (чтобы не извращаться через tplWrapper pdoResource'а), который подключает pdoTools и с помощью него выводит чанк из параметров сниппета (а в чанке уже можно писать что угодно) и всё, мать его, ВСЁ! xD

Не спеши, скоро будет обновление с улучшенным pdoParser:

Василий Наумкин
19 мая 2015, 18:29
+1
Попробуй указать
&limit=`999999`
&maxLimit=`999999`
Василий Наумкин
19 мая 2015, 16:57
0
TTFB в MODX — это время полной генерации всей страницы.

Потому что он отдаёт страницу на вывод только после того, как она готова, никаких промежуточных echo (а значит, и байтов) нет.

Копать в оптимизацию скорости генерации страницы, ориентируйся на плейсхолдер [^t^].
Василий Наумкин
19 мая 2015, 14:58
+2
Мне, почему-то, кажется, что автор неверно использовал PDO::prepare() без плейсхолдеров, а просто вручную составлял запрос, который потом засунул в эту функцию. Так, конечно, ничего не будет экранировано.

Вот правильный способ. Обратите внимание на
$this->xpdo->prepare($sql)->execute(array_values($record));
Василий Наумкин
19 мая 2015, 14:11
0
Да, я посмотрел исходники. Это хорошо работает для pdoPage, а для pdoMenu — нет.

В первом случае одна страница, а во втором несколько, вот в этом и разница.
Василий Наумкин
19 мая 2015, 14:01
0
Нет, кэшируются только данные, а не отрендеренные чанки.

Так что попробуй, может сработать.
Василий Наумкин
19 мая 2015, 13:23
0
О чем и речь, да.

А вот если ты захочешь понапихать в чанки разных проверок — то Fenom будет гораздо быстрее.
Василий Наумкин
19 мая 2015, 13:09
0
В родных чанках pdoTools нет никаких фильтров вывода и условий, так что там вряд ли что-то ускорится.

Но попробовать можно, почему бы и нет? Напиши о результатах, если будешь делать.
Василий Наумкин
19 мая 2015, 12:10
0
Почисти кэш браузера, наверное.
Василий Наумкин
19 мая 2015, 12:00
0
Позже поэксперементирую, а пока давайте осваивать новые чанки.
Василий Наумкин
19 мая 2015, 09:40
0
Пробуй обновиться на 1.6.2-pl и не забудь как следует почистить кэш и сайта и браузера.
Василий Наумкин
19 мая 2015, 09:01
0
Скорее всего это просто мелкий баг с отображением.

Постараюсь поправить в ближайшее время.
Василий Наумкин
19 мая 2015, 08:43
2
+1
[[!pdoResources?
	&useFenom=`1`
	&parents=`0`
	&tpl=`@INLINE
	<p>Данные ресурса: {$id} - {$pagetitle}
		{if $parent != 0}
			{set $doc = $pdoTools->getArray('modResource', $parent, ['select' => 'pagetitle,uri'])}
			{if $doc}
				<ul>Данные родителя: {$doc.pagetitle} - {$doc.uri}</ul>
			{/if}
		{/if}
	</p>
	`
]]