Собственно, заголовок сам говорит о том что я буду писать в этой статье. На скорую руку набросал плагин социальных закладок и хочу поделиться с вами. Сейчас в плагине присутствуют кнопки для трех сервисов: 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);
}
}
}
?>