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

Benutzer:Rene/NewArticle

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Version vom 13. November 2007, 00:36 Uhr von Rene (Diskussion | Beiträge) (Code)
(Unterschied) ← Nächstältere Version | Aktuelle Version zeigen (Unterschied) | Nächstjüngere Version → (Unterschied)

Beschreibung

folgt...

Code

<?php
$wgExtensionCredits['other'][] = array(
  'name' => 'NewArticle',
  'version' => '0.80',
  'author' => 'Rene',
  'url' => 'http://www.stargate-wiki.de',
  'description' => 'Neuen Artikel mit Inhalt fuellen.'
);

$wgHooks['AlternateEdit'][] = 'NewArticle';

// Umwandeln einer Zeichenkette fuer die JS Funktion unescape()
function JSencode($text) {
  return rawurlencode(html_entity_decode(htmlentities($text,ENT_QUOTES,'UTF-8')));
}
  
function NewArticle(&$seite) {
  global $wgOut;
  // Pruefen ob der Artikel neu ist
  if( !$seite->mArticle->exists() ) {
    // Steuerseite einlesen "MediaWiki:NewArticle"
    $steuer = new Article(Title::makeTitle(8,'NewArticle'));
    $steuer->getContent();
    // Pruefen ob Steuerseite vorhanden
    if( $steuer->mContentLoaded ) {
      // Ausgabe Puffer Variablen anlegen
      $einleitung = ''; $abschluss = ''; $artikelliste = "<ul>\n";
      // Die einzelnen Zeilen, getrennt durch eine Zeile mit //, in Array einlesen
      $steuerArray = explode("\n//\n", $steuer->mContent);
      foreach( $steuerArray as $index => $value ) {
        // Die Zeile aufteilen an den Zeichen ==
        $zeile = explode("==",$value);
        if( $zeile[0] == 'Start' ) {
          $einleitung = $zeile[1];
        } elseif ( $zeile[0] == 'End' ) {
	  $abschluss = $zeile[1];
	} else {
	  // Artikel einlesen umwandeln und im HTML Code ablegen
	  $artikel = new Article(Title::makeTitle(10,$zeile[1]));
	  $artikel->getContent();
	  $artikelliste .= '<li><a style="cursor: pointer;" onclick="insertTags(\'\',unescape(\'';
	  $artikelliste .= JSencode($artikel->mContent);
	  $artikelliste .= "'),'');\">$zeile[0]</a></li>\n";
	  unset($artikel);
        }
      }
      // Ergebniss in die Ausgabe einfuegen
      $wgOut->addHTML($einleitung.$artikelliste.$abschluss);
    }  
  }
  
  return true;
}

?>
Inhaltsverzeichnis