Extension:FollowButton
![]() | This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered. They may contain security holes, outdated interfaces that are no longer compatible etc. Note: No localisation updates are provided for this extension by translatewiki.net . |
![]() | This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. |
![]() 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 |
<followbutton> |
|
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
require_once("$IP/extensions/FollowButton/FollowButton.php");
Code[edit]
FollowButton.php[edit]
<?php
/**
* 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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* 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') {
//Defaults
$color = "light";
$count = true;
$label = "Follow";
$lang = "en";
//Strings
$langstr = "";
$colorstr = "";
$countstr = "";
//Conditions
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]
<?php
/**
* 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'
);
?>