Чем плох стандартный модуль последние новости в Joomla 3 (mod_articles_latest)? Правильно, тем что он выводит только название материала. А как же быть, когда в этом модуле нужно вывести дату создания или публикации материала и категорию в которой он опубликован, а может и еще чего полезного? Я решил не искать сторонний модуль, а просто подправить шаблон вывода стандартного модуля, тем более что его стандартные возможности, как оказалось, это позволяют.

Сразу оговорюсь, что это не хак. Так как вы просто настраиваете формат вывода данного модуля по вашему шаблону. Для начала в папке /templates/вашшаблон/ находим папку html. Если папки с таким названием нет - то создаем. В папке html создаем папку с названием mod_articles_latest. Копируем файл default.php из папки /modules/mod_articles_latest/tmpl/ в только что созданную папку /templates/вашшаблон/html/mod_articles_latest/, заодно можете скопировать и файл index.html для безопасности. 

Теперь Joomla будет в первую очередь проверять как ей отображать модуль. Если существует папка с названием модуля в папке html вашего шаблона и в ней присутствует файл отображения (в нашем случае default.php) то обрабатываться будет он. Если же отсутствует - стандартный в папке /modules. Таким образом даже после обновления Joomla ваши изменения не пропадут, так как они заданы в папке вашего шаблона.

Стандартный файл default.php у модуля последние новости выглядит следующим образом:

<ul class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) :  ?>
	<li>
		<a href="/<?php echo $item->link; ?>">
			<?php echo $item->title; ?></a>
	</li>
<?php endforeach; ?>
</ul>

Нумерация строк сохранена. В данном случае все, что он умеет делать это отображать название материала ($item->title) и ссылку на него ($item->link). Давайте сделаем так, чтобы модуль отображал также дату публикации материала и категорию в которой он находится. Делается это все просто, тем более что стандартный helper модуля данные в массив $list уже получил.

Приводим наш модуль к следующему виду:

<ul class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) :  ?>
	<li>
		<a href="/<?php echo $item->link; ?>">
			<?php echo $item->title; ?></a><br>
			<?php echo JHtml::_('date', $item->publish_up, JText::_('DATE_FORMAT_LC1')); ?> <?php echo "в рубрике ";?> <?php echo $item->category_title; ?>
	</li>
<?php endforeach; ?>
</ul>

После данных изменений модуль начал отображать под названием материала также дату его публикации ($item->publish_up) в формате день.месяц.год все цифрами (DATE_FORMAT_LC1) и также наименование категории ($item->category_title).

Формат вывода даты можно менять, если заменить цифру после символов LC. Возможны разные варианты с 1 до 6. Попробуйте, кому какой формат понравится. Работу модуля в этом виде можно увидеть у меня в левой колонке под названием Последние поступления.

Что еще можно вывести? Вот не полный список конечно, но может оказаться полезным.

1. Отображаем количество просмотров материала. Для это вставляем данный код в нужное вам место:

<?php echo $item->hits; ?>

Если хотите чтобы количество просмотров отображалось при наведении на ссылку, то можно сделать так:

<a title="просмотров: <?php echo $item->hits; ?>" href="/<?php echo $item->link; ?>">
			<?php echo $item->title; ?></a>

 2. Отображение даты создания, а не публикации:

<?php echo JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC1')); ?>

 3. Отображение даты последнего изменения материала:

<?php echo JHtml::_('date', $item->modified, JText::_('DATE_FORMAT_LC1')); ?>

Главное, чтобы данные строки добавлялись внутри тегов li пока работает оператор foreach. Думаю общие принципы понятны, для того чтобы вывести, что-то специфическое рекомендую глянуть mysql таблицы в базе данных сайта, особенно таблицу _content. Аналогичным методом можно в принципе вывести любые данные из данной таблицы относительно обрабатываемого материала, такие как его id, alias, intro текст, мета данные и прочее.

Комментарии  
Ягнёнок
0 #18 Ягнёнок 10.02.2018 21:05
Цитирую Владимир Емельянов:
День добрый. А как сделать, чтобы дата отображалась другим цветом?

php код вывода даты заключить в тег font
Цитировать
Владимир Емельянов
0 #17 Владимир Емельянов 10.02.2018 12:50
День добрый. А как сделать, чтобы дата отображалась другим цветом?
Цитировать
Евгений Евгениев
0 #16 Евгений Евгениев 22.11.2017 21:54
Цитирую Мария:
Цитирую Ягнёнок:
Цитирую Мария:
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?

То есть не отображать в списке ссылку на статью на странице с которой отображается данный модуль?


Да. А то получается что материал ссылается сам на себя.

Тоже интересует этот вопрос! Решения ни где не удается найти!
Цитировать
eldenio
0 #15 eldenio 23.06.2016 17:05
Спасибо большое за статью!

Подскажите пожалуйста, а как добавить в конец модуля ссылку на ту категорию, из которой он берет последние новости.
Т.е. у меня будет несколько модулей под разные категории, и в каждом хочется сделать снизу ссылку на саму категорию. Но категории будут разные, т.е. добавить ссылку a href не подходит. Плохо знаю синтаксис joomla, не могу понять, как мне прописать, чтобы ссылка уводила на ту категорию, которая выбрана в настройках модуля, чтобы брать оттуда последние новости.

Спасибо большое!
Цитировать
Мария
+1 #14 Мария 16.11.2015 12:41
Цитирую Ягнёнок:
Цитирую Мария:
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?

То есть не отображать в списке ссылку на статью на странице с которой отображается данный модуль?


Да. А то получается что материал ссылается сам на себя.
Цитировать
Ягнёнок
0 #13 Ягнёнок 16.11.2015 12:26
Цитирую Мария:
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?

То есть не отображать в списке ссылку на статью на странице с которой отображается данный модуль?
Цитировать
Мария
0 #12 Мария 16.11.2015 01:18
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?
Цитировать
denisgaker
+1 #11 denisgaker 31.08.2015 12:23
Подскажите пожалуйста, а как добавить миниатюры изображений в список?
Я так понимаю, что для этого придется объявлять новую переменную в helper.php?
Цитировать
Александр
0 #10 Александр 27.04.2015 13:02
День добрый!
Ситуация: на сайте последние новости и рекламные акции компании разместил в доп. модулях (mod_articles_latest). Есть у меня мысль, что лучше бы все эти вещи разместить при условии, что новости и акции есть (просто пока сайт компании только начинает работу, я бы не хотел оставлять пустые блоки с заголовками). Соответственно, хотелось бы узнать, как можно выведать у джумлы с помощью ПХП в шаблоне число материалов в той или иной категории, чтобы поставить все это дело в if (число_материалов > 0 ) { выводим модуль }.
Джумла последней версии, так, на всякой случай.
Цитировать
JED min
0 #9 JED min 27.02.2015 21:20
Цитирую Video Sved:
Не подскажете как добавить в конце последней новости ссылку на архив всех новостей (когда уже имеется такой пункт меню)

я просто добавил в конец шаблона модуля тег a href c указанием ссылки на ваш архив раз уж она постоянная
Цитировать
Добавить комментарий