MediaWiki extensions manual
Release status: unmaintained
Implementation Tag
Description Adds ‎<followbutton> tag for displaying follow buttons.
Author(s) Toni Hermoso Pulido (Tonihertalk)
Latest version 0.1
MediaWiki 1.16, 1.17
PHP 5.2.x, 5.3.x
License GNU General Public License 2.0 or later
Download Below this page
Example http://www.viquimedia.cat

Parser that inserts a Follow Button anywhere in a wiki page.

Services edit

Usage edit

For now, only Twitter is available and you have the following parameters:

  • lang (2 letter language code. Only a few available in twitter. English by default)
  • color (dark or light, light by default)
  • count (true or false, true by default)
  • service (now only Twitter, by default)

Put your username between the tags (no @ is needed).

Example: (for a Twitter Follow Button in Spanish with no counter): <followbutton count=false lang="es">toniher</followbutton>

Download instructions edit

Please cut and paste the code found below and place it in $IP/extensions/FollowButton/FollowButton.php. Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php .

Also copy i18n file in $IP/extensions/FollowButton/FollowButton.i18n.php

Installation edit

To install this extension, add the following to LocalSettings.php :

#add configuration parameters here
#setup user rights here

Code edit

FollowButton.php edit

 * Copyright (C) 2011 Toni Hermoso Pulido <toniher@cau.cat>
 * http://www.cau.cat
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 * http://www.gnu.org/copyleft/gpl.html
// Twitter script bits from: https://twitter.com/about/resources/followbutton

if ( !defined( 'MEDIAWIKI' ) ) {
        echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" );
        die( 1 );
$wgExtensionCredits['other'][] = array(
        'path' => __FILE__,
        'name' => 'FollowButton', 
        'author' => array( 'Toniher' ), 
        'url' => 'http://mediawiki.org/wiki/Extension:FollowButton',
        'description' => 'Adds popular social networks Follow Buttons to your wiki',
        'descriptionmsg' => 'followbutton-desc',

$wgExtensionFunctions[] = "FollowButtonExtension";
$wgFollowButtonIP = dirname( __FILE__ );
$wgExtensionMessagesFiles['FollowButton'] = "$wgFollowButtonIP/FollowButton.i18n.php";

function FollowButtonExtension() {
    global $wgParser;
    $wgParser->setHook( "followbutton", "wfFollowButton" );

function wfFollowButton( $input, $argv ) {

        $service = "Twitter";
        if (isset($argv['service'])) { $service = $argv['service']; }
        if (strtolower($service) == 'twitter') {
                $color = "light";
                $count = true;
                $label = "Follow";
                $lang = "en";

                $langstr = "";
                $colorstr = "";
                $countstr = "";

                if (isset($argv['color'])) {$color = $argv['color'];}
                if (isset($argv['count'])) {$count = $argv['count'];}
                if (isset($argv['lang'])) {
                        $lang = $argv['lang'];
                        // We take langcode and langcode-{country,variantcode}
                        if (preg_match('/^\s*\w{2,3}\s*$/', $argv['lang'])) {
                                $langstr = "data-lang=\"".$lang."\"";
                        elseif (preg_match('/^\s*(\w{2,3})\-(\w+)\s*$/', $argv['lang'], $langbits)) {
                                $langstr = "data-lang=\"".$langbits[1]."\"";

                if (strtolower($color) == 'dark') {
                        $colorstr = "data-button=\"grey\" data-text-color=\"#FFFFFF\" data-link-color=\"#00AEFF\"";
                if ($count != true) {
                        $countstr = "data-show-count=\"false\"";

                $output = "<a href=\"http://twitter.com/".$input."\" class=\"twitter-follow-button\" ".$colorstr." ".$countstr." ".$langstr." >".$label.
" @".$input."</a><script src=\"http://platform.twitter.com/widgets.js\" type=\"text/javascript\"></script>";    
        return $output;

FollowButton.i18n.php edit

 * Internationalisation file for Follow Button extension.

$messages = array();

$messages['en'] = array(
	'followbutton-desc' => 'Adds popular social networks Follow Buttons to your wiki'

$messages['ca'] = array(
        'followbutton-desc' => 'Afegeix botons de seguiment de xarxes socials populars al vostre wiki'

$messages['es'] = array(
        'followbutton-desc' => 'Añade botones de seguimiento de redes sociales populares en su wiki'