Rene (Diskussion | Beiträge) →Probleme & Ideen: Zuwenige Prüfungen |
Rene (Diskussion | Beiträge) Code V0.90 |
||
| Zeile 51: | Zeile 51: | ||
$wgExtensionCredits['other'][] = array( | $wgExtensionCredits['other'][] = array( | ||
'name' => 'NewArticle', | 'name' => 'NewArticle', | ||
'version' => '0. | 'version' => '0.90', | ||
'author' => 'Rene', | 'author' => 'Rene', | ||
'url' => 'http://www.stargate-wiki.de/index.php/User:Rene/NewArticle', | 'url' => 'http://www.stargate-wiki.de/index.php/User:Rene/NewArticle', | ||
| Zeile 63: | Zeile 63: | ||
return rawurlencode(html_entity_decode(htmlentities($text,ENT_QUOTES,'UTF-8'))); | return rawurlencode(html_entity_decode(htmlentities($text,ENT_QUOTES,'UTF-8'))); | ||
} | } | ||
/* Filter des Artikels, noinclude Bereiche entfernen */ | |||
function FilterPage($text) { | |||
// <noinclude> Bereiche komplett entfernen | |||
$expr = '/(.*)<noinclude>.*<\/noinclude>(.*)/'; | |||
$replace = '$1$2'; | |||
$text = preg_replace($expr,$replace,$text); | |||
// <includeonly>, </includeonly> einfach entfernen | |||
$expr = '/(.*)<includeonly>|<\/includeonly>(.*)/'; | |||
$replace = '$1$2'; | |||
$text = preg_replace($expr,$replace,$text); | |||
return $text; | |||
} | |||
function NewArticle(&$seite) { | function NewArticle(&$seite) { | ||
global $wgOut; | global $wgOut; | ||
| Zeile 74: | Zeile 87: | ||
if( $steuer->mContentLoaded ) { | if( $steuer->mContentLoaded ) { | ||
// Ausgabe Puffer Variablen anlegen | // Ausgabe Puffer Variablen anlegen | ||
$einleitung = ''; $abschluss = ''; | $einleitung = ''; $abschluss = ''; $artikelListe = ''; $textErsteWahl = 'Bitte wählen'; | ||
$ | $listenKopf = '<script type="text/javascript">'; | ||
$ | $listenKopf .= 'function NewArticleGo(select) {'; | ||
$ | $listenKopf .= 'var wert=select.options[select.options.selectedIndex].value;'; | ||
$ | $listenKopf .= "insertTags('',unescape(wert),'');"; | ||
$ | $listenKopf .= "}</script>\n"; | ||
$ | $listenKopf .= '<select size="1" id="NewArticleSelect" onchange="NewArticleGo(this);">'."\n"; | ||
// Die einzelnen Zeilen, getrennt durch eine Zeile mit //, in Array einlesen | // Die einzelnen Zeilen, getrennt durch eine Zeile mit //, in Array einlesen | ||
$steuerArray = explode("\n//\n", $steuer->mContent); | $steuerArray = explode("\n//\n", $steuer->mContent); | ||
| Zeile 89: | Zeile 102: | ||
$einleitung = $zeile[1]; | $einleitung = $zeile[1]; | ||
} elseif ( $zeile[0] == 'End' ) { | } elseif ( $zeile[0] == 'End' ) { | ||
$abschluss = $zeile[1]; | |||
} elseif ( $zeile[0] == 'Einleitung' ) { | |||
$textErsteWahl = $zeile[1]; | |||
} else { | |||
// Artikel einlesen umwandeln und im HTML Code ablegen | |||
$artikel = new Article(Title::makeTitle(10,$zeile[1])); | |||
$artikel->getContent(); | |||
$artikelListe .= '<option value="'.JSencode(FilterPage($artikel->mContent)).'">'; | |||
$artikelListe .= $zeile[0]."</option>\n"; | |||
unset($artikel); | |||
} | } | ||
} | } | ||
$ersteWahl = '<option value="">'.$textErsteWahl.'</option>'."\n"; | |||
// Ergebniss in die Ausgabe einfuegen | // Ergebniss in die Ausgabe einfuegen | ||
$wgOut->addHTML($einleitung.$ | $wgOut->addHTML($einleitung.$listenKopf.$ersteWahl.$artikelListe.'</select>'.$abschluss); | ||
} | } | ||
} | } | ||
return true; | return true; | ||
} | } | ||
</pre> | </pre> | ||