Social Media Buttons in Joomla 2.5

Where to embed?
Different types of button bars
  Share42 horizontal panel
  Share42 floating vertical panel
Selective placement

Upd: Русская версия статьи: Кнопки социальных сетей в Joomla 2.5.

Plugin SocButtonsAs I promised in one of articles from series "Migrating from Joomla 1.5 to Joomla 2.5", I will elaborate on integration of social networks share buttons to Joomla 2.5 website.

Social bookmarking plugin I have used in Joomla 1.5 has not been upgraded by its author to 2.5. At that time, existing Joomla extensions had not satisfied as a solution, to the same - where is the guarantee that their authors would promptly update them? So my choice is to work a little by hands to implant buttons into template. There has been found a sufficient number of varieties of social buttons, but they will be described in the next article. Here will be explained, where exactly their scripts are being embedded.

Standard variant is - to insert buttons panel to an article body before or after its content. In the latter case, when using component JComments, you can integrate social buttons into its plugin. Then the buttons will only appear in those articles that have comments turned on. As a separate option would be considered a vertical panel that can be hung anywhere on a web page.

So let's get it clear, in which files and to what places in their code the scripts of buttons panel will be inserted.

1. Into an article body before or after its content.

In general case file components \ com_content \ views \ article \ tmpl \ default.php will be edited. The following code fragment of this file clearly shows, where to insert the button bar:

/* ------------ More code..... ----------- */
if (!empty($this->item->pagination) AND $this->item->pagination AND !$this->item->paginationposition AND !$this->item->paginationrelative):
    echo $this->item->pagination;
 /* =====> !!! Before the content - Insert here */
<?php echo $this->item->text; ?>
/* ------------ More code..... ----------- */
 /* =====> !!! After the content - Insert here */
if (!empty($this->item->pagination) AND $this->item->pagination AND $this->item->paginationposition AND $this->item->paginationrelative):
    echo $this->item->pagination;?>
<?php endif; ?>
<?php echo $this->item->event->afterDisplayContent; ?>
/* ------------ End of File ----------- */

Method described above works fine in the templates that ship with Joomla by default - Beez2, Beez5, Atomic, as well as in many others. However, there are a variety of templates where their own file default.php overrides the one we discussed earlier. For example, my template, made in Artisteer and being active at the time of this writing. Let's find out, where to implement the code of social media buttons in this case.

We edit the following file: templates \ [my_template] \ html \ com_content \ article \ default.php.

/* ------------ More code..... ----------- */
if (!$article->introVisible)
    $content .= $article->event('afterDisplayTitle');
$content .= $article->event('beforeDisplayContent');
 /* =====> !!! Before the content - Insert here */
if (strlen($article->toc))
    $content .= $article->toc($article->toc);
/* ------------ More code..... ----------- */
if (strlen($article->readmore))
    $content .= $article->readmore($article->readmore, $article->readmoreLink);
 /* =====> !!! After the content - Insert here */
if ('below full article' === $article->paginationPosition)
    $content .= $article->pagination();
$content .= $article->event('afterDisplayContent');
$params['content'] = $content;
// Render article
echo $article->article($params);
echo $component->endPageContainer();
/* ------------ End of File ----------- */

Hopefully the concept is clear here as well. The only thing I want to clarify - in this case the entire script of a page is assigned to the variable $content. Therefore, the panel's code is not inserted as is, but is added to the value of this variable in string representation, ie, framed by single or double quotes:

$content .= 'Code of the buttons panel';

2. Integration into JComments.

The file for customizing is components \ com_jcomments \ tpl \ default \ tpl_index.php. It's simple:

      // include JComments JavaScript initialization
 /* =====> !!! Insert here */
<script type="text/javascript">

Now, after we know, where and in which case we will integrate the scripts of our panels, we turn to the topic of what to embed. Next article will address this issue.

Add comment