Хук социальных закладок

Собрал вчера крохотный хук для социальных закладок на замену плагину Social Bookmarks Plugin. Может кому-то пригодится…

Для начала нужно зайти в \classes\hooks\ и создать новый файл с именем HookShare.class.php, в который записать следующий код:

<?php
/*-------------------------------------------------------
*
*   LiveStreet Engine Social Networking
*   Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
*   Official site: www.livestreet.ru
*   Contact e-mail: rus.engine@gmail.com
*
*   GNU General Public License, version 2:
*   http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*
*   Hook created by Chiliec
*
*/

/**
 * Add share block
 *
 */
class HookShare extends Hook {
  public function RegisterHook() {
    $this->AddHook('template_html_head_end','ShareInit',__CLASS__,-100);
    $this->AddHook('template_topic_show_info','ShareOut',__CLASS__,-100);
  }
  
  public function ShareInit() {
      if (Router::GetAction()=='blog') {
        return '<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>';
      }
      return '';
  }

  public function ShareOut() {
    if (Router::GetAction()=='blog') {
      return '<li class="yashare-auto-init" 
        data-yashareL10n="ru" 
        data-yashareType="link" 
        data-yashareQuickServices="vkontakte,facebook,twitter,lj,odnoklassniki,gplus">
        </li>';
    }
    return '';
  }
}
?>
Таким же образом можно вставить не яндексовский код, а, к примеру, тот же share42.com. Подскажите, может есть какие-то недостатки в коде или таком в подходе?
Вот как это выглядит у меня на сайте:
Хук социальных закладок в LiveStreet
Чуть более подробно | Посмотреть на реальном сайте

9 комментариев

avatar
хм :) не знаю может вы правильней сделали все таки через хук, но я просто залил папку share42, которую мне дали на их сайте и вставил три тэга которые тоже там давались :)) в шаблон comment_tree.tpl

чем ваш способ лучше?? можете пояснить :) может я дурак не так сделал не по фэн-шую!
avatar
Тоже хотел сначала вставить просто в шаблон, но потом понял что придется «портить» сразу несколько файлов шаблона (для разных видов топика) — потому и решил сделать хуком :)
avatar
так я вот например не портил шаблоны несколько :)) А только один comment_tree.tpl и причем теперь везде где используются шаблоны комментариев у меня стоят эти иконки :) и просто на сайте и даже в плагине DAO появились :)) я вот даже не знаю чей способ лучше :)
avatar
Просто я практикуюсь в программировании. На самом деле в данном случае может лучше сделать и в шаблоне, но вообще умение пользоваться хуками может быть очень полезным, например, в тех случаях, когда необходимо реализовать какую-нибудь логику, которую не сделать в шаблоне. Здесь же по сути за нас всё решили программисты из Яндекса/share42, а нам осталось только вывести результат их работы.
avatar
эх я не шарю в коде :) кроме smarty, js и as2 :)
avatar
ну html css, за код не считаю :)) так язык разметки
avatar
Ну, в социальные сети это ещё приемлемо, т.к. и картинку и немного контента они сами прихватят, а вот в блоги — это совершенно бесполезно.
avatar
Вы ЖЖ имеете ввиду? Он просто за компанию затесался, чтоб не слишком мало кнопочек было :)
avatar
))))) И то дело. ))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.