Extension:PollDaddy

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
PollDaddy

Release status: unknown

Implementation Tag
Description An extension that allows embedding of polldaddy.com polls into MediaWiki
Author(s) Jabberwocky @ Lostpedia
Last version 1.3
License GNU General Public License 2.0 or later
Download see below

Check usage (experimental)

PollDaddy is a MediaWiki extension to insert polldaddy.com polls into the wiki. It was originally based off of Sylvain Machefert's GoogleVideo and YouTube video extensions, but has been re-written to use parameters within the tag to make it more elegant and secure.

[edit] Usage

Put the following code into the page where you want to display a poll, replacing "12345" with the correct poll ID number:

<polldaddy pollid="12345"/>

[edit] Installation

  1. Download the source code and put it into $IP/extensions/PollDaddy as PollDaddy.php
  2. Add
    require_once("$IP/extensions/PollDaddy/PollDaddy.php");
    into your wiki's LocalSettings.php
  3. Installation can now be verified through Special:Version

[edit] Source Code

<?php
/**
 * An extension that allows embedding of polldaddy.com polls into MediaWiki
 *
 * @file
 * @ingroup Extensions
 *
 * @author Jabberwock @ Lostpedia
 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
 * @link http://www.mediawiki.org/wiki/Extension:PollDaddy Documentation
 *
 * Version 1.3
 *
 * Changes:     1.2: --use parameters from tag instead of delimited $input
 *              1.3: --polldaddy no longer supporting flash polls.  Using javascript instead
 *                   --width and height no longer required              
 *
 * Tag:  <polldaddy pollid="12345"/>
 */
# Confirm MW environment
if ( !defined( 'MEDIAWIKI' ) ) {
        die( 'This file is a MediaWiki extension, it is not a valid entry point' );
}
 
// Avoid unstubbing $wgParser on setHook() too early on modern (1.12+) MW versions, as per r35980
if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
        $wgHooks['ParserFirstCallInit'][] = 'wfPolldaddy';
} else {
        $wgExtensionFunctions[] = 'wfPolldaddy';
}
 
// Extension credits that will show up on Special:Version
$wgExtensionCredits['parserhook'][] = array(
        'name' => 'PollDaddy',
        'version' => '1.3',
        'description' => 'Display polls from polldaddy.com',
        'author' => 'Jabberwock',
        'url' => 'http://www.mediawiki.org/wiki/Extension:PollDaddy'
);
 
function wfPolldaddy() {
        global $wgParser;
        $wgParser->setHook('polldaddy', 'renderPolldaddy');
        return true;
}
 
# The callback function for converting the input text to HTML output
function renderPolldaddy( $input, $params ) {
        //$v = htmlspecialchars($params['v']);
        $pollid = htmlspecialchars($params['pollid']);
 
        if( $pollid == null ) {
                $output = '<i>Poll Error:  no poll specified!</i>';
                return $output;
        }
        $output = '<script type="text/javascript" language="javascript" src="http://s3.polldaddy.com/p/'.$pollid.'.js"></script><noscript> <a href ="http://answers.polldaddy.com/poll/'.$pollid.'/" >Link</a>  <br/> <span style="font-size:9px;"> (<a href ="http://www.polldaddy.com">  surveys</a>)</span></noscript>';
 
        return $output;
}
Personal tools
Namespaces
Variants
Actions
Site
Support
Download
Development
Communication
Print/export
Toolbox