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: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Beschreibung: Erster Hinweis
Weiterleitung nach Benutzer:Rene/SGPack erstellt
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Beschreibung==
#redirect [[Benutzer:Rene/SGPack]]
Die Steuerung der Erweiterung erfolgt über die Seite [[MediaWiki:NewArticle]].
 
weiteres folgt...
 
==Code==
<pre>
<?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;
}
 
?>
</pre>