Макет Komento в превью материалов Joomla

Сегодня рассмотрим процесс небольшой модификации макета вывода шаблона Komento в превью материалов Joomla (на примере шаблона по умолчанию Wireframe).

При использовании компонента Komento на странице превью материалов Joomla отображается строка в единственной форме - "n Комментариев", т.е., как для 0, так и для 1, 2, 5, 10 и др. Предлагаю реализовать небольшую модификацию макета вывода шаблона и, для материалов, в которых отсутствуют комментарии, вместо строки "0 Комментариев" выводить строку "Нет комментариев", что, несомненно, будет более удачным и правильным решением.

Для того чтобы не менять форму слова "Комментарии" в зависимости от значения количества комментариев (например, если 1, то "Комментарий", если 2, то "Комментария", если 5, то "Комментариев" и др.) и, таким образом, не усложнять логику функции вывода данной строки нагромождением циклов и условий, предлагаю просто перенести переменную значения количества комментариев в языковую константу, которую представить в универсальной форме - "Комментариев: n".

Переопределение шаблона

В качестве исходного шаблона в данном примере будет использоваться Wireframe. Файлы, которые отвечают за макет вывода шаблона Komento в превью материалов Joomla, находятся в каталоге listings.

Для переопределения шаблона Komento скопируйте каталог components/com_komento/themes/wireframe/listings в каталог шаблона Joomla templates/ваш_шаблон/html/com_komento (предварительно создав его).

Практическая реализация

Перед началом внесения изменений в файл макета Komento необходимо создать/переопределить языковые константы. Перейдите в админпанели в Расширения → Языки → Переопределение констант, выберите из выпадающего списка Русский (Россия) - Сайт и добавьте несколько констант:

  • COM_KOMENTO_FRONTPAGE_LIST_NO_COMMENTS = "Нет комментариев"
  • COM_KOMENTO_FRONTPAGE_LIST_COMMENTS = "Комментариев: %1$s"
  • COM_KOMENTO_FRONTPAGE_VIEWS = "Просмотров: %1$s"

Откройте файл templates/ваш_шаблон/html/com_komento/listings/default.php и найдите код:

<?php if ($this->config->get('layout_frontpage_comment')) { ?>
	<li class="kt-listing-comment">
		<a href="/<?php echo $componentHelper->getContentPermalink() . '#comments'; ?>">
			<i class="fa fa-comments-o"></i>&nbsp; <?php echo $commentCount;?> <?php echo JText::_('COM_KOMENTO_FRONTPAGE_COMMENT');?>
		</a>
	</li>
<?php } ?>

Замените найденный код на:

<?php if ($this->config->get('layout_frontpage_comment')) { ?>
<?php if ($commentCount == 0) { ?>
	<li class="kt-listing-comment">
		<a href="/<?php echo $componentHelper->getContentPermalink() . '#comments'; ?>">
			<i class="fa fa-comments-o"></i>&nbsp; <?php echo JText::_('COM_KOMENTO_FRONTPAGE_LIST_NO_COMMENTS');?>
		</a>
	</li>
<?php } else { ?>
	<li class="kt-listing-comment">
		<a href="/<?php echo $componentHelper->getContentPermalink() . '#comments'; ?>">
			<i class="fa fa-comments-o"></i>&nbsp; <?php echo JText::sprintf('COM_KOMENTO_FRONTPAGE_LIST_COMMENTS', $commentCount);?>
		</a>
	</li>
<?php } ?>
<?php } ?>

Если необходимо, можно скрыть отображение текстовой информации о среднем рейтинге материала (см. скриншоты #2-3).

Откройте файл templates/ваш_шаблон/html/com_komento/listings/default.php и найдите код:

<span class="kt-ratings-title"><?php echo $totalRating / 2;?> / 5</span>

Закомментируйте или удалите строку в данном файле дважды - для каждого из значений параметра настроек Komento: Выравнивание ссылок → Слева и Выравнивание ссылок → Справа.

На скриншоте #1 представлено исходное состояние макета вывода шаблона Komento, на #2-3 - результат модификации.

500 символов осталось