Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Benutzer:Rene/PlayMP3: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Neue Version 0.31
 
(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:Aussprache]] !! silk_button<br />[[Vorlage:Audio]]
! 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 vorhandene Dateien werden einfach ignoriert.
* 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>
  *
  *
* If there are no files to play the player will not be shown
  */
  */


Zeile 104: Zeile 105:
$wgExtensionCredits['parserhook'][] = array(
$wgExtensionCredits['parserhook'][] = array(
   'name' => 'PlayMP3',
   'name' => 'PlayMP3',
   'description' => 'Plays mp3-files in an embedded Flash-player',
   '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.31'
   'version' => 'v0.32'
);
);


// Parameters
//Default Skin. Used if no skin defined
define("SKIN","standard");
define("SKIN","standard");
define("PLAYERDIR",'/extensions/EMFF/'); // dirname(__FILE__).'/'; - better but did not work


// Init
// 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 = '/extensions/EMFF/'; //dirname(__FILE__).'/';
   $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 = '&amp;';
   $add = '&amp;';
    
    
   // player parameters
   // 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
   // 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
   $add = '';  
   $fpath = ''; $comma = '';
  $fpath = '';
   foreach($files as $value) {
   foreach($files as $key => $value) {
     if($fpath = getMP3Title($value)) {
     if($fpath = getMP3Title($value)) {
       $play_name .= $add . $fpath;
       $play_name .= $comma . $fpath;
       $add = ',';
       $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) {