Как вывести заголовок выпадающего списка (TvKey)?

Здравствуйте!
Как вывести заголовок выпадающего списка в шаблоне?
Выпадающий список — список стран.
Такой вариант отпадает.
[[*tv_name:is=`australia `:then=`Австралия`]]
Александр
06 апреля 2020, 14:40
modx.pro
1
631
0

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

Павел Голубев
06 апреля 2020, 19:44
0
А что имеется ввиду по заголовком выпадющего списка?
    Александр
    06 апреля 2020, 20:45
    0
    Австралия — заголовок
    australia — значение
    Австралия==australia||Австрия==austria||
      Станислав
      06 апреля 2020, 21:38
      1
      +2
      [[*tvname:tvLabel]]
        Александр
        06 апреля 2020, 22:49
        0
        Спасибо, работает!
        А в феном есть модификатор?
          Александр
          07 апреля 2020, 10:01
          +1
          Нашел модификатор, но он работает только с тегами modx — [[*country:tvkey]].
          Если вызвать в феном {$country|tvkey} — выводит ошибку.
          $result = [];
          
          $tv = $modx->getObject('modTemplateVar', array('name' => $name));
          
          $delimiter = $tv->get('output_properties')['delimiter'];
          $input = explode($delimiter, $input);
          
          $tvElements = explode('||', $tv->get('elements'));
          $tvElementsArray = [];
          foreach ($tvElements as $tvElement){
            $item = explode('==', $tvElement);
            $tvElementsArray[$item[1]] = $item[0];
          }
          
          foreach ($input as $value){
            $result[] = $tvElementsArray[$value];
          }
          
          return implode($delimiter, $result);
            Роман Ильин
            07 апреля 2020, 10:16
            +1
            [[+tag:getTvKey=`[[!+tagKey]]`]]

            Сниппет getTvKey
            <?php
            if(empty($options))return $input;
            
            if(gettype($id) != "number") {
                $tv = $modx->getObject('modTemplateVar',array('name'=>$options));
                $id = $tv->get('id');
            }
            
            $a = $modx->getObject('modTemplateVar', $id);
            $b = explode('||',$a->get('elements'));
            foreach($b as $key => $value):
                list($text, $number) = explode('==',$value);
                if($number==$input)return $text;
            endforeach;
              Александр
              07 апреля 2020, 14:30
              0
              {$country|tvkey:'id=4'}
              [[*country:tvkey=`id=4`]], id=4 — id тв параметра
              <?php
              if(empty($options))return $input;
              
              parse_str($options, $z);
              
              $id = $z['id'];
              if(empty($id))return $input;
              
              $a = $modx->getObject('modTemplateVar', $id);
              $b = explode('||',$a->get('elements'));
              foreach($b as $key => $value):
                  list($text, $number) = explode('==',$value);
                  if($number==$input)return $text;
              endforeach;
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                7