Задача: Блог категории в Joomla 4 должен выводить кликабельные изображения статей, ведущие на полную версию материала.
Дополнительное условие 1: Заголовок изображения должен быть так же кликабельным и вести на материал.
Дополнительное условие 2: Заголовок материала не должен фигурировать в блоге категории.
Простая задачка, решение которой, как ни странно, ни у кого не описано. Штатными средствами Joomla 4 (как, впрочем, и более ранних версий) полная реализация невозможна.
Начнем с последнего – убираем заголовок материала.
Создаем меню блога категории, в настройках которого указываем, как отображать категорию. Настройки – в зависимости от желаний. Мне необходимо, чтобы в блоге категории выводились только изображения вводного текста (самого текста у меня нет), подпись к этому изображению (берется из свойств материала). Оба элемента должны быть кликабельны и вести на материал.
Потому выставляем в разделе «Отображение» Заголовок -> Скрыть.
Первая задача выполнена – заголовки материала отображаться в блоге категории не будут.
Включаем гиперссылку для вводного изображения.
По умолчанию в Joomla 4 блог категории при выводе вводного изображения не оборачивает его в гиперссылку. Чтобы включить гиперссылку на вводном изображении не нужно переделывать шаблоны, достаточно зайти в настройки:
Контент Материалы -> Настройки (в правом верхнем углу).
Далее выбираем вкладку «Блог» и внизу просто включаем переключатель «Изображение вводного текста как ссылка». Сохраняем, получаем желаемое.
Заголовок вводного изображения, как гиперссылка
Самое сложное – тут без «допилинга» не обойтись.
За вывод вводного изображения в блоге категории отвечает файл intro_image.php расположенный по адресу: ./layouts/joomla/content/
За вывод изображения и ссылки ена полную версию материала отвечает кусок кода с 32 строки
<a href="/<?php echo Route::_(RouteHelper::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url" title="<?php echo $this->escape($displayData->title); ?>">
<?php echo LayoutHelper::render('joomla.html.image', array_merge($layoutAttr, ['itemprop' => 'thumbnailUrl'])); ?>
</a>
Вывод заголовка изображения начинается в строке 39
<figcaption class="caption"><?php echo $this->escape($images->image_intro_caption); ?></figcaption>
Тут возможно два варианта: либо мы поднимаем вызов заголовка изображения в контейнер гиперссылки, либо заново реализуем функцию вызова гиперссылки для вывода заголовка вводного изображения. Лично мне первый вариант нравится больше.
Поэтому конечный вариант выглядит так:
<a href="/<?php echo Route::_(RouteHelper::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url" title="<?php echo $this->escape($displayData->title); ?>">
<?php echo LayoutHelper::render('joomla.html.image', array_merge($layoutAttr, ['itemprop' => 'thumbnailUrl'])); ?>
<figcaption class="caption_center"><?php echo $this->escape($images->image_intro_caption); ?></figcaption>
</a>
Задача решена.
Дополнение:
В подобной реализации есть один нюанс: выравнивание заголовка будет производиться, согласно настройкам класса body в CSS. По умолчанию – выключка влево. Мне необходимо выравнивание по центру. Для этого заменяем класс caption на новый, например caption_center и прописываем для него стили в собственном файле CSS, например так
.caption_center {
text-align: center;
}
Собственно, все, задачка решена.
Не в первый раз сталкиваюсь с ситуацией, когда автоматическое обновление, вышедшее накануне, один сайт на Joomla «видит», и присылает письмо, о том, что нужно обновиться. А другой сообщает, что «Версия Joomla самая новая», и обновления не требуется.
Вопрос в отображении дополнительных полей Joomla возникает нечасто, поскольку до сих пор немногие их используют. Хотя, на мой взгляд, это очень неплохой дополнительный инструмент для различных решений.
Да, начиная с прошлого года я начал оптимизировать траты на свои проекты. Дешевые ранее услуги партнеров стали невероятно дорогими. Вполне известный и демократичный сервис 2Domains сменил учредителя, и задрал цены. Но его партнер - Reg.ru задрал цены еще выше. Теперь у 2Domains продлить домен в зоне RU стоит 700 рублей (а было 199 несколько лет назад), а Reg.ru вообще поднял цены до 999 рублей за домен.
Уже давно наблюдал на ожном из сайтов, под управлением Joomla 3.x ошибку в одном из модулей, ответственных за вывод изображений в модальном окне. Несмотря на то, что превью, созданные вручную, отображались нормально, автоматически генерируемые превью отображались с ошибкой. Так же возникала ошибка при клике на превью, при открытии модального окна с полным изображением и описанием.
Беда пришла оттуда, откуда не ждали. Google Adsense теперь не оставил шансов владельцам сайтов, и предупредил, что автоматизированные объявления теперь будут работать с любым кодом, и будут размещаться даже на тех страницах, где размещены только стандартные рекламные блоки.
Нередко возникает ситуация, когда в шаблон Gantry 5 необходимо добавить какую-либо информацию между тегами <HEAD> и </HEAD>. Как это сделать?
… или как изменить размер рекламного блока.
Объяснять, что такое Google AdSense (Далее AS), думаю, не нужно. Если у вас есть сайт, и вы решили монетизировать его трафик, то этот сервис рассматривается чаще всего. В отличии от Яндекс Директ (ЯД), условия для установки рекламы на сайте очень мягкие. Но в процессе работы с AS, порой, возникают проблемы.
Реклама - зло. Но зло необходимое. Однако, если ее становится много (А на Ютьюбе именно это и происходит), не грех ее и отключить. И сделать это просто!
У новичков, заинтересовавшихся CMS DataLife Engine (DLE) одна из первых сложностей, которая может возникнуть при настройке системы - это основное меню и подсветка активного пункта в нем. В мануале DLE этот аспект подробно не описан, а те рекомендации, которые приведены, рассчитаны на профессионалов.