static))
{
$this->static = $this->getStatic();
}
return $this->static;
break;
case 'repeatable':
if (empty($this->repeatable))
{
$this->repeatable = $this->getRepeatable();
}
return $this->repeatable;
break;
default:
return parent::__get($name);
}
}
/**
* Get the rendering of this field type for static display, e.g. in a single
* item view (typically a "read" task).
*
* @since 2.0
*
* @return string The field HTML
*/
public function getStatic()
{
if (isset($this->element['legacy']))
{
return $this->getInput();
}
$options = array(
'id' => $this->id
);
return $this->getFieldContents($options);
}
/**
* Get the rendering of this field type for a repeatable (grid) display,
* e.g. in a view listing many item (typically a "browse" task)
*
* @since 2.1
*
* @return string The field HTML
*/
public function getRepeatable()
{
if (isset($this->element['legacy']))
{
return $this->getInput();
}
$options = array(
'class' => $this->id
);
return $this->getFieldContents($options);
}
/**
* Method to get the field input markup.
*
* @param array $fieldOptions Options to be passed into the field
*
* @return string The field HTML
*/
public function getFieldContents(array $fieldOptions = array())
{
$id = isset($fieldOptions['id']) ? 'id="' . $fieldOptions['id'] . '" ' : '';
$class = $this->class . (isset($fieldOptions['class']) ? ' ' . $fieldOptions['class'] : '');
$front_link = $this->element['front_link'] ? (string) $this->element['front_link'] : false;
$translate = $this->element['translate'] ? (string) $this->element['translate'] : false;
$tagIds = is_array($this->value) ? implode(',', $this->value) : $this->value;
if (!$this->item instanceof DataModel)
{
$this->item = $this->form->getModel();
}
if ($tagIds && $this->item instanceof DataModel)
{
$db = $this->form->getContainer()->platform->getDbo();
$query = $db->getQuery(true)
->select(array($db->quoteName('id'), $db->quoteName('title')))
->from($db->quoteName('#__tags'))
->where($db->quoteName('id') . ' IN (' . $tagIds . ')');
$query->order($db->quoteName('title'));
$db->setQuery($query);
$tags = $db->loadObjectList();
$html = '';
foreach ($tags as $tag)
{
$html .= '';
if ($front_link)
{
\JLoader::register('TagsHelperRoute', \JPATH_SITE . '/components/com_tags/helpers/route.php');
$html .= '';
}
if ($translate == true)
{
$html .= \JText::_($tag->title);
}
else
{
$html .= $tag->title;
}
if ($front_link)
{
$html .= '';
}
$html .= '';
}
}
return '' .
$html .
'';
}
}