Массовое изменение ТV
Подскажите пожалуйста, есть ли возможность ТV (число) полю подгружать значения и ТV поля его родительского ресурса, то есть
Категория 1
-Документ 1
-Документ 2
-Документ 3
Я например ставлю в родительском ресурсе значение 300 и у всех дочерних он становится 300
Категория 1
-Документ 1
-Документ 2
-Документ 3
Я например ставлю в родительском ресурсе значение 300 и у всех дочерних он становится 300
Комментарии: 8
Конечно можно.
Смысл примерно такой:
делаешь плагин на событие сохранение документа, берешь id этого документа, ищешь его потомков и устанавливаешь TV.
Довольно просто решается.
Плагин, вроде, нужно вешать на это событие:
Смысл примерно такой:
делаешь плагин на событие сохранение документа, берешь id этого документа, ищешь его потомков и устанавливаешь TV.
Довольно просто решается.
Плагин, вроде, нужно вешать на это событие:
Только зачем именно так? Нельзя ли просто сделать сниппет, который нужно вызывать на дочерних страницах, и он будет подтягивать значение родительского ТВ?
Да дело в том, что на самом деле, есть шопкипер и владельцу данного магазина лень протыкивать все товары и менять цены вручную, я сам шопкипер не люблю, но сайт уже был готовый и меня попросили помочь, мне надо что бы TV price отвечающее за цену в кипере получал цену от родителя, т.к. там цены у дочерних ресурсов одинаковые все.
Тут разницы нет, шопкипер, минишоп али еще что.
Почитайте о том, как работают плагины, осильте выборку и все. Мог бы попробовать помочь с кодом, хоть и у самого руки далеко не самые прямые, но только завтра, к сожалению, сегодня уже никак.
Почитайте о том, как работают плагины, осильте выборку и все. Мог бы попробовать помочь с кодом, хоть и у самого руки далеко не самые прямые, но только завтра, к сожалению, сегодня уже никак.
Спасибо, нарыл подходящий для себя php скрипт немного подредактировал под свои нужды, правда что-то не заводиться
если будет время посмотрите, может я что то не так пишу, вроде все по примерам MODX API
<?php
$res = $modx->getObject('modResource', 5);
$tv = $res->getTVValue(7);
$ids = $modx->getChildIds(5,1, array('context'=>'web'));
foreach($ids as $id){
$page = $modx->getObject('modResource', $id);
$page->setTVValue('price', $tv);
}
по чему то в переменную $tv не хочет подхватываться значение из TV поляесли будет время посмотрите, может я что то не так пишу, вроде все по примерам MODX API
Ух вроде все завилось, пока работает! Буду смотреть как поведет дальше)
https://docs.modx.pro/components/pdotools/parser
[[#[[*parent]].__tv_name__]]
{$_modx->resource.parent | resource : '__tv_name__'}
Да дело в том, что на самом деле, есть шопкипер и владельцу данного магазина лень протыкивать все товары и менять цены вручную, я сам шопкипер не люблю, но сайт уже был готовый и меня попросили помочь, мне надо что бы TV price отвечающее за цену в кипере получал цену от родителя, т.к. там цены у дочерних ресурсов одинаковые все.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.