Чем плох стандартный модуль последние новости в 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.03.2014 09:50
спасибо за материал.
у меня все отображается, но есть проблема - в ссылке пропало название сайта: tema-nedeli-obsuzhdaem/4-zaderzhalis-na-popravkakh и как результат - страница не отображается

как исправить?
Ответить
Денис
0 # Денис 18.03.2014 09:52
спасибо за материал.
у меня все отображается, но есть проблема - в ссылке пропало название сайта: tema-nedeli-obsuzhdaem/4-zaderzhalis-na-popravkakh и как результат - страница не отображается. (сайт как понимаете, называется не tema-nedeli-obsuzhdaem))))

как исправить?
Ответить
Денис
0 # Денис 18.03.2014 10:00
ну вот - задал вопрос - нашел ответ - у вас слэш перед выводом ссылки
Ответить
Ягнёнок
+3 # Ягнёнок 18.03.2014 10:19
Цитирую Денис:
ну вот - задал вопрос - нашел ответ - у вас слэш перед выводом ссылки

Ну да. Без слеша получается вы задаете ссылку на внешний ресурс. А с ним все путем
Ответить
Анастасия
+1 # Анастасия 19.05.2014 02:41
Здравствуйте,
подскажите, пожалуйста, как бы сделать вывод новостей в модуле горизонтально? CSS что-то не помогает.
Ответить
Ягнёнок
0 # Ягнёнок 19.05.2014 12:25
Цитирую Анастасия:
Здравствуйте,
подскажите, пожалуйста, как бы сделать вывод новостей в модуле горизонтально? CSS что-то не помогает.

Всмысле не помогает? Если прописать в css тегу li стиль display: inline; то будет в строку. Либо вообще убрать все теги ul и li и из кода файла default.php
Ответить
Анастасия
+1 # Анастасия 19.05.2014 17:24
Цитирую Ягнёнок:

Всмысле не помогает?

Уже всё получилось, вот уж действительно - задашь вопрос и тут ж находишь ответ :)
Просто модуль был узкий, и li аккуратно переносились на следующую сроку, что создавало ощущение вертикального списка.
Спасибо.
Ответить
Video Sved
0 # Video Sved 27.02.2015 20:52
Не подскажете как добавить в конце последней новости ссылку на архив всех новостей (когда уже имеется такой пункт меню)
Ответить
JED min
0 # JED min 27.02.2015 21:20
Цитирую Video Sved:
Не подскажете как добавить в конце последней новости ссылку на архив всех новостей (когда уже имеется такой пункт меню)

я просто добавил в конец шаблона модуля тег a href c указанием ссылки на ваш архив раз уж она постоянная
Ответить
Александр
0 # Александр 27.04.2015 13:02
День добрый!
Ситуация: на сайте последние новости и рекламные акции компании разместил в доп. модулях (mod_articles_latest). Есть у меня мысль, что лучше бы все эти вещи разместить при условии, что новости и акции есть (просто пока сайт компании только начинает работу, я бы не хотел оставлять пустые блоки с заголовками). Соответственно, хотелось бы узнать, как можно выведать у джумлы с помощью ПХП в шаблоне число материалов в той или иной категории, чтобы поставить все это дело в if (число_материалов > 0 ) { выводим модуль }.
Джумла последней версии, так, на всякой случай.
Ответить
denisgaker
+1 # denisgaker 31.08.2015 12:23
Подскажите пожалуйста, а как добавить миниатюры изображений в список?
Я так понимаю, что для этого придется объявлять новую переменную в helper.php?
Ответить
Мария
0 # Мария 16.11.2015 01:18
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?
Ответить
Ягнёнок
0 # Ягнёнок 16.11.2015 12:26
Цитирую Мария:
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?

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

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


Да. А то получается что материал ссылается сам на себя.
Ответить
eldenio
0 # eldenio 23.06.2016 17:05
Спасибо большое за статью!

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

Спасибо большое!
Ответить
Евгений Евгениев
0 # Евгений Евгениев 22.11.2017 21:54
Цитирую Мария:
Цитирую Ягнёнок:
Цитирую Мария:
Спасибо за статью!
А можно как-то сделать так, чтобы на странице материала в блоке "Самые читаемые материалы" не выводилась ссылка на этот же материал?

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


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

Тоже интересует этот вопрос! Решения ни где не удается найти!
Ответить
Владимир Емельянов
0 # Владимир Емельянов 10.02.2018 12:50
День добрый. А как сделать, чтобы дата отображалась другим цветом?
Ответить
Ягнёнок
0 # Ягнёнок 10.02.2018 21:05
Цитирую Владимир Емельянов:
День добрый. А как сделать, чтобы дата отображалась другим цветом?

php код вывода даты заключить в тег font
Ответить
Добавить комментарий