DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:toplist

Toplist Plugin

Compatible with DokuWiki

No compatibility info given!

plugin Insert Toplist.cz status image into your DokuWiki page

Last updated on
2006-04-09
Provides
Syntax

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

The following security issue was reported for this extension: XSS vulnerability allows arbitrary JavaScript insertion. Author informed on 2009-11-08.

It is not recommended to use this extension until this issue was fixed. Extension authors should read the plugin security guidelines

Tagged with status

Description

With this plugin you can insert a Toplist status image (counter) to your page. The format is

~~toplist:#####~~

This will insert code

<img SRC="http://toplist.cz/count.asp?id=#####&amp;logo=mc" border="0" alt="TOPlist" WIDTH="88" HEIGHT="60"/>

Installation

Plugin

Create a new folder lib/plugin/toplist/ and place the following file in it: syntax.php.

lib/plugin/toplist/syntax.php:

syntax.php
<?php
/**
 * Plugin Toplist: Show Toplist Status.
 *
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 * @author     Mario Lacko <mario [dot] lacko [at] gmail [dot] com>
 */
 
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
 
/**
 * All DokuWiki plugins to extend the parser/rendering mechanism
 * need to inherit from this class
 */
class syntax_plugin_toplist extends DokuWiki_Syntax_Plugin {
 
    /**
     * return some info
     */
    function getInfo(){
        return array(
                'author' => 'Mario Lacko',
                'email'  => 'mario [dot] lacko [at] gmail [dot] com',
                'date'   => '2006-04-09',
                'name'   => 'Toplist Plugin',
                'desc'   => 'Show your statistic from toplist.cz . Syntax: ~~toplist:000000~~',
                'url'    => 'http://www.dokuwiki.org/plugin:toplist',
                );
    }
 
    /**
     * What kind of syntax are we?
     */
    function getType(){
        return 'substition';
    }
 
    function getSort(){ return 129; }
 
    function connectTo($mode) {
      $this->Lexer->addSpecialPattern("~~toplist:\w+~~",$mode,'plugin_toplist');
    }
 
 
    /**
     * Handle the match
     */
    function handle($match, $state, $pos, &$handler){
        $match = substr($match,10,-2); // Strip markup
        // Check alignment
        $ralign = (bool)preg_match('/^ /',$match);
        $lalign = (bool)preg_match('/ $/',$match);
        if ($lalign & $ralign) $align = 'center';
        else if ($ralign)      $align = 'right';
        else if ($lalign)      $align = 'left';
        else                   $align = NULL;
 
        return array(trim($match),$align);
    }
 
    /**
     * Create output
     */
    function render($mode, &$renderer, $data) {
        if($mode == 'xhtml'){
            $renderer->doc .= '<img SRC="http://toplist.cz/count.asp?id='.$data[0].'&amp;logo=mc" border="0" alt="TOPlist" WIDTH="88" HEIGHT="60"/>';
 
            return true;
        }
        return false;
    }
}
 
//Setup VIM: ex: et ts=4 enc=utf-8 :

Discussion

It's insert counter image from www.toplist.cz , like this ⇒ http://www.toplist.cz/images/counter.asp?a=mc&ID=1

Hello, There's so many plug-ins, so please, think to include a Demo Link, just to have an idea…
plugin/toplist.txt · Last modified: 2016-01-27 20:50 by Aleksandr