Компонент tienda, в представлении товара вывод пользовательских полей есть, но как сделать вывод пользовательских поля в списке товаров через интерфейс админ панели я не нашел.
В результате копирования кода из одного файла в другой появилось вот такое решение.
В файл представления components\com_tienda\views\products\view.html.php добавляем код функции getCustomFields:
function getCustomFields( $entity, $id, $cache_values = true )
{
Tienda::load( 'TiendaModelEavAttributes', 'models.eavattributes' );
Tienda::load( 'TiendaHelperEav', 'helpers.eav' );
$eavs = TiendaHelperEav::getAttributes( $entity, $id );
$fields = array( );
foreach ( @$eavs as $eav )
{
$key = $eav->eavattribute_alias;
$value = TiendaHelperEav::getAttributeValue( $eav, $entity, $id, false, $cache_values );
$fields[] = array(
'attribute' => $eav, 'value' => $value
);
}
return $fields;
}
В файл раскладки components\com_tienda\views\products\tmpl\default.php после строк
<div id="tienda_products"> <?php foreach ($items as $item) : ?>
Добавляем следующий код:
<?php $fields = $this->getCustomFields( 'products', $item->product_id );
if ( count( $fields ) )
{
$field_show = array();
foreach($fields as $f)
{
// Admin Editable => show only as info
if($f['attribute']->editable_by == 1)
{
$field_show[] = $f;
}
}
}
if ( count( $field_show ) )
{
$fields_html = '<table class="customfields">';
foreach ($field_show as $field)
{
$fields_html .= '<tr>';
$fields_html .= '<td>' . JText::_( $field['attribute']->eavattribute_label ) . '</td>';
Tienda::load('TiendaHelperEav', 'helpers.eav');
$fields_html .= '<td>' . TiendaHelperEav::showField($field['attribute'], $field['value']) . '</td>';
$fields_html .= '</tr>';
}
$fields_html .= '</table>';
}
?>
$fields_html это и будут пользовательские поля.