enter it in a template position
echo $item->fields['fieldname']->display;
Use inside your item(_html5).php or category_items(_html5).php
// item view or category view $myfield_html = FlexicontentFields::getFieldDisplay($item, 'fieldname'); // use either: echo $myfield_html; echo $item->fields['fieldname']->display;
OR for category view (outside the FOR loop for better performance (now and in future versions))
// Please notice the 'items', instead of 'item' FlexicontentFields::getFieldDisplay($items, 'fieldname'); foreach($items ...) { ... // use inside ITEMS loop echo $item->fields['fieldname']->display; ... }
The getFieldDisplay, function signature is:
FlexicontentFields::getFieldDisplay( &$item_arr, $fieldname, $single_item_vals=null, $method='display', $view = 'item' );
Parameters
---------------
$item_arr -- you can render the field for an array of items, but you can also pass 1 item
$fieldname -- name of field to render, e.g. 'tags', 'categories', 'created', 'field37'
$single_item_vals -- custom value when rendering field for 1 item
$method -- all FLEXIcontent fields support method 'display' other fields support more e.g. 'image' field
$view -- fields display different depending on view, possible values are: item, category, module
Return
-------
string: with HTML when a single item was given
array of strings: when multiple items were passed, the array is indexed with item id ($item->id)
Examples for image field
$html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display', 'item'); $html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display_small', 'item'); $html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display_medium', 'item'); $html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display_large', 'item'); $html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display_original', 'item'); // AND USE: echo $html; // OR USE: echo $item->fields['fieldname']->display; // AFTER CALLING getFieldDisplay(), you can also use these arrays print_r($item->fields['fieldname']->thumbs_src['small']); print_r($item->fields['fieldname']->thumbs_src['medium']); print_r($item->fields['fieldname']->thumbs_src['large']); print_r($item->fields['fieldname']->thumbs_src['original']);
Examples for file field:
$html =FlexicontentFields::getFieldDisplay($item, 'fieldname', null, 'display', 'item'); // AND USE: echo $html; // OR USE: echo $item->fields['fieldname']->display; // AFTER CALLING getFieldDisplay(), you can also use these arrays print_r($item->fields['fieldname']->filedata); // e.g. size, absolute paths, etc print_r($item->fields['fieldname']->url]); print_r($item->fields['fieldname']->abspath]);
(2) Calling getFieldDisplay is not needed if a component parameter
Create Fields HTML (under "Performance Options")
is set to create ALL fields for current view
But avoid using it, because
- it will add unneeded CSS/JS to your page
- it will have a performance impact in category view, which will become serious if you display more that 50 or 100 items per page
(1) IF your template does not have this already, then:
1. edit the your item.xml AND category.xml files of your template and add it like this
2. Clear Joomla cache (needed in J2.5 and maybe needed in J3+)
otherwise the new position will not appear in the layout