The ezmultioption datatype (Multi-option)
Class eZMultiOptionType in kernel/classes/datatypes/ezmultioption/ezmultioptiontype.php; identifier ezmultioption, listed in settings/content.ini [DataTypeSettings] AvailableDataTypes[].
What it stores
The columns of the attribute tables its class reads or writes: data_int, data_text, data_text1 (data_text, data_int, data_float and sort_key_* are the object attribute's; data_text1 ... data_int4 the class attribute's settings). Found by reading the class: a heuristic.
It is indexed by the search.
In templates
my_attribute stands for the identifier of an attribute of this type in your class:
def $attribute = $node.data_map.my_attribute
if $attribute.has_content
attribute_view_gui attribute=$attribute
/if
{* the value as the datatype returns it (objectAttributeContent()) *}
$attribute.content|attribute( show, 1 )The shipped template that shows it (attribute_view_gui), design/standard/templates/content/datatype/view/ezmultioption.tpl (first 25 lines):
{* DO NOT EDIT THIS FILE! Use an override template instead. *}
<div class="block">
<label>'Option set name'|i18n( 'design/standard/content/datatype' ):</label>
$attribute.content.name|wash
</div>
section var=Multioptions loop=$attribute.content.multioption_list
<div class="block">
<label>$Multioptions.item.name|wash:</label>
<select name="eZOption[$attribute.id][]">
section var=Option loop=$Multioptions.item.optionlist
if ne( $Option.item.additional_price, '' )
if eq( sum( $Option.index, 1 ), $Multioptions.item.default_option_id )
<option value="$Option.item.option_id|wash" selected="selected">$Option.item.value|wash-$Option.item.additional_price|l10n( currency )</option>
else
<option value="$Option.item.option_id|wash">$Option.item.value|wash-$Option.item.additional_price|l10n( currency )</option>
/if
else
if eq(sum($Option.index,1), $Multioptions.item.default_option_id)
<option value="$Option.item.option_id|wash" selected="selected">$Option.item.value|wash</option>
else
<option value="$Option.item.option_id|wash">$Option.item.value|wash</option>
/if
/if
/sectionThe shipped template that edits it (attribute_edit_gui), design/standard/templates/content/datatype/edit/ezmultioption.tpl (first 25 lines):
{* DO NOT EDIT THIS FILE! Use an override template instead. *}
default attribute_base=ContentObjectAttribute
<div class="block">
<label>'Option set name'|i18n( 'design/standard/content/datatype' ):</label>
<input id="ezcoa-if ne( $attribute_base, 'ContentObjectAttribute' )$attribute_base-/if$attribute.contentclassattribute_id_$attribute.contentclass_attribute_identifier" class="box ezcc-$attribute.object.content_class.identifier ezcca-$attribute.object.content_class.identifier_$attribute.contentclass_attribute_identifier" type="text" name="$attribute_base_data_optionset_name_$attribute.id" value="$attribute.content.name|wash" />
</div>
section show=$attribute.content.multioption_list
<table class="special" cellspacing="0">
section var=MultiOptionList loop=$attribute.content.multioption_list
<tr>
<th class="tight"><input type="checkbox" name="$attribute_base_data_multioption_remove_$attribute.id[]" value="$MultiOptionList.id" title="'Select multioption for removal.'|i18n( 'design/standard/content/datatype' )" /></th>
<th>$MultiOptionList.index</th>
<th class="tight">'Priority'|i18n( 'design/standard/content/datatype' ): <input type="text" size="3" name = "$attribute_base_data_multioption_priority_$attribute.id_$MultiOptionList.id" value="sum($MultiOptionList.index,1)" /></th>
</tr>
<tr>
<td colspan="3">
<div class="block">
<label for="ezcoa-$attribute.id_$attribute.contentclass_attribute_identifier_$MultiOptionList.id_name">'Name'|i18n( 'design/standard/content/datatype' ):</label>
<input id="ezcoa-$attribute.id_$attribute.contentclass_attribute_identifier_$MultiOptionList.id" class="box ezcc-$attribute.object.content_class.identifier ezcca-$attribute.object.content_class.identifier_$attribute.contentclass_attribute_identifier" type="text" name="$attribute_base_data_multioption_name_$attribute.id_$MultiOptionList.id" value="$MultiOptionList.name|wash" />
<input type="hidden" name="$attribute_base_data_multioption_id_$attribute.id[]" value="$MultiOptionList.id" />Override them for one class attribute in an override.ini.append.php with Source=content/datatype/view/ezmultioption.tpl and a match on attribute_identifier (see A template override).
Related
Generated by ./console exp:help:examples from kernel/classes/datatypes/ezmultioption/ezmultioptiontype.php, settings/content.ini, design/standard/templates/content/datatype/view/ezmultioption.tpl, design/standard/templates/content/datatype/edit/ezmultioption.tpl. Do not edit this page: change the source and generate again (how). Free documentation: GFDL 1.3 or later.