Rene (Diskussion | Beiträge) Neue Version 0.31 |
Rene (Diskussion | Beiträge) |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 16: | Zeile 16: | ||
* shuffle - Die Dateien werden in zufälliger Reihenfolge abgespielt | * shuffle - Die Dateien werden in zufälliger Reihenfolge abgespielt | ||
* show - Der Player wird auch angezeigt wenn keine Dateien angegeben bzw. vorhanden sind | * show - Der Player wird auch angezeigt wenn keine Dateien angegeben bzw. vorhanden sind | ||
* noerror - Es wird keine Fehlermeldung für nicht existierende Dateien ausgegeben. | |||
* groupname="name" - Ordnet den Player einer Gruppe zu. Nur ein Player einer Gruppe kann aktiv sein | * groupname="name" - Ordnet den Player einer Gruppe zu. Nur ein Player einer Gruppe kann aktiv sein | ||
* volume=0..100 - Anfangs Lautstärke | * volume=0..100 - Anfangs Lautstärke | ||
| Zeile 32: | Zeile 33: | ||
| <playmp3 skin="old_noborder">Captain Samantha Carter.mp3</playmp3> | | <playmp3 skin="old_noborder">Captain Samantha Carter.mp3</playmp3> | ||
|- | |- | ||
! lila !! lila_info !! silk<br />[[Vorlage: | ! lila !! lila_info !! silk<br />[[Vorlage:Audio]] !! silk_button<br />[[Vorlage:Audio]] | ||
|- | |- | ||
| <playmp3 skin="lila">Captain Samantha Carter.mp3</playmp3> | | <playmp3 skin="lila">Captain Samantha Carter.mp3</playmp3> | ||
| Zeile 49: | Zeile 50: | ||
==Probleme, Ideen== | ==Probleme, Ideen== | ||
* Playlisten werden bis auf weiteres nicht unterstützt. | * Playlisten werden bis auf weiteres nicht unterstützt. | ||
* Nicht alle möglichen Fehler werden behandelt | * Nicht alle möglichen Fehler werden behandelt. | ||
* Variablen <nowiki>{{{1}}}</nowiki> werden nicht ersetzt. In Vorlagen sollte die Erweiterung daher so benutzt werden: <nowiki>{{#tag:playmp3|Datei|Parameter1|Parameter2...}}</nowiki> | * Variablen <nowiki>{{{1}}}</nowiki> werden nicht ersetzt. In Vorlagen sollte die Erweiterung daher so benutzt werden: <nowiki>{{#tag:playmp3|Datei(en)|Parameter1|Parameter2...}}</nowiki> | ||
* Probleme wenn <nowiki></playmp3></nowiki> fehlt | * Probleme wenn <nowiki></playmp3></nowiki> fehlt | ||
| Zeile 94: | Zeile 95: | ||
* groupname="name" - name of the group | * groupname="name" - name of the group | ||
* show - show player if playlist is empty | * show - show player if playlist is empty | ||
* noerror - do not show error message on missing file | |||
* | * | ||
* Example: | * Example: | ||
* <playmp3>music.mp3,music1.mp3</playmp3> | * <playmp3>music.mp3,music1.mp3</playmp3> | ||
* | * | ||
*/ | */ | ||
| Zeile 104: | Zeile 105: | ||
$wgExtensionCredits['parserhook'][] = array( | $wgExtensionCredits['parserhook'][] = array( | ||
'name' => 'PlayMP3', | 'name' => 'PlayMP3', | ||
'description' => 'Plays mp3-files | 'description' => 'Plays mp3-files with embedded [http://emff.sourceforge.net Flashplayer EMFF]', | ||
'author' => 'René Raule', | 'author' => 'René Raule', | ||
'url' => 'http://www.stargate-wiki.de/index.php/Benutzer:Rene/PlayMP3', | 'url' => 'http://www.stargate-wiki.de/index.php/Benutzer:Rene/PlayMP3', | ||
'version' => 'v0. | 'version' => 'v0.32' | ||
); | ); | ||
// | //Default Skin. Used if no skin defined | ||
define("SKIN","standard"); | define("SKIN","standard"); | ||
define("PLAYERDIR",'/extensions/EMFF/'); // dirname(__FILE__).'/'; - better but did not work | |||
// | // Add function to MediaWiki | ||
function wfPlayMP3() { | function wfPlayMP3() { | ||
global $wgParser; | global $wgParser; | ||
| Zeile 124: | Zeile 126: | ||
// Place where EMFF Player is stored | // Place where EMFF Player is stored | ||
$player_path = | $player_path = PLAYERDIR; | ||
// Parameters for the skins | // Parameters for the skins | ||
$player= array( | $player= array( | ||
| Zeile 143: | Zeile 145: | ||
$text_para = array('groupname'); | $text_para = array('groupname'); | ||
$digit_para = array('volume'=>array(0,100),'balance'=>array(-100,100)); | $digit_para = array('volume'=>array(0,100),'balance'=>array(-100,100)); | ||
$command_para = array('show','noerror'); | |||
$error_out = ''; | |||
$add = '&'; | $add = '&'; | ||
// | // Check for commands | ||
foreach($command_para as $value) { | |||
${$value} = isset($args[$value]); | |||
} | |||
// Check for tag parameters | |||
$player_para = ''; | $player_para = ''; | ||
foreach($bool_para as $value) { | foreach($bool_para as $value) { | ||
| Zeile 176: | Zeile 184: | ||
$args['skin'] = SKIN; | $args['skin'] = SKIN; | ||
} | } | ||
// | // Copy skin parameters | ||
$player_name = $player[$args['skin']]['name']; | $player_name = $player[$args['skin']]['name']; | ||
$player_width = $player[$args['skin']]['width']; | $player_width = $player[$args['skin']]['width']; | ||
| Zeile 184: | Zeile 192: | ||
$files = explode(",", htmlspecialchars($input)); | $files = explode(",", htmlspecialchars($input)); | ||
// Create list of files | // Create list of files for the player | ||
$ | $fpath = ''; $comma = ''; | ||
foreach($files as $value) { | |||
foreach($files as | |||
if($fpath = getMP3Title($value)) { | if($fpath = getMP3Title($value)) { | ||
$play_name .= $ | $play_name .= $comma . $fpath; | ||
$ | $comma = ','; | ||
} else { | |||
if(!$noerror) { | |||
$error_out = '<div class="noprint error">Datei nicht gefunden: '.$value.'</div>'; | |||
} | |||
} | } | ||
} | } | ||
// generate code | // generate code | ||
$output = | $output = $error_out; | ||
if(strlen($play_name) > 0 or isset($args['show'])) { | if(strlen($play_name) > 0 or isset($args['show'])) { | ||
$output .= '<object type="application/x-shockwave-flash" data="'; | $output .= '<object type="application/x-shockwave-flash" data="'; | ||
| Zeile 210: | Zeile 221: | ||
} | } | ||
// Get Wiki URL - TODO: does not work with parametrs {{{}}} | // Get Wiki URL - TODO: does not work with parametrs like {{{1}}} | ||
function getMP3Title($file) { | function getMP3Title($file) { | ||