Автообновление значений ресурса из TV

Добрый день, есть такая задача:

Создаю 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 и если его не менять, то все значения связанные с ним будут автоматически обновляться.
Андрей
20 июля 2016, 05:53
modx.pro
976
0

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

Дмитрий Кондаков
20 июля 2016, 15:29
0
А в tv select каким образом значения выводите?
    Андрей
    20 июля 2016, 15:36
    0
    Сниппетом, он берет имена специалистов из 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);
      Дмитрий Кондаков
      20 июля 2016, 15:42
      +2
      Добавьте в таблицу уникальное числовое поле id и выводите не ФИО1==ФИО1, а 1==ФИО1,
      а во фронтенде тогда выбирайте ФИО из migx по уникальному id
        Андрей
        20 июля 2016, 15:47
        0
        Интересная идея, спасибо, буду пробовать.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4