Beschreibung
Die Steuerung der Erweiterung erfolgt über die Seite MediaWiki:NewArticle.
weiteres 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;
}
?>