====== ICQ Plugin ======
---- plugin ----
description: With this plugin you can insert an ICQ-user status to your page.
author : Jakob Jensen
email : koeppe@kazur.dk
type : syntax
lastupdate : 2006-03-28
compatible : Angua, Adora Belle, Weatherwax, Binky
depends :
conflicts :
similar :
tags : chat, status
downloadurl: https://github.com/lupo49/dokuwiki-plugin-icq/zipball/master
sourcerepo: https://github.com/lupo49/dokuwiki-plugin-icq
bugtracker: https://github.com/lupo49/dokuwiki-plugin-icq/issues/
----
===== Syntax =====
The format is
[[icq>#########]]
This will insert code
===== Installation =====
==== Plugin ====
Create a new folder ''lib/plugins/icq/'' and place the following file in it: ''syntax.php''.
''lib/plugins/icq/syntax.php'':
*/
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_icq extends DokuWiki_Syntax_Plugin {
/**
* return some info
*/
function getInfo(){
return array(
'author' => 'Jakob Jensen',
'email' => 'koeppe@kazur.dk',
'date' => '2006-03-28',
'name' => 'ICQ plugin',
'desc' => 'Show if some ICQ user is online. Syntax: [[icq>0000000]]',
'url' => 'http://www.dokuwiki.org/plugin:icq',
);
}
/**
* What kind of syntax are we?
*/
function getType(){
return 'substition';
}
function getSort(){ return 298; }
function connectTo($mode) {
$this->Lexer->addSpecialPattern('\[\[icq>\w+\]\]',$mode,'plugin_icq');
}
/**
* Handle the match
*/
function handle($match, $state, $pos, &$handler){
$match = substr($match,6,-2);
return array(strtolower($match));
}
/**
* Create output
*/
function render($mode, &$renderer, $data) {
if($mode == 'xhtml'){
$renderer->doc .= '';
$renderer->doc .= '';
$renderer->doc .= '';
return true;
}
return false;
}
}
?>
===== Discussion =====
If you want to show not only ICQ flower, but UIN, make following changes in function **render**:
function render($mode, &$renderer, $data) {
if($mode == 'xhtml'){
$renderer->doc .= '';
$renderer->doc .= '';
$renderer->doc .= $data[0] . '';
return true;
}
return false;
}
--- // [[kibizoid@gmail.com|Alexander Sorkin aka Kibi]] 31 Jul 2006 19:18//