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


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

Comments (8)

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