ADBLOCK_MSG
Кнопки социальных сетей в Joomla 2.5. Выборочное подключениеОпубликовано: 26.08.2013, 13:32 Автор: Ogri Просмотров: 18693
Кнопки социальных сетей в Joomla 2.5
Куда внедрять?
Какие и где взять?
Блок Поделиться от Яндекса и панель от Pluso
Плавающая вертикальная панель от Share42
Выборочное размещение
Во время написания статьи о кастомизации страницы ошибки 404 я поднял тему, как отвязать от интерфейса страницы ненужные элементы. Отдельная статья посвящена выборочному скрытию модуля хлебных крошек. Также я пришел к выводу о нецелесообразности показа социальных кнопок на странице 404. Возможны и другие случаи, когда соцкнопки стоит скрыть на определенных страницах или наоборот - выводить только на некоторых. В данном цикле статей я как раз и столкнулся с подобной необходимостью: панели от Яндекса и Share42 выведены в соответствующих статьях исключительно для иллюстрации, сам же я использую вариант от Pluso. Поэтому я решил добавить сабжевую тему в цикл, а заодно сослаться на нее из статьи о 404-й станице как на один из этапов ее настройки.
Итак, определим условие, по которому будем фильтровать вывод блока кнопок. Если цель - вывести его только на страницах определенных статей, то для каждой из них оно примет следующий вид:
$article_id = explode(':', JRequest::getVar('id')); if (JRequest::getVar('view') == 'article' && $article_id[0] == '[Article ID]') ...
Здесь [Article ID]
- идентификатор материала, выяснить значение которого легко в административном сервисе из списка материалов, либо же зайдя на страницу редактирования статьи. Соответственно, для скрытия кнопок на некоторых страницах к приведенной конструкции добавляется оператор отрицания !
.
Таким образом, в файле шаблона статьи код панели кнопок, добавленный как описано в первой статье цикла, обрамляется условным оператором if
. Например, на моем двуязычном сайте ID русской и английской страниц 404 соответственно - 80 и 448. Фрагмент кода с кнопками от Pluso выглядит следующим образом:
<?php $article_id = explode(':', JRequest::getVar('id')); if (!(JRequest::getVar('view') == 'article' && ($article_id[0] == '80' || $article_id[0] == '448'))) { ?> <script type="text/javascript">(function() { if (window.pluso)if (typeof window.pluso.start == "function") return; var d = document, s = d.createElement('script'), g = 'getElementsByTagName'; s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true; s.src = ('https:' == window.location.protocol ? 'https' : 'http') + '://share.pluso.ru/pluso-like.js'; var h=d[g]('head')[0] || d[g]('body')[0]; h.appendChild(s); })();</script> <div class="pluso" data-options="big,square,line,horizontal,counter,theme=06" data-services="facebook,twitter,vkontakte,odnoklassniki,yandex,moimir,google,linkedin" data-background="transparent"></div> <?php } ?>
Замените 80 и 448 на свои значения идентификаторов страниц. Кстати, если кому интересно, для случая, когда включен SEF (ЧПУ), условие могло бы выглядеть проще:
if (JRequest::getVar('id') == '[Article ID]') ...
Надеюсь, вы используете ЧПУ; однако наверняка бывают случаи, когда джумловоды по тем или иным соображениям его отключают. И если в первом случае JRequest::getVar('id')
возвращает строку идентификатора, то во втором - ее же, но с приличным хвостом в виде алиаса материала, отделенного двоеточием. Так, при включенном SEF строка ID данной статьи - '630'
, в противоположном же случае была бы '630:knopki-sotsialnykh-setej-v-joomla-2-5-vyborochnoe-podklyuchenie
'. Для этого и введена функция explode
, отсекающая тот самый хвост, и это делает условие универсальным для обоих вариантов. Ну, это программистские тонкости, и вникать в них необязательно. Помните только, что условие с вытаскиванием номера из строки идентификатора материала гарантирует вам возможность отключения ЧПУ без скрытых побочных эффектов в логике вывода соцкнопок.
P.S. Напоследок хотелось бы заметить вот еще что. Многие мои статьи рассказывают, как кастомизировать Джумлу и ее расширения. Сам я понавносил уже немало полезных изменений в коды и на определенном этапе сделал открытие: палка, оказывается, о двух концах. Все кастомизации приходится тащить через обновления, выпускаемые, как мы знаем, достаточно часто. Как регулярно обновляться и при этом не потерять свои изменения - вот вопрос, которым я озаботился. При этом хотелось бы решение этой, не побоюсь этого слова, диалектической проблемы оптимизировать и при каждом апдейте и даже апгрейде тратить времени по-минимуму на восстановление кастомно добавленного функционала. Определенный сценарий в общих чертах уже выработан и применяется на практике. Планирую выделить время на изучение темы в сети, добавить лучшие идеи оттуда к своим и посвятить вопросу подробную статью. Кому интересно - подписывайтесь на обновления. А если кто имеет свои мысли по этому поводу и желает ими поделиться, может сделать это через камменты, контактную форму или на мыло ogri@ogri.me.
Новые
-
20.07.2020, 00:53
Joomla 3: Перенаправление на ту же страницу после авторизации -
13.02.2017, 14:09
Joomla: как добавить свои языковые константы или переопределить существующие -
13.02.2017, 13:23
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
23.06.2016, 10:48
Единая фильтрация вывода модуля mod_jcomments_latest -
13.09.2015, 13:06
Постим иллюстрированные статьи Joomla-сайта на Facebook, используя OG-теги
Популярные
-
118186
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
87345
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
63783
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
60854
Joomla: как добавить свои языковые константы или переопределить существующие -
44742
Цифровые коды WEB (веб) цветов для сайта
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments
- Тест 25.08.2020 11:37
-
Николай3333
05.08.2020 07:55
Неужели работает?
-
Дарья Смирнова
29.07.2020 06:02
Здравствуйте, все вроде сделала по инструкции, но точно так же никаких изменений. Разве что теперь ...
-
ТвойБро
24.03.2020 03:42
Огромное спасибо, помогло. Странно, что по дефолту в jcomments предлагает в настройках выбрать ...
-
Валерий
21.02.2020 03:25
Проверка
-
Денис
02.01.2020 21:21
УРАААА! Заработало после очистки кэша сайта! Спасибо!
-
Денис
02.01.2020 20:56
Забыл сказать, что этот вариант установился на сайт, но по-прежнему при использовании reCAPTCHA ...
-
Вованя
25.12.2019 18:31
12345
-
Вованя
25.12.2019 18:31
Проверка, просто проверяю. раз раз раз)
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments
-
Андрей67
11.08.2020 16:54
У меня такая же картина, нет кнопки Импорт. как быть?
-
Андрей67
11.08.2020 16:54
Подробнее...