MaxSite.org 11 лет
Блог вебмастера о сайтостроении
Внимание! Данная запись отмечена как устаревшая и может содержать неточную или неактуальную информацию!

Использование плагина «ushki to hook»

MaxSite CMS / Плагины MaxSite CMSПросмотров: 7571 (98)

Плагин «ushki to hook» (Ушки к хукам) достаточно специфичный и я даже долго думал, включить ли его в комплект поставки MaxSite CMS. Сам по себе плагин маленький, но при этом оказывается незаменимым в  случаях когда следует подключиться к произвольному хуку системы. Хуков много - они предназначены под разные задачи и обычно используются, когда нужно немного изменить какое-либо действие. Например по хуку content_content выводится текст записи. Следовательно подключившись в этому хуку, можно произвольно менять текст.

Традиционно, для того, чтобы подключить к хуку свой функционал, требуется написать свой php-код в виде плагина. С помощью «ushki to hook» такая необходимость отпадает и все действия можно выполнить в админ-панели.

Предположим, мы хотим подключить кнопки социальных сервисов от Share42.com. Данный сервис предлагает скачать архив из двух файлов, которые следует разместить на своём сервере, и после прописать код вызова в шаблоне сайта.

И если проблем с загрузкой файлов обычно не возникает, то редактирование файлов шаблона уже представляет некоторые трудности для блогера, ведь помимо copy-paste ему следует не только точно определить файл шаблона, но и место в php-коде файла, куда следует вставить предлагаемый код.

Если рассматривать добавление данного кода в MaxSite CMS, то это как минимум потребует редактирование type_foreach-файла шаблона page.php.

Если бы сервис Share42.com предлагал какой-то плагин, который автоматизировал этот процесс, то технически пришлось бы подключиться к хуку content_end по которому и выводить иконки.

Таким образом, всё, что нам нужно, так это связать произвольный хук с функцией вывода. В плагине «ushki to hook» контейнером функции будет обычная ушка.

Обращаю ваше внимание, что для работы требуется последняя версия MaxSite CMS 0.441.

Рассмотрим полный порядок действий.

1. Заходим на Share42.com и на вкладке Генератор выбираем иконки, горизонтальный тип панели и кодировку UTF-8.

2. Скачиваем готовый скрипт.

3. Распаковываем его и по FTP загружаем файлы на свой сайт, например в /uploads/.

4. Активируем плагины «Ушки» (ushki) и «Ушки к хукам» (ushki_to_hook), если они ещё не активированы.

5. В опциях плагина ushki_to_hook указываем хук и ушку. Пусть ушка будет share42, а хук, по которому будем выводить иконки - content_end. То есть иконки появятся после текста записи. Пишем:

content_end | share42

В данном случае название ушки произвольно.

6. Переходим в настройки плагина Ушки и создаём ушку share42.

7. Возвращаемся на страницу share42 на вкладку Установка, где указываем путь до папки на нашем сайте. Например: «http://сайт/uploads/».

8. Выбираем Прочие CMS и видим код для размещения.

9. Находим ушку share42, отмечаем её тип как «TEXT/HTML» и вставляем следующий код:

if (!is_type('page')) return $args;
 
global $page; 
$title = isset($page['page_title']) ? $page['page_title'] : ''; 
 
$s = '<script type="text/javascript" src="http://ваш-сайт/uploads/share42.js"></script>
<script type="text/javascript">share42("ваш-сайт/uploads/", "' . mso_current_url(true) . '", "' . $title . '")</script><br><br>';
 
echo $s;
 
return $args;

И сохраняем ушку.

Первой строчкой мы проверяем, чтобы это был тип page - одиночная страница. Если это не так, то сразу выходим из ушки по return. В ушке доступна глобальная переменная $page, которая содержит всю информацию о записи. Нас интересует только заголовок, поэтому переменной $title мы присваиваем элемент массива $page['page_title'], при условии, что он существует.
Далее мы подключаем загруженный js-скрипт и вызываем её функцию share42, где второй параметр принимает текущий URL (функция mso_current_url), третий - заголовок записи.

Если все сделали правильно, то на сайте появятся выбранные иконки соцсетей.

Кратко что мы сделали.

  • Копирование кода, загрузка файлов - это исключительно требование Share42.com. У других сервисов будут другие требования. Для нас это совершенно не принципиально.
  • Ушка share42 содержит вывод кода сервиса, так, как будто-бы мы отредактировали файлы шаблона или сделали отдельный плагин.
  • Плагин ushki_to_hook связывает ушку с хуком. В нашем случае это content_end.

Отмечу особый момент. Текст ушки является php-кодом, который выполняет плагин ushki_to_hook. Но, чтобы этот код не выполнился в самой ушке, мы ставим её тип «TEXT/HTML». В тексте ушки не следует использовать открывающий <?php, поскольку это приведет к ошибке.

Рассмотрим еще один пример - вывод в конце записей блока facebook.com, как у меня на сайте. В данном случае Фейсбук предлагает несколько вариантов социальных виджетов и какой вы выберите для нашего примера не имеет значения.

В ushki_to_hook добавляем хук и ушку. Поскольку этот блок также будем выводить после записи, то хук будет content_end. Но, у нас уже есть блок с share42, поэтому мы зададим приоритет функции хука - это позволит управлять расположением блоков (выше или ниже друг друга). У меня вначале идут закладки, потом фейсбук. Поэтому я задал так:

content_end | share42 | 30
content_end | фейсбук | 20

Поскольку 30 больше 20, то ушка «share42» появится раньше ушки «фейсбук».

Теперь делаем ушку фейсбук с таким содержимым:

if (!is_type('page')) return $args;
 
$href = urlencode(mso_current_url(true));
 
echo <<<EOF
 
    тут код фейсбука 
EOF;
 
return $args;

Поскольку код фейсбука для вас будет уникальным (он настраивается), то отмечу, что обычно требуется указывать адрес страницы. Для этого мы и задаём переменную $href, в которой содержится текущий адрес страницы.

Дальше в коде фейсбука указываете эту переменную:

...тут код...like.php?href={$href}&amp;...

в виде {$href}.

В заключении список некоторых хуков.

  • content_end - срабатывает после текста записи.
  • content_start - срабатывает перед текстом записи.
  • content_content - сам текст записи.
  • content - текст записи перед началом обработки.
  • head - срабатывает в секции <head> страницы.
  • body_start - сразу после <body>
  • body_end - перед </body>

Комментариев: 5 RSS

1Evdokiyushka20-04-2011 15:20

Спасибо за информационную статью. Тоько что скачала скрипт, пытаюсь установить "Ушки к хукам".

2Мила21-04-2011 20:52

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

3xopek30-05-2012 04:24

Узнал тут на днях про сей сайт. Хотя Maxsite юзаю уже год :) Сижу читаю.

Сделал всё как тут сказано. Ничего не выходит. Кнопки шары42 просто не появляются. Может к версии 0.7 все сильно изменилось?

5stepa1w1ka20-04-2013 21:53

Делаю все как выше написано но кнопки все равно не появляются , за место них просто появляется пустой отступ от текста статьи.. в чем проблема? помогите пожалуйста пользоваться CMS maxsite начал недавно, все нравится, но пока затруднения у меня при работе, поэтому прошу помощи. И ах да версия системы у меня: MaxSite CMS: 0.807

Оставьте комментарий!

Комментарий будет опубликован после проверки. Вы соглашаетесь с правилами сайта.

(обязательно)

О сайте

Здесь вы получите самую полную информацию о создании сайтов на MaxSite CMS.