мысли разные мои
авторский проект

Задача: Блог категории в Joomla 4 должен выводить кликабельные изображения статей, ведущие на полную версию материала.

Дополнительное условие 1: Заголовок изображения должен быть так же кликабельным и вести на материал.
Дополнительное условие 2: Заголовок материала не должен фигурировать в блоге категории.

Простая задачка, решение которой, как ни странно, ни у кого не описано. Штатными средствами Joomla 4 (как, впрочем, и более ранних версий) полная реализация невозможна.

Реализация.

Начнем с последнего – убираем заголовок материала.

Создаем меню блога категории, в настройках которого указываем, как отображать категорию. Настройки – в зависимости от желаний. Мне необходимо, чтобы в блоге категории выводились только изображения вводного текста (самого текста у меня нет), подпись к этому изображению (берется из свойств материала). Оба элемента должны быть кликабельны и вести на материал.

Потому выставляем в разделе «Отображение» Заголовок -> Скрыть.

1

Первая задача выполнена – заголовки материала отображаться в блоге категории не будут.

Включаем гиперссылку для вводного изображения.

По умолчанию в 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 теперь не оставил шансов владельцам сайтов, и предупредил, что автоматизированные объявления теперь будут работать с любым кодом, и будут размещаться даже на тех страницах, где размещены только стандартные рекламные блоки. 

joomlaНередко возникает ситуация, когда в шаблон Gantry 5 необходимо добавить какую-либо информацию между тегами <HEAD>  и </HEAD>.  Как это сделать?

… или как изменить размер рекламного блока.

Объяснять, что такое Google AdSense (Далее AS), думаю, не нужно. Если у вас есть сайт, и вы решили монетизировать его трафик, то этот сервис рассматривается чаще всего.  В отличии от Яндекс Директ (ЯД), условия для установки рекламы на сайте очень мягкие. Но в процессе работы с AS, порой, возникают проблемы.

Реклама - зло. Но зло необходимое. Однако, если ее становится много (А на Ютьюбе именно это и происходит), не грех ее и отключить. И сделать это просто!

У новичков, заинтересовавшихся CMS DataLife Engine (DLE) одна из первых сложностей, которая может возникнуть при настройке системы - это основное меню и подсветка активного пункта в нем. В мануале DLE этот аспект подробно не описан, а те рекомендации, которые приведены, рассчитаны на профессионалов.