Появилась задача сделать в Джумле так, чтобы при нажатии на ссылку материала, он открывался в лайтбоксе. Джумла 2.5 (кстати, есть мнение, что и в 1.5 будет работать). Берем и делаем.
Для начала, определимся. Если у нас в шаблоне не предусмотрена возможность верстки своего макета для вывода материалов в категории — открываем этот файл:
/components/com_content/views/category/tmpl/blog_item.php
Это, конечно, сильно плохо, потому что Джумла обновляется (это, соответственно, хорошо) и при обновлении этот файл перезапишется новым.
На тот случай, если мы подсуетились заранее и в папке шаблона в папке html сделали папку com_content и туда заботливо скопировали все из
/components/com_content/views
то обновление нам не страшно, а наоборотЮ пусть себе обновляется — наши труды оно не затрет.
Соответственно, файл будет лежать тут:
/templates/ШАБЛОН/html/com_content/category/blog_item.php
Так вот, открываем его и в строке 28 пишем следующее:
<a rel="shadowbox;width=600;height=600" target="_blank" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>?tmpl=component">
То есть, добавляем
?tmpl=component
к ссылке в конце.
Тоже самое можно проделать в файле default_articles.php в строке 105.
Тут есть подводный камень. Если мы используем ЧПУ — вставляем то, что я написал. Если используются параметрические ссылки (типа index.php?option=com_plugins&view=plugin…) — вставляем это:
&tmpl=component
Один знак поменялся. Фича в том, что когда у нас в адресной строке уже есть какие-то значения (как в случае с параметрической ссылкой) — мы может добавить новое как раз с помощью ‘&’ , но если у нас ничего нет — начинаем добавлять значения в GET со знака вопросика ‘?’.
А вообще, нужно почитать про то, что такое URL. Если я для кого-то сейчас Америку открыл.
Еще мы добавили в начале тега A вот такие буквы:
rel="shadowbox;width=600;height=600" target="_blank"
Их не было по умолчанию, можете проверить 🙂
Главное — не забудьте ?tmpl=component, иначе окно будет открываться, но в нем будет вся страница вмместе с меню, подвалом, шапкой и прочими прелестями.
Что это значит (для тех, кто из бронепоезда только за хлебом выходит): «Атрибут rel определяет отношения между текущим документом и документом, на который ведет ссылка, заданная атрибутом href.» (c) HTMLBook.
Еще есть target — он загружает страницу в новое окно браузера.
Теперь к самому важному, а именно — «почему не работает«. Чтобы заработало, надо прикрутить к этому добру сам shadowbox. Плагин для Джумлы называется Shadowbox Media Viewer. Ссылок давать смысла не вижу — плагин без труда гуглится, причем версия самая новая. Настроек там — тьма тьмущая, на сайте разработчиков есть мануал, который до вполне вменяемого состояния переводится гуглопереводчиком.
Ну, вроде с этим все… Удачи. Спрашивайте.