Войти  Зарегистрироваться


Плагин социальных закладок для Joomla!

(1 голос, среднее 3.00 из 5)

Собственно, заголовок сам говорит о том что я буду писать в этой статье. На скорую руку набросал плагин социальных закладок и хочу поделиться с вами. Сейчас в плагине присутствуют кнопки для трех сервисов: twitter, vkontakte и facebook. Если нужно больше кнопок, то можно их добавить по такой же аналогии. Ниже привожу исходных код главного файла плагина. После кода размещена ссылка для скачивания рабочего варианта плагина. Плагин в работе можете увидеть в любой статье на этом сайте.

 

 

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgContentbookmark extends JPlugin {
	function plgContentbookmark( &$subject, $params ){
		parent::__construct( $subject, $params );
	}
	function onPrepareContent( &$article, &$params, $limitstart ) {
		global $mainframe;
      		$dir = JURI::base();
 		if ((JRequest :: getVar('view')) == 'article'){
 		     $articleURL = urldecode($this->getURL($article));
		      $articleTitle = $article->title;
		      ob_start();
?>
              <div id='flx_bookmarks'>
                     <a target='_blank' href='http://twitter.com/share?text=<?=$articleTitle?>&url=<?=$articleURL ?>' >
                        <img src='<?=$dir ?>plugins/content/bookmark/twitter_30.png' width='30' height='30' alt='Share on twitter'/>
                    </a>
                    <a title='Share vkontakte' target='_blank' href='http://vkontakte.ru/share.php?url=<?=$articleURL ?>'>
                        <img src='<?=$dir ?>plugins/content/bookmark/vk_30.png' width='30' height='30' alt='Share on vkontakte'/>
                    </a>
                    <a id='facebook_sharer' title='Facebook sharer' target='_blank' href='<?='http://www.facebook.com/sharer.php?u='.urlencode($articleURL).'&t='.urlencode($articleTitle)?>'>
                        <img src='<?=$dir ?>plugins/content/bookmark/fb_30.png' width='29' height='30' alt='Share on facebook' />
                    </a>
                  </div>
<?
         $output = ob_get_contents();
         ob_end_clean();
         $article->text.=$output;
         return true;
    	}
	}
   function getURL(&$article) {
		if (!is_null($article))	{
			require_once( JPATH_SITE . DS . 'components' . DS . 'com_content' . DS . 'helpers' . DS . 'route.php');
			
			$uri = &JURI::getInstance();
			$base = $uri->toString(array('scheme', 'host', 'port'));
			$url = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->sectionid));
			
			return JRoute::_($base . $url, true, 0);
		}
	}
}
?>

Комментарии
⇓⇑ Добавить новый Поиск RSS
Имя:
Email:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Пожалуйста, введите проверочный код, который Вы видите на картинке.
Написал: Павел |2011-01-21 20:34:52
avatar Наконец-то нормальный плагин!!! А то по этой теме в сети лежат одни недоделки кривые и похожие друг на друга. Молоток.

Проблема вот в чем, ссылка твиттер не работает, ошибку пишет "'url' parameter does not contain a valid URL." Не знаешь в чё проблема?
Написал: admin |2011-01-21 21:38:52
avatar Кинь ссылку - я посмотрю в чем может быть проблема.
Написал: Павел |2011-01-21 21:45:45
avatar Вот ссылка
http://perspektiva-omsk.com/index.php/component/content/article/48-q-2 011q-

Только там щас уже не ошибка, а twitter status, не знаю что это...
Написал: admin |2011-01-21 22:48:28
avatar Насколько я заметил, проблема только с этой статьей? Похоже, twitter не хочет пропускать ссылку, в которой в конце дефис ("-";). Тебе посоветую изменить alias для этой ссылки в админке, чтобы дефиса не было в конце. В следующей версии плагина постараюсь устранить эту проблему, если это возможно.
Написал: GPV091 |2011-01-23 11:07:50
avatar Да, действительно, проблема только в дефисе была. Спасибо. :)

А есть возможность сделать вывод по ктегориям? Чтобы не после каждой текстовки отображалось, а, например, только в номостях.
Написал: admin |2011-01-23 14:02:21
avatar Пока нет, будем работать над этим.
Написал: Вадим |2011-10-24 23:18:06
avatar а кнопку +1 можете добавить7 плагин простенький и компактный
Написал: admin |2011-10-24 23:20:41
avatar Сделаем! И скоро планируется такой же плагин для версий 1.6-1.7