ADBLOCK_MSG
Кнопки социальных сетей в Joomla 2.5. Выборочное подключениеОпубликовано: 26.08.2013, 13:32 Автор: Ogri Просмотров: 18031
Кнопки социальных сетей в 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-теги
Популярные
-
107171
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
77441
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
62403
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
47503
Joomla: как добавить свои языковые константы или переопределить существующие -
36992
Цифровые коды WEB (веб) цветов для сайта
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Сливаем два сайта в один при помощи компонента J2XML
-
Houston 01.12.2023 03:33
-
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.1. Перенос информационного наполнения
-
Violette 29.11.2023 14:38
Remarkable tһing hеre. I'm very satisfiesd tօ peer yoᥙr article. Thank уou a llot and Ӏ am having ...
-
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments
-
Emery 28.11.2023 14:14
Hello fantastic website! Does running a blog similar to this require a great deal of work? I have ...
-
-
Структура внутренних ссылок сайта на Joomla
-
Chana 30.11.2023 13:30
Heⅼlo, everʏ time i used to check blog posts heree іn tһe early hours iin the daylight, since i liке ...
-
Jacquie 29.11.2023 07:00
Hi there, just became alert to your blog through Google, and found that it's really informative. I'm ...
-
Patsy 28.11.2023 18:32
I'm not sure where you are getting your information, but great topic. I needs to spend some time ...
-
Nigel 28.11.2023 15:37
obviously like your website but you have to take a look at the spelling on several of your posts.
-
-
Цифровые коды WEB (веб) цветов для сайта
-
Eloisa 01.12.2023 21:35
Spot on with this write-up, I really think this site needs a lot more attention. I'll probably be ...
-
Zac 01.12.2023 12:00
Pretty! This has been a really wonderful article. Thanks for providing this info. Also visit my ...
-
Diego 01.12.2023 11:07
The facility of the loan is perfect when you need money immediately for coping with unavoidable needs.
-
Подробнее...