Автообновление значений ресурса из TV
        Добрый день, есть такая задача:
Создаю MIGX со специалистами, там ФИО, должность и пр поля. Далее создаю TV поле select и в него подставляю ФИО специалистов. Далее у ресурса выбираю специалиста.
Вопрос вот в чем, если я поменяю в MIGX ФИО специалиста, в TV оно меняется, но у ресурса остается старое значение, т.е. не обновляется. Возможно ли как-то обновлять значения у ресурса тоже?
Решение:
В итоге по совету написал сниппет который по id берет значения
Выводить значения так:
и т.д. любые поля что указали в MIGX.
К ресурсу соответственно привязывается ID и если его не менять, то все значения связанные с ним будут автоматически обновляться.
    
    
                                                                                
            Создаю MIGX со специалистами, там ФИО, должность и пр поля. Далее создаю TV поле select и в него подставляю ФИО специалистов. Далее у ресурса выбираю специалиста.
Вопрос вот в чем, если я поменяю в MIGX ФИО специалиста, в TV оно меняется, но у ресурса остается старое значение, т.е. не обновляется. Возможно ли как-то обновлять значения у ресурса тоже?
Решение:
В итоге по совету написал сниппет который по id берет значения
$resource = $modx->getObject('modResource', array('id' => 8));
$tv = $modx->fromJSON( $resource->getTVValue($tvname) );
$result = array();
foreach ($tv as $key => $value) {
  if ($value['id'] == $id) {
    $result = $tv[$key];
    break;
  }
};
$modx->setPlaceholders($result, $tvprefix.'.');Выводить значения так:
[[getMigxOptionByID?
  &tvname=`consultation-specialist`
  &tvprefix = `specialist`
  &id=`1`
]]
[[+specialist.name]]
[[+specialist.image]]и т.д. любые поля что указали в MIGX.
К ресурсу соответственно привязывается ID и если его не менять, то все значения связанные с ним будут автоматически обновляться.
Комментарии: 4
                А в tv select каким образом значения выводите?            
                    
                Сниппетом, он берет имена специалистов из MIGX и возвращает в виде ФИО1==ФИО1||ФИО2==ФИО2||ФИО3==ФИО3
В поле Возможные значения вызывается сниппет
Сам сниппет
                    В поле Возможные значения вызывается сниппет
@EVAL return $modx->runSnippet('getMigxOptionsForTV', array('tvname' => 'consultation-specialist', 'key' => 'name'));Сам сниппет
$resource = $modx->getObject('modResource', array('id' => 8));
$tv = $modx->fromJSON( $resource->getTVValue($tvname) );
foreach ($tv as $value) {
  $result[] = $value[$key].'=='.$value[$key];
};
return implode('||', $result);            
                Добавьте в таблицу уникальное числовое поле id и выводите не ФИО1==ФИО1, а 1==ФИО1,
а во фронтенде тогда выбирайте ФИО из migx по уникальному id
                    а во фронтенде тогда выбирайте ФИО из migx по уникальному id
                Интересная идея, спасибо, буду пробовать.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.