Как получить свойство по значению ТВ? fenom

В ТВ забито
название==значение
название2==значение2

в шаблоне через pdoResources вывожу только «значения» ресурсов… а вот как получить «название»? fenom если можно.
UDAV
21 июня 2018, 03:51
modx.pro
1 053
0

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

Aleksandr Huz
21 июня 2018, 12:33
1
+1
Можно через модификатор:
$fenom->addModifier('tvname', function ($tvname) {
    // Получаем объект TV по имени
    $tv = $modx->getObject('modTemplateVar',array('name' => $tvname));
    // id текущего ресурса
    $id = $modx->resource->id;
    // значение tv
    $value = $tv->renderOutput($id);
    
    // Ищем необходимое значение и возвращаем навазние
    $tvlist = explode('||', $tv->get('elements'));
    foreach ($tvlist as $item) {
        $arr = explode('==',$item);
        if($arr[1] == $value) {
            return $arr[0];
        }
    }
    return $tvname;
});

В чанке:
{'name TV' | tvname}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1