Rene (Diskussion | Beiträge) Hinweis auf Installation |
Rene (Diskussion | Beiträge) →Programmcode: Neuer Code |
||
| Zeile 23: | Zeile 23: | ||
==Programmcode== | ==Programmcode== | ||
Aktuell läuft auf Stargate-Wiki der folgende Programmcode. Die Erweiterung benutzt | Aktuell läuft auf Stargate-Wiki der folgende Programmcode. Die Erweiterung benutzt die MediaWiki Hooks '''OutputPageBeforeHTML''', '''PersonalUrls''' und '''BeforePageDisplay'''. | ||
<pre> | <pre> | ||
| Zeile 45: | Zeile 45: | ||
$wgExtensionCredits['other'][] = array( | $wgExtensionCredits['other'][] = array( | ||
'name' => 'SGHtml', | 'name' => 'SGHtml', | ||
'version' => '0. | 'version' => '0.75', | ||
'author' => '[http://www.stargate-wiki.de/index.php/User:Admin Rene Raule]', | 'author' => '[http://www.stargate-wiki.de/index.php/User:Admin Rene Raule]', | ||
'url' => 'http://www.stargate-wiki.de/index.php/Rene/SGHtml', | 'url' => 'http://www.stargate-wiki.de/index.php/Rene/SGHtml', | ||
| Zeile 53: | Zeile 53: | ||
$wgHooks['OutputPageBeforeHTML'][] = 'SGHtml'; | $wgHooks['OutputPageBeforeHTML'][] = 'SGHtml'; | ||
$wgHooks['BeforePageDisplay'][] = 'fnSGHtmlBPD'; | |||
$wgHooks['PersonalUrls'][] = 'ShowSpoiler'; | |||
$isSpoiler = false; | |||
// Letzte Änderungen direkt vor der Ausgabe | |||
function fnSGHtmlBPD(&$out) { | |||
global $isSpoiler; | |||
$keywords = array('Stargate','Stargate SG-1','Stargate Atlantis','Stargate Universe','Stargate Lexikon'); | |||
if($isSpoiler) { | |||
$SpoilerScript = '<script type="text/javascript"> | |||
function switchSpoiler() { | |||
var rows = document.getElementsByTagName("div"); | |||
var btext = document.getElementById("bt-Spoiler"); | |||
for(var i=0; i<rows.length; i++) { | |||
if(rows[i].className=="spoiler") { | |||
rows[i].className="spoilerOK"; | |||
btext.innerHTML=btext.innerHTML.replace(/aufdecken/,"verdecken"); | |||
} else { | |||
if(rows[i].className=="spoilerOK") { | |||
rows[i].className="spoiler"; | |||
btext.innerHTML=btext.innerHTML.replace(/verdecken/,"aufdecken"); | |||
} | |||
} | |||
} | |||
} | |||
</script>'; | |||
$out->addScript($SpoilerScript); | |||
} | |||
// Weitere Meta Begriffe | |||
foreach($keywords as $word) { | |||
$out->addKeyword($word); | |||
} | |||
return true; | |||
} | |||
function ShowSpoiler(&$personal_urls,&$wgTitle) { | |||
global $isSpoiler; | |||
if($isSpoiler) { | |||
$ref = "javascript:switchSpoiler()"; | |||
$text = 'Spoiler aufdecken'; | |||
$class = 'new'; | |||
$active = true; | |||
$personal_urls['Spoiler'] = array( 'text' => $text,'href' => $ref,'class' => $class, 'active' => $active ); | |||
} | |||
return true; | |||
} | |||
function SGHtml( &$out, &$text ) { | function SGHtml( &$out, &$text ) { | ||
global $isSpoiler; | |||
$mTable = array( | $mTable = array( | ||
/* Externe Seiten in eigenem Fenster */ | /* Externe Seiten in eigenem Fenster */ | ||
| Zeile 82: | Zeile 136: | ||
$text = stripslashes(preg_replace($suchen,$ersatz,$text)); | $text = stripslashes(preg_replace($suchen,$ersatz,$text)); | ||
/* Spoiler | /* prüfen ob Spoiler vorhanden */ | ||
if (strpos($text,'id="show_spoiler"') == true) { | if (strpos($text,'id="show_spoiler"') == true) { | ||
$isSpoiler = true; | |||
/* Button */ | |||
$btext = $jscript.'<button id="bt-Spoiler" '; | |||
$btext .= 'style="position:fixed; right: 15px; top: 0px; z-index:50;'; | |||
$btext .= ' background-color:#fffafa; color:#4169e1;'; | |||
$btext .= ' padding: 0px 10px; font-size:x-small;"'; | |||
$btext .= ' onclick="switchSpoiler()"'; | |||
$btext = $jscript.'<button '; | |||
$btext .= ' background- | |||
$btext .= ' padding: | |||
$btext .= ' onclick=" | |||
$btext .= ' type="button"'; | $btext .= ' type="button"'; | ||
$btext .= '>Spoiler aufdecken</button>'; | $btext .= '>Spoiler aufdecken</button>'; | ||
$text = $btext.$text; | $text = $btext.$text; | ||
} | } | ||
return true; | return true; | ||
} | } | ||