Stylesheet style.css not found, please contact the developer of "arctic" template.

This is an old revision of the document!


PlugIn für Sevenload Videos

Nun habe auch ich mein erstes eigenes PlugIn für das DokuWiki geschrieben. Es bindet Sevenload-Videos in die Wiki-Seiten ein und bedient sich großzügig des Codes des 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

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.

Wie schon bei dem Das YouTube-PlugIn gibt es zusätzlich noch den Parameter link, der einen direkten Link zum Film auf Sevenload bereithält. Der sieht ausgeführt so aus:

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

<?php
/**
* Plugin Sevenload: Create Sevenload video link and object from ID.
*
* @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author     Joerg Kantel <joerg@kantel.de>
*			  Based on the YouTube PlugIn written by Ikuo Obataya
*			  <http://wiki.symplus.co.jp/computer/en/youtube_plugin>
*/
 
// 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 = '<a href="http://de.sevenload.com/videos/'.$id.'">';
			$LOGO_URL = 'http://www.cognitiones.de/lib/plugins/sevenload/images/sevenload.gif';
			if ($disptype=='link'){
				$renderer->doc .= $href_start;
				$renderer->doc .= '<img src="'.$LOGO_URL.'" alt="movie-'.$id.'"/></a>';
			}elseif($disptype=='large'){
				$obj='<object width="425" height="350">';
				$obj.='<param name="FlashVars" value="apiHost=api.sevenload.com"/>';
				$obj.='<param name="movie" value="http://de.sevenload.com/pl/'.$id.'/swf" />';
				$obj.='<embed src="http://de.sevenload.com/pl/'.$id.'/425x350/swf" type="application/x-shockwave-flash" width="425" height="350" allowfullscreen="true" FlashVars="apiHost=api.sevenload.com"></embed>';
				$obj.='</object>';
				$renderer->doc .= $obj;
				}elseif($disptype=='medium'){
				$obj='<object width="320" height="263">';
				$obj.='<param name="FlashVars" value="apiHost=api.sevenload.com"/>';
				$obj.='<param name="movie" value="http://de.sevenload.com/pl/'.$id.'/swf" />';
				$obj.='<embed src="http://de.sevenload.com/pl/'.$id.'/380x313/swf" type="application/x-shockwave-flash" width="320" height="263" allowfullscreen="true" FlashVars="apiHost=api.sevenload.com"></embed>';
				$obj.='</object>';
				$renderer->doc .= $obj;
				}elseif($disptype=='small'){
				$obj='<object width="200" height="178">';
				$obj.='<param name="FlashVars" value="apiHost=api.sevenload.com"/>';
				$obj.='<param name="movie" value="http://de.sevenload.com/pl/'.$id.'/swf" />';
				$obj.='<embed src="http://de.sevenload.com/pl/'.$id.'/200x178/swf" type="application/x-shockwave-flash" width="200" height="178" allowfullscreen="true" FlashVars="apiHost=api.sevenload.com"></embed>';
				$obj.='</object>';
				$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_videos.1205152181.txt.gz · Last modified: 2008/08/14 13:26 (external edit)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0