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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
30 ноября 2015, 15:05
0
1. pdoPage не принимает массивы, он вызывает сниппет, которому передаёт offset и limit.
2. Сниппет делает запрос в БД. По умолчанию это pdoResources, который использует ровно те же методы, что и метод $_modx->getResources().
3. Результат оформляется в чанки тем же pdoResources, который использует Fenom.
4. Вывод на страницу.

Скажи пожалуйста, зачем пытаться сделать всё наоборот? Просто потому, что заняться нечем?
Василий Наумкин
30 ноября 2015, 14:54
0
Сниппеты MODX могут возвращать исключительно строки
Не нужно вешать на шаблонизатор вообще всё, что только в голову приходит.

Он для оформления, а не для работы с БД.
Василий Наумкин
30 ноября 2015, 14:48
0
Учитывая, что у Fenom есть доступ к GET — не вижу проблем.

Только pdoPage это всё равно сделает лучше.
Василий Наумкин
30 ноября 2015, 14:40
3
+1
Сниппеты MODX могут возвращать исключительно строки, так уже повелось. $modx->fromJSON не нужен, Fenom умеет сам это делать:
{set $result = json_decode($_modx->runSnippet('snippet'), 1)}

Можно еще вот так:
{var $resources = $_modx->getResources(
    ['published' => 1, 'deleted' => 0],
    ['sortby' => 'id', 'sortdir' => 'ASC', 'limit' => 50]
)}
{foreach $resources as $resource}
    {$_modx->getChunk('@INLINE <p>{$id} {$pagetitle}</p>', $resource)}
{/foreach}
Но это только для ресурсов.
Василий Наумкин
30 ноября 2015, 12:04
+2
Конечно, предусмотрено, именно поэтому я и даю ссылку на другое дополнение.
Василий Наумкин
29 ноября 2015, 17:00
+3
Не ругайся.

Чтобы научиться чему-то, нужно пробовать и набивать шишки. Я вот тоже далеко не сразу всему научился, да и сейчас каждый день открываю что-то новое.

А потом смотрю на своё старое и думаю «какая ж херня, надо-бы переписать». Это бесконечный процесс.
Василий Наумкин
29 ноября 2015, 16:55
0
Да я не про ядро (туда и раньше ничего не пихали), а просто, мол «зацените, люди!» в блоге или твиттере.

Но пока там новости исключительно о MODXCloud, а что и как на нём запускают — без разницы. Просьба не воспринимать серьёзно, обычное ворчание =)

Лично мне (лично мне) уже давно хватает всего, что есть. А чего вдруг не хватит — напишем.
Василий Наумкин
29 ноября 2015, 16:48
0
Я тоже им это показывал, но для себя понял, что им гораздо интереснее Twig.

Поэтому какой-то поддержи Fenom или Smarty от руководства MODX мы не увидим.
Василий Наумкин
29 ноября 2015, 16:47
0
Мне кажется, что Fenom гораздо меньше и проще.

Именно за это его и выбрал. Меньше файлов, меньше наворотов — самое то, для начала работы. А если не хватит — можно дальше глядеть уже другие решения: Smarty, Twig, или даже Volt.
Василий Наумкин
29 ноября 2015, 16:40
+1
Я не знаю Smarty. Так уж получилось, что сразу подружился именно с Fenom.

Но, вообще, тут речь не о разных шаблонизаторах, тут речь о нормальных шаблонизаторах в сравнении с извращением, которое многие сейчас пишут в чанках MODX.
Василий Наумкин
28 ноября 2015, 18:32
+1
Да просто заморозить url у ресурсов.
Василий Наумкин
28 ноября 2015, 16:42
+1
Жуть какая. Уж проще было всё в одном сниппете сделать, чем так.

А с Fenom, да, красота! Сам не нарадуюсь.
Василий Наумкин
28 ноября 2015, 15:33
1
+1
$sql = $modx->prepare('
	SELECT * FROM (
		SELECT * FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = 11
	) AS `tv_article` 
	LEFT JOIN `modx_shopmodx1c_tmp_categories` AS `main` 
	ON `main`.`parent` = `tv_article`.`value` AND `main`.`processed`=1
');
$sql->execute();
while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
	print_r($row);
}
modx.pro/development/325-about-xpdo/
Василий Наумкин
27 ноября 2015, 12:54
0
Вроде правильно.

Выведи запрос через showLog и смотри в БД как выполняется и почему.