Мои заметки

Тут я делюсь своим различным опытом в области программирования и своего хобби.

Напишите мне
Отвечу по возможности по услгам

Вывод tv параметров с заменой значений

Созаем TV
 

[[*hair]]
 
с параметрами - выпадающий список и значения
Значение1==1 ||Значение2==2|| Значение3==3

Создал сниппет с именем mySnippetName с содержимым для перезаписи значений:
 


switch($input){
	 case '1':
	 $out=`Значение1`
	 break;

	 case '2':
	 $out=`Значение2`
	 break;
  
  case '3':
	 $out=`Значение3`
	 break;

  case '4':
	 $out=`Значение4`
	 break;

	 //и т. д.
}
return $out;

 
и выводжим
 

[[mySnippetName? 
&input=`[[*haircolor]]`
]]

или

[[*haircolor:mySnippetName]]
 
А можно вообще без условий )):
 

$tvname = 'haircolor'; // имя TV
if(!$tvr = $modx->getObject('modTemplateVar', array('name'=>$tvname))) return;
$elements =  explode('||', $tvr->get('elements'));
foreach($elements as $element){
	$value = explode('==', $element)[1];
	if($value == $modx->resource->getTVValue($tvname)){
		$name = explode('==', $element)[0];
		$out .= $name;
	}
}
return $out;