eZPublish - как получить значение Selection?
Я создал (в админке) поле выбора под названием color
, Теперь я не могу получить к нему доступ. Когда я бегу {$note.data_map.color.content|attribute(show)}
это печатает value
, Но я не могу получить к нему доступ без attribute(show)
, Что я могу сделать?
4 ответа
eZSelection-х content
это массив, доступ к 0
ключ на content
чтобы получить значение.
{$node.data_map.email_option.content.0}
- не забывайте, что у вас всегда есть attribute_view_gui*, который может очень вам помочь в этих случаях.
- Вы можете установить атрибут как сборщик информации и собирать эту информацию от пользователя.
* {attribute_view_gui attribute = $ node.data_map.color}
Если у вас тип "множественный выбор", вы можете сделать это следующим образом:
{if $node.data_map.color.has_content}
{foreach $node.data_map.color.content as $colorID}
{foreach $node.data_map.color.class_content.options as $opt}
{cond($opt.id|eq($colorID), $opt.name, '')}
{/foreach}
{/foreach}
{/if}
Вам необходимо сопоставить массив опций, определенный в вашем атрибуте класса, с идентификатором выбранной опции, чтобы получить его значение.
$node.data_map.color.class_content.options
будет содержать все доступные опции (ассоциативный массив с id
а также name
ценности)
$node.data_map.color.content
является массивом, содержащим идентификаторы выбранных опций (потому что это поле может обрабатывать множественный выбор).
Даже если {section}
функция устарела, я предложил вам взглянуть на шаблон по умолчанию, отображающий ezselection
атрибут: design/standard/templates/content/datatype/view/ezselection.tpl