74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * @package     Joomla.Site
 | |
|  * @subpackage  com_fields
 | |
|  *
 | |
|  * @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);
 | |
| }
 | |
| 
 | |
| if (empty($fields)) {
 | |
|     return;
 | |
| }
 | |
| 
 | |
| $output = [];
 | |
| 
 | |
| foreach ($fields as $field) {
 | |
|     // If the value is empty do nothing
 | |
|     if (!isset($field->value) || trim($field->value) === '') {
 | |
|         continue;
 | |
|     }
 | |
| 
 | |
|     $class = $field->name . ' ' . $field->params->get('render_class');
 | |
|     $layout = $field->params->get('layout', 'render');
 | |
|     $content = FieldsHelper::render($context, 'field.' . $layout, ['field' => $field]);
 | |
| 
 | |
|     // If the content is empty do nothing
 | |
|     if (trim($content) === '') {
 | |
|         continue;
 | |
|     }
 | |
| 
 | |
|     $output[] = $content;
 | |
| }
 | |
| 
 | |
| if (empty($output)) {
 | |
|     return;
 | |
| }
 | |
| ?>
 | |
| <div class="fields-container">
 | |
|     <?php echo implode("\n", $output); ?>
 | |
| </div>
 |