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}

  1. не забывайте, что у вас всегда есть attribute_view_gui*, который может очень вам помочь в этих случаях.
  2. Вы можете установить атрибут как сборщик информации и собирать эту информацию от пользователя.

* {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

Другие вопросы по тегам