Массовое изменение ТV

Подскажите пожалуйста, есть ли возможность ТV (число) полю подгружать значения и ТV поля его родительского ресурса, то есть
Категория 1
-Документ 1
-Документ 2
-Документ 3
Я например ставлю в родительском ресурсе значение 300 и у всех дочерних он становится 300
Александр
16 августа 2016, 11:20
modx.pro
2 095
0

Комментарии: 8

Дмитрий
16 августа 2016, 17:27
+2
Конечно можно.
Смысл примерно такой:
делаешь плагин на событие сохранение документа, берешь id этого документа, ищешь его потомков и устанавливаешь TV.
Довольно просто решается.
Плагин, вроде, нужно вешать на это событие:
    Дмитрий
    16 августа 2016, 17:28
    0
    Только зачем именно так? Нельзя ли просто сделать сниппет, который нужно вызывать на дочерних страницах, и он будет подтягивать значение родительского ТВ?
      Александр
      16 августа 2016, 19:02
      0
      Да дело в том, что на самом деле, есть шопкипер и владельцу данного магазина лень протыкивать все товары и менять цены вручную, я сам шопкипер не люблю, но сайт уже был готовый и меня попросили помочь, мне надо что бы TV price отвечающее за цену в кипере получал цену от родителя, т.к. там цены у дочерних ресурсов одинаковые все.
        Дмитрий
        16 августа 2016, 20:24
        0
        Тут разницы нет, шопкипер, минишоп али еще что.
        Почитайте о том, как работают плагины, осильте выборку и все. Мог бы попробовать помочь с кодом, хоть и у самого руки далеко не самые прямые, но только завтра, к сожалению, сегодня уже никак.
          Александр
          16 августа 2016, 20:45
          0
          Спасибо, нарыл подходящий для себя php скрипт немного подредактировал под свои нужды, правда что-то не заводиться
          <?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
            Александр
            16 августа 2016, 21:19
            0
            Ух вроде все завилось, пока работает! Буду смотреть как поведет дальше)
        but1head
        16 августа 2016, 17:35
        0
        https://docs.modx.pro/components/pdotools/parser
        [[#[[*parent]].__tv_name__]]
        {$_modx->resource.parent | resource : '__tv_name__'}
          Александр
          16 августа 2016, 17:49
          0
          Да дело в том, что на самом деле, есть шопкипер и владельцу данного магазина лень протыкивать все товары и менять цены вручную, я сам шопкипер не люблю, но сайт уже был готовый и меня попросили помочь, мне надо что бы TV price отвечающее за цену в кипере получал цену от родителя, т.к. там цены у дочерних ресурсов одинаковые все.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            8