TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Grav – Подключаем AddToAny для каждого поста в сетке постов блога

1 241

Вступление

Скажу честно реализовать шаринг постов из перечня постов блога не такая уж и серьезная задача для CMS WordPress но для Grav как обычно выяснилось что готового решения попросту нет. По этому придуманный велосипед (по другому не назову) пришлось мастерить самому. Теперь по порядку, и по подробнее.

AddToAny и переделка их стокового варианта для TWIG шаблона

И так AddToAny предлагает нам весьма удобное решение с которым можно ознакомиться здесь:

https://www.addtoany.com/buttons/customize/page_url_title

Ниже стоковый код от AddToAny:

<div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-url="http://www.example.com/page.html" data-a2a-title="Example Page Title"> <a class="a2a_button_facebook"></a> <a class="a2a_button_twitter"></a> <a class="a2a_button_google_plus"></a> <a class="a2a_dd" href="https://www.addtoany.com/share"></a> </div> <script async src="https://static.addtoany.com/menu/page.js"></script>

Как видно из кода необходимо чтобы атрибут data-a2a-url имел ссылку той страницы которую расшариваем. А атрибут data-a2a-title имел тайтл страницы которую шарим. Единственное чего здесь явно не хватает это картинки расшариваемоой страницы, это можно исправить добавлением атрибута data-img-url c прямым линком на картинку.

TWIG шаблон AddToAny

Наигравшись кодом мне удалось создать вот такой шаблон вывода, для каждого items’a сетки:

{% if truncate %} {% if page.header.link %} {% if page.header.continue_link is not same as(false) %} {% endif %} {{ page.title }} {% else %} {{ page.title }} {% endif %} {% else %} {% endif %}

Напомню что все это дело выглядит не много загадочно так как речь идет о выводе при помощи TWIG.

Как видим в коде у нас есть кнопка которая имеет нужные нам атрибуты, но как же красота? Все верно, для красоты нам необходимо попап окно в котором собственно и будут отображаться картинка, название и красивые кнопки для шары страницы.

Узнать подробнее о плагине Focus Popup можно по ссылке ниже:

https://github.com/Elkfox/Focus

Пример работы с попап окнами от Focus

https://www.jqueryscript.net/lightbox/Popup-Plugin-jQuery-Focus-js.html

Теперь необходимо создать TWIG шаблон для вывода нашего попапа, ниже то что мне удалось наваять:

<!—–Sosial Linc AddToAny-> <div class="popup overlay AddToAny" id="AddToAnyPopup"> <div class="popup-inner"> <div class="popup-content left"> <div id="SDStudio_popup_content"> <div class="h3 SDStudio_PopUp_Post_Title">Зашарить:</div> <div class="h4 SDStudio_PopUp_Post_Name"></div> <img src="/user/pages/01.home/Loader_255×350.gif"class="SDStudio_PopUp_Post_IMG"></div> <!–- ADDTOANY START-> <div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-url="#l" data-a2a-title="Example Page Title"> <a class="a2a_button_viber"></a> <a class="a2a_button_skype"></a> <a class="a2a_button_telegram"></a> <a class="a2a_button_facebook"></a> <a class="a2a_button_facebook_messenger"></a> <a class="a2a_button_twitter"></a> <a class="a2a_button_google_plus"></a> <a class="a2a_button_google_gmail"></a> <a class="a2a_button_google_bookmarks"></a> <a class="a2a_button_email"></a> <a class="a2a_button_whatsapp"></a> <a class="a2a_button_copy_link"></a> <a class="a2a_button_evernote"></a> <a class="a2a_button_sms"></a> <a class="a2a_dd" href="https://www.addtoany.com/share"></a> </div> <script async src="https://static.addtoany.com/menu/page.js"></script> <!–- ADDTOANY END-> <div> <a class="popup-close" data-close aria-label="common.close">X</a> </div> </div> </div> <div class="My_Overlay"></div>

Не забываем подключить js и css Focus Popup’a

Естественно чтобы все это дело заработало нужно было намудрить JS’a, о чем речь пойдет ниже.

В общем выкладываю как получилось, естественно что Вам нужно будет переработать даный код под свои нужды, и свою разметку.

В общих чертах все получилось, надеюсь я ничего не упустил.

Источник записи:

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее