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

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

С нами с 30 ноября -0001; Место в рейтинге пользователей: #375
23 октября 2025, 21:08
0
Сам отвечу, может кому-то пригодится.

В классе компонента и его плагине есть проверки статуса заказа. Если статус отличный от «новый», то там сразу идет редирект на страницу ошибки оплаты без отправки данных в платежную систему и соответвенно без колбека от нее.

В моем случае письмо со ссылкой на оплату отправляется при выставлении дополнительного статуса заказа «Принят к оплате». Соответвенно сразу фейлится.

В итоге пришлось сделать копию класса и внести правки – добавить новый статус и поправить условие проверки.
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, 10:39
0
Спасибо.
12 января 2015, 09:56
0
Спасибо, попробую.

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

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