The ezcountry datatype (Country)
Class eZCountryType in kernel/classes/datatypes/ezcountry/ezcountrytype.php; identifier ezcountry, listed in settings/content.ini [DataTypeSettings] AvailableDataTypes[].
What it stores
The columns of the attribute tables its class reads or writes: data_int1, data_text, data_text5 (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.
Sorting: sortKeyType() returns string.
It is indexed by the search; collects information (forms); can be filled from a plain string.
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/ezcountry.tpl:
{* DO NOT EDIT THIS FILE! Use an override template instead. *}
if $attribute.has_content
if is_array( $attribute.content.value )
foreach $attribute.content.value as $country
<p>$country.Name|wash( xhtml )</p>
/foreach
else
$attribute.content.value|wash( xhtml )
/if
else
'Not specified'|i18n( 'design/standard/content/datatype' )
/ifThe shipped template that edits it (attribute_edit_gui), design/standard/templates/content/datatype/edit/ezcountry.tpl:
{* DO NOT EDIT THIS FILE! Use an override template instead. *}
default attribute_base=ContentObjectAttribute
let class_content=$attribute.class_content
def $country = $attribute.content.value
<select id="ezcoa-if ne( $attribute_base, 'ContentObjectAttribute' )$attribute_base-/if$attribute.contentclassattribute_id_$attribute.contentclass_attribute_identifier" class="ezcc-$attribute.object.content_class.identifier ezcca-$attribute.object.content_class.identifier_$attribute.contentclass_attribute_identifier" name="$attribute_base_country_$attribute.id[]" if $class_content.multiple_choicemultiple="multiple"elseautocomplete="country"/if>
if $class_content.multiple_choice|not
<option value="">'Not specified'|i18n( 'design/standard/content/datatype' )</option>
/if
if $country|ne( '' )
if $country|is_array|not
{* Backwards compatibility: an old value is the country's name *}
include uri='design:country/options.tpl' country_selected=array( $country ) country_multiple=$class_content.multiple_choice
else
include uri='design:country/options.tpl' country_selected_map=$country country_multiple=$class_content.multiple_choice
/if
else
include uri='design:country/options.tpl' country_selected_map=$class_content.default_countries country_multiple=$class_content.multiple_choice
/if
</select>
/let
/defaultOverride them for one class attribute in an override.ini.append.php with Source=content/datatype/view/ezcountry.tpl and a match on attribute_identifier (see A template override).
Related
Generated by ./console exp:help:examples from kernel/classes/datatypes/ezcountry/ezcountrytype.php, settings/content.ini, design/standard/templates/content/datatype/view/ezcountry.tpl, design/standard/templates/content/datatype/edit/ezcountry.tpl. Do not edit this page: change the source and generate again (how). Free documentation: GFDL 1.3 or later.