Николай Артамонов

Николай Артамонов

С нами с 30 ноября -0001; Место в рейтинге пользователей: #373
Николай Артамонов
21 января 2025, 13:48
0
Финальная версия.

Прошлая давала ошибку при создании нового документа. Добавил проверку есть ли id.

@EVAL

if(! empty( $modx->resource->get('id') ) )  {

$id = $modx->resource->get('id');
$parent = $modx->resource->get('parent');
$parentResource = $modx->getObject('modResource', $id);
$grandfResource = $modx->getObject('modResource', $parent);

$parentId = $parentResource->get('parent');
$grandfId = $grandfResource->get('parent');

$pg = "$grandfId,$parentId";

return $modx->runSnippet('pdoResources',array('parents' => $pg,'depth'=>0,'limit'=>0,'where'=>'{"template:=":47}','sortby'=>'pagetitle','sortdir'=>'ASC','tpl'=>'@INLINE [[#[[+parent]].pagetitle]] > [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));

}
Николай Артамонов
21 января 2025, 09:24
0
Решил так:

@EVAL

$id = $modx->resource->get('id');
$parent = $modx->resource->get('parent');

$parentResource = $modx->getObject('modResource', $id);
$grandfResource = $modx->getObject('modResource', $parent);

$parentId = $parentResource->get('parent');
$grandfId = $grandfResource->get('parent');

$pg = "$grandfId,$parentId";

return $modx->runSnippet('pdoResources',array('parents' => $pg,'depth'=>0,'limit'=>0,'where'=>'{"template:=":47}','tpl'=>'@INLINE [[#[[+parent]].pagetitle]] > [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));
Вдруг кому-то понадобится.

Проблема видимо в том, что конструкции типа [[+parent]],[[#[[+parent]].parent]] обрабатываются только в шаблонах.
Николай Артамонов
20 января 2025, 18:16
0
Если поменять это

parents'=>'[[+parent]],[[#[[+parent]].parent]]'
на запись

parents'=>'538,539'
выводится как надо

В чем подвох этой конструкции
[[+parent]],[[#[[+parent]].parent]]
?
Николай Артамонов
20 января 2025, 18:02
0
Рано обрадовался. Моя конструкция почему-то выводит документы из всех уровней дерева.

--Дед
------Показать чекбоксом
----Родитель
------Документ со списком чекбоксов
------Показать чекбоксом
------Показать чекбоксом
----Родитель
------Документ со списком чекбоксов
------Показать чекбоксом
----Родитель
------Документ со списком чекбоксов
------Показать чекбоксом

В моей выборке получается, что в ресурсе где выводится список чекбоксов видны все ресурсы с шаблоном 47 изо всех родителей и деда. Хотя вроде как вот это

parents'=>'[[+parent]],[[#[[+parent]].parent]]',
должно передать id текузего родителя и деда для выборки. Depth пробовал 0. Все равно.

Что тут не так?
Николай Артамонов
20 января 2025, 17:22
0
Сам отвечу на свой вопрос:

Примерно вот так через pdoResource.

@EVAL return $modx->runSnippet('pdoResources',array('parents'=>'[[+parent]],[[#[[+parent]].parent]]','depth'=>1,'limit'=>0,'where'=>'{"template:=":47}','tpl'=>'@INLINE [[#[[+parent]].pagetitle]] > [[+pagetitle]]==[[+id]]','outputSeparator'=>'||'));
В итоге получил список чекбоксов от документов с id 47 от родителя и от дедушки. В value у чекбоксов id документа.
Николай Артамонов
25 октября 2024, 17:35
0
Спасибо большое! Это был не кэш. Пока ждал ответа меня озарило. Оказалось, что плагин, который обновляет наличие еще реагирует на onDocFormSafe. То есть все, что правишь руками, при сохранении снова перезаписывается. Отсюда и значения ручные слетают.
Николай Артамонов
07 февраля 2016, 13:29
0
Да, видимо //ob_start(); непричем. В режиме инкогнито, авторизуется нормально и с ним, но это видимо после каких-то манипуляций, о которых я сам не подозреваю. Потому как вчера в любых режимах вываливался белый экран.
Николай Артамонов
07 февраля 2016, 13:15
0
Заработало когда заккомментировал

/* start output buffering */
//ob_start();

в index.php. Чем это грозит? Похоже что это какие-то особенности хостинга?
Николай Артамонов
07 февраля 2016, 12:56
0
Обнаружил следующие ошибки:

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id — headers already sent in /home/p60497/www/.../core/model/modx/moduser.class.php on line 344

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id — headers already sent in /home/p60497/www/.../core/model/modx/moduser.class.php on line 344

Warning: Cannot modify header information — headers already sent by (output started at /home/p60497/www/anhel-trading.ru/index.php:3) in /home/p60497/www/.../core/model/modx/modresponse.class.php on line 264
Николай Артамонов
01 февраля 2016, 00:57
0
Richtext не срабатывал. Допилил вот это решение под себя — 2geek.pro/solutions/71-dopolnitelnyie-polya-k-tovaru-minishop2
Николай Артамонов
25 января 2016, 13:33
+1
Решено :) Не забывайте удалять скрипт для фронтенда из системных настроек, когда добавляете свою версию в шаблон.
Николай Артамонов
18 января 2016, 12:40
0
Похоже, что ничего) Затупил, не подумал, что можно .change повесить на весь документ. Спасибо большое!
Николай Артамонов
17 января 2016, 10:04
0
Спасибо, теперь все ясно!

Вообще, конечно, было бы здорово иметь возможность сохранять пользователей при заказе так, как считаешь нужным стандартным способом. Тогда можно будет и адреса предзаполнять из этих данных и клиентскую базу собирать и с днем рождения поздравлять отпрвляя дисконты и все в таком духе.
Николай Артамонов
12 января 2015, 09:56
0
Спасибо, попробую.

Василий, скажи, а насколько хлопотно доработать систему кэширования, или может сделать отдельную систему для minishop именно под этот проект, ну и систему для более менее приличных URL без index.php?page=блабла, вроде: products/12345?

Если остановимся на MODx, можно ли к тебе обратиться за этими доработками?
Николай Артамонов
12 января 2015, 09:18
0
Вот и я думаю, что под такой магазин нужен свой движок, да еще и пара серверов.