Кнопки социальных сетей в Joomla 2.5. Выборочное подключениеОпубликовано: 26.08.2013 13:32 Автор: Ogri Просмотров: 17268
Кнопки социальных сетей в 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-теги
Популярные
-
60477
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
43312
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
42788
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
32966
Единая фильтрация вывода модуля mod_jcomments_latest -
30726
Joomla: как добавить свои языковые константы или переопределить существующие
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments
-
mesothelioma case 26.01.2023 19:48
%% Also visit my web site :: mesothelioma case ...
-
เครดิตฟรี 26.01.2023 19:48
Just as with the exhausting drive, you need to use any obtainable connector from the power provide. If ...
-
-
Joomla: Какую версию выбрать?
-
Motor Vehicle case 26.01.2023 19:36
%% Feel free to surf to my site - Motor Vehicle case ...
-
-
Joomla: Сливаем два сайта в один при помощи компонента J2XML
-
Jeksan-anonim.ru 26.01.2023 19:46
%% My web site ... birth Injury settlement - Jeksan-anonim.ru ...
-
Car Accident legal 26.01.2023 19:42
%% Feel free to visit my page ... Car Accident legal ...
-
-
Joomla: как добавить свои языковые константы или переопределить существующие
-
https://techld.com 26.01.2023 19:47
%% my homepage ... asbestos trust fund (https://techld.com ...
-
car accident legal 26.01.2023 19:42
%% my site ... car accident legal: http://allbookfinder.com/bbs/board.php?bo_table=free&wr_id=20318
-
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments
-
mesothelioma Legal 26.01.2023 19:37
%% Here is my website: mesothelioma Legal ...
-
-
Структура внутренних ссылок сайта на Joomla
-
Melva 26.01.2023 19:42
%% my blog post: accident compensation claims (Melva ...
-
-
Цифровые коды WEB (веб) цветов для сайта
-
18 Wheeler Lawyers 26.01.2023 19:41
%% Check out my page :: 18 Wheeler Lawyers ...
-
Комментарии
I want to to thank you for your time for this particularly wonderful read!!
I definitely savored every little bit of it and I have you saved
to fav to check out new stuff on your blog.
professional blogger. I've joined your feed and look ahead to seeking extra of your fantastic post.
Also, I have shared your web site in my social networks
and wanted to say that I have really enjoyed surfing around
your blog posts. After all I will be subscribing to your feed and
I hope you write again very soon!