====== PlugIn für Sevenload Videos ======
Nun habe auch ich mein erstes eigenes PlugIn für das [[doku>wiki:dokuwiki|DokuWiki]] geschrieben. Es bindet [[http://sevenload.de/mitglieder/kantel|Sevenload]]-Videos in die Wiki-Seiten ein und bedient sich großzügig des Codes des [[http://wiki.symplus.co.jp/computer/en/youtube_plugin|YouTube-Video-PlugIns]] von Ikuo Obataya, den ich für meine Zwecke angepaßt habe. Es ist mein erstes DokuWiki-PlugIn und ich bin auch nicht gerade der begeisterte PHP-Programmier. Also, obwohl ich glaube, alles verstanden zu haben, was ich da gemacht habe, nutzt ihr das PlugIn natürlich auf Euer eigenes Risiko. :!:
===== Beispiel =====
{{sevenload>medium:2sBfs8Z}}
//Betty Rowland: Burlesque's Ball of Fire//
===== Syntax =====
''%%{{sevenload>link:VIDEO_ID}}%%''
''%%{{sevenload>small:VIDEO_ID}}%%''
''%%{{sevenload>medium:VIDEO_ID}}%%''
''%%{{sevenload>large:VIDEO_ID}}%%''
Die VIDEO_ID findet Ihr im Informations-Block ca. in der Mitte der rechten Spalte der Video-Seite, außerdem ist sie die Zeichenkette, die in der URL direkt nach ''%%http://de.sevenload.com/videos/%%'' steht.
===== Link Icon =====
Wie schon bei dem [[YouTube PlugIn]] gibt es zusätzlich noch den Parameter ''link'', der einen direkten Link zum Film auf [[http://sevenload.de/mitglieder/kantel|Sevenload]] bereithält. Der sieht ausgeführt so aus:
{{sevenload>link:2sBfs8Z}}
Wenn Ihr den Code so nutzt, wie ich ihn hier bereitgestellt habe, ladet Ihr das Sevenload-Icon von meinem Server (ich werde es überleben ;-)), wenn Ihr es aber korrekt machen wollt, ändert Ihr den Code in Zeile 54 auf
$LOGO_URL = '/_media/icon/sevenload.gif';
und kopiert das Icon mit dem Namen ''sevenload.gif'' In den ''icon''-//Namespace// Eures Wikis.
===== Quellcode =====
* Based on the YouTube PlugIn written by Ikuo Obataya
*
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_INC.'lib/plugins/syntax.php');
/**
* All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class
*/
class syntax_plugin_sevenload extends DokuWiki_Syntax_Plugin {
/**
* return some info
*/
function getInfo(){
return array(
'author' => 'J. Kantel',
'email' => 'joerg@kantel.de',
'date' => '2007-10-03',
'name' => 'Sevenlaod Plugin',
'desc' => 'Sevenload video link and object',
'url' => 'http://www.cognitiones.de/',
);
}
function getType(){ return 'substition'; }
function getSort(){ return 159; }
function connectTo($mode) { $this->Lexer->addSpecialPattern('\{\{sevenload>[^}]*\}\}',$mode,'plugin_sevenload'); }
/**
* Handle the match
*/
function handle($match, $state, $pos, &$handler){
$match = substr($match,12,-2); // Strip markup
return array($state,explode(':',$match));
}
/**
* Create output
*/
function render($mode, &$renderer, $data) {
if($mode == 'xhtml'){
list($state, $match) = $data;
list($disptype,$id) = $match;
$href_start = '';
$LOGO_URL = 'http://www.cognitiones.de/lib/plugins/sevenload/images/sevenload.gif';
if ($disptype=='link'){
$renderer->doc .= $href_start;
$renderer->doc .= '';
}elseif($disptype=='large'){
$obj='';
$renderer->doc .= $obj;
}elseif($disptype=='medium'){
$obj='';
$renderer->doc .= $obj;
}elseif($disptype=='small'){
$obj='';
$renderer->doc .= $obj;
}else{
$renderer->doc .="??";
}
return true;
}
return false;
}
}
?>
===== Installation =====
Den Quellcode in eine Datei kopieren, die Ihr ''syntax.php'' nennt. Dann legt bitte einen Ordner ''sevenload'' im Verzeichnis ''lib/plugins'' Eurer Doku-Wiki-Installation an und kopiert die ''syntax.php'' dort hinein. Und schon steht Euch die bunte Welt von Sevenload zur Verfügung.
===== Verwandte Seiten =====
* [[Sevenload Photos]]
* [[Google Video]]
* [[YouTube PlugIn]]