Benutzer:Rene/SGHtml: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Rene (Diskussion | Beiträge) →Aktueller Code: Neue Version sichern |
Rene (Diskussion | Beiträge) →Probleme: Umwandulg der <- -> erfolgt immer |
||
| Zeile 15: | Zeile 15: | ||
==Probleme== | ==Probleme== | ||
Wer einen Fehler findet bitte hier melden Danke. -- {{Benutzer:Rene/sig}} 23:16, 16. Sep. 2007 (CEST) | Wer einen Fehler findet bitte hier melden Danke. -- {{Benutzer:Rene/sig}} 23:16, 16. Sep. 2007 (CEST) | ||
===Pfeile links/rechts=== | |||
In der neusten Version ersetzt die Erweiterung die Pfeile < - und - > durch Bilder (<-,->). Dabei werden auch Pfeile im Bereich '''<nowiki><pre></nowiki>''' und '''<nowiki><nowiki></nowiki>''' ersetzt. Eine Abhilfe ist momentan nicht möglich und wohl auch nicht nötig. | |||
==Programmcode== | ==Programmcode== | ||
Version vom 22. September 2007, 22:55 Uhr
Mediawiki Erweiterung um den HTML-Code vor der Auslieferung noch zu verändern.
Aktueller Stand Version 0.1
- Externe Seiten werden in einem eigenen Fenster aufgerufen
- Alle Überschriften der Stufe 2 (==) erhalten einen Link auf den Seitenanfang
- Bild statt Text bearbeiten um einen Abschnitt zu bearbeiten
- Wird momentan noch durch einen Hack im Mediawiki Code erreicht
- Werkzeug Spoiler aufdecken einbinden
- Wird momentan noch durch einen Hack im Mediawiki Code (Monobook) erreicht
Probleme
Wer einen Fehler findet bitte hier melden Danke. -- Benutzer:Rene/sig 23:16, 16. Sep. 2007 (CEST)
Pfeile links/rechts
In der neusten Version ersetzt die Erweiterung die Pfeile < - und - > durch Bilder (<-,->). Dabei werden auch Pfeile im Bereich <pre> und <nowiki> ersetzt. Eine Abhilfe ist momentan nicht möglich und wohl auch nicht nötig.
Programmcode
Dieser Code ist noch in der Entwicklung und wird momentan nur im Backup des Wikis benutzt. Im aktuellen Wiki wird nur eine eingeschränkte Version benutzt.
<?php
/* Original MediaWiki HTML Code umwandeln und an StargateWiki anpassen */
$wgExtensionCredits['other'][] = array(
'name' => 'SGHtml',
'version' => '0.5',
'author' => '[http://www.stargate-wiki.de/index.php/User:Admin Rene Raule]',
'url' => 'http://www.stargate-wiki.de/index.php/Rene/SGHtml',
'description' => 'MediaWiki Html veraendern um StargateWiki Besonderheiten einzufügen<br />1. Externe Seiten in eigenem Fenster<br />2. Bild als bearbeiten-Link<br />3. Link zum Seitenanfang<br />4. Spoiler aufdecken<br />5. Zusätzliche meta-Keywords'
);
$wgHooks['OutputPageBeforeHTML'][] = 'SGHtml';
function SGHtml( &$out, &$text ) {
$mTable = array(
/* Externe Seiten in eigenem Fenster */
'class="external text"' => 'class="external text" target="_blank"',
'<-' => '<img src="/skins/common/images/16x16/blue_left.gif" alt="<-" />',
'->' => '<img src="/skins/common/images/16x16/blue_right.gif" alt="->" />'
);
foreach( $mTable as $from => $to ) {
$text = str_replace( $from, $to, $text );
}
// Ueberschrift finden
$suchen = '#<h(\d)><span class="editsection">\[<a href="(.*?)"\s+title="(.*?)">bearbeiten<\/a>\]<\/span>\s*<span class="mw-headline">(.*?)<\/span>#e';
// Neue Ueberschrift mit Bildern
// Test ob H2 Ueberschrift, nur dann wird der Link an den Seitenanfang eingefuegt.
$ersatz = '"<h$1>".($1==2?"';
$ersatz .= '<a href=\"#top\" title=\"Seiten Anfang\" style=\"vertical-align: top; float: right;\"><img src=\"/skins/common/images/16x16/blue_up.gif\" alt=\"^\" /></a>';
$ersatz .= '":"").';
$ersatz .= '"<span class=\"mw-headline\">$4</span> <a href=\"$2\" title=\"$3\">';
$ersatz .= '<img src=\"/skins/common/images/16x16/edit.png\" alt=\"[bearbeiten]\" style=\"vertical-align:top; margin-top:-3px;\" /></a>"';
$text = preg_replace($suchen,$ersatz,$text);
/* Spoiler aufdecken einbinden (geht nur im Text) */
if (strpos($text,'id="show_spoiler"') == true) {
$jscript = '<script type="text/javascript">
function cssClassChange(welchertag,class1,class2,linkgeklickt,linknormal,thus) {
var rows = document.getElementsByTagName(welchertag);
for(var i=0; i<rows.length; i++) {
if(rows[i].className==class1) {
rows[i].className=class2;
thus.innerHTML=linkgeklickt;
} else {
if(rows[i].className==class2) {
rows[i].className=class1;
thus.innerHTML=linknormal;
}
}
}
}
</script>';
$text = $jscript.'<span style="margin-top:-3em; float:right;"><a href="#" onclick="cssClassChange(\'span\',\'spoiler\',\'spoilerOK\',\'Spoiler verdecken\',\'Spoiler aufdecken\',this)">Spoiler aufdecken</a></span>'.$text;
}
/* Anpassung der Seiten Parameter */
// Weitere Meta Begriffe
$out->mKeywords[] = 'Stargate';
$out->mKeywords[] = 'Stargate SG-1';
$out->mKeywords[] = 'Stargate Atlantis';
$out->mKeywords[] = 'Stargate Universe';
$out->mKeywords[] = 'Stargate Wikpedia';
return true;
}
?>
