58 lines
1.3 KiB
PHP
58 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @package Joomla.Site
|
|
* @subpackage com_contact
|
|
*
|
|
* @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
defined('_JEXEC') or die;
|
|
|
|
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
|
|
|
|
// Check if we have all the data
|
|
if (!array_key_exists('item', $displayData) || !array_key_exists('context', $displayData)) {
|
|
return;
|
|
}
|
|
|
|
// Setting up for display
|
|
$item = $displayData['item'];
|
|
|
|
if (!$item) {
|
|
return;
|
|
}
|
|
|
|
$context = $displayData['context'];
|
|
|
|
if (!$context) {
|
|
return;
|
|
}
|
|
|
|
$parts = explode('.', $context);
|
|
$component = $parts[0];
|
|
$fields = null;
|
|
|
|
if (array_key_exists('fields', $displayData)) {
|
|
$fields = $displayData['fields'];
|
|
} else {
|
|
$fields = $item->jcfields ?: FieldsHelper::getFields($context, $item, true);
|
|
}
|
|
|
|
// Do nothing when not in mail context, like that the default rendering is used
|
|
if (!$fields || reset($fields)->context !== 'com_contact.mail') {
|
|
return;
|
|
}
|
|
|
|
// Loop through the fields and print them
|
|
foreach ($fields as $field) {
|
|
// If the value is empty do nothing
|
|
if (!strlen($field->value)) {
|
|
continue;
|
|
}
|
|
|
|
$layout = $field->params->get('layout', 'render');
|
|
echo FieldsHelper::render($context, 'field.' . $layout, ['field' => $field]);
|
|
}
|