Даже вот так сделал:
<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
<!-- Item extra fields -->
<?php if($extraField->id === 31): ?>
<div class="itemExtraFields">
<h3><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h3>
<ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
<?php if($extraField->value != ''): ?>
<li class="<?php echo ($key%2)? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<?php if($extraField->type == 'header'): ?>
<h4 class="itemExtraFieldsHeader"><?php echo $extraField->name; ?></h4>
<?php else: ?>
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
<?php endif; ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<div class="clr"></div>
</div>
<?php endif; ?>
<?php endif; ?>
Здравствуйте! Ваш способ отключал не только показ доп. поля с текстом
title, но и вообще все доп. поля, включая те, которые хотелось бы отображать. На форуме нашлась полезная информация от
jurassik и получился вот такой вариант, возможно кому-то пригодится:
Вначале все также, как подробно описано выше:
1) Создайте дополнительное текстовое поле наименование/алиас
title2) Показ доп.полей в настройках категории для материала
Включен3) В файле
templates\ваш шаблон\html\com_k2\default\item.php в самом начале после
<?php defined('_JEXEC') or die; ?>
Добавьте код
<?php $extrafields = array(); foreach($this->item->extra_fields as $item) { $extrafields[$item->id] = $item->value; } $document = & JFactory::getDocument(); $config = & JFactory::getConfig(); if ($extrafields[4]) { $curtitle = $extrafields[4]; } else { $curtitle = $document->title; } $document->setTitle( $curtitle ); ?>
Обратите внимание в параметре extrafields[4]
вместо цифры 4 должен быть указан ID доп.поля созданного на 1 шаге. (параметр повторяется 2 раза)
4) В файле
templates\ваш шаблон\html\com_k2\default\item.php в стандартный код вывода доп.полей после строки
<?php foreach ($this->item->extra_fields as $key => $extraField): ?>
Вставьте строку:
<?php if ($extraField->alias=='title') continue; ?>
Обратите внимание чтобы в строке <?php if ($extraField->alias==
'title') continue; ?> был указан именно тот алиас который создан на 1 шаге
Кому не нужен заголовок для одного или группы доп.полей. строку <h3><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h3> из дефолтного кода можно удалить
В финале: - Title страницы берется и добавляется из созданного доп.поля title
- Само доп.поле title не отображается
- Все остальные доп.поля отображаются как обычно
Категория K2 и модуль K2 :
Если необходимо скрыть доп.поле с
title из общего списка доп.полей в категории и модуле (mod_k2_content), нужно аналогично в дефолтном коде вывода дополнительных полей, сразу после foreach добавить строку:
<?php if ($extraField->alias=='title') continue; ?>
- для категорий изменения нужно делать в файле category_item.php templates\ваш шаблон\html\com_k2\default\category_item.php
- для модуля в шаблоне модуля, в зависимости, от того какой используется, путь по умолчанию modules\mod_k2_content\tmpl\...
K2 v2.11.20230505
Joomla! 3.10.12