Benutzer:Rene/SGHtml: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
Programmcode: Version 0.6 (MediaWiki 1.12.0rc1)
Weiterleitung nach Benutzer:Rene/SGPack erstellt
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Mediawiki Erweiterung um den HTML-Code vor der Auslieferung noch zu verändern.
#redirect [[Benutzer:Rene/SGPack]]
 
Aktueller Stand Version 0.1
 
*Externe Seiten werden in einem eigenen Fenster aufgerufen
:[[Bild:Okay.gif]]
*Alle Überschriften der Stufe 2 (==) erhalten einen Link auf den Seitenanfang
:[[Bild:Okay.gif]]
::Cool sieht's aus!! [[Bild:Cool.gif]] --{{Benutzer:Salmalin/sig}} 23:40, 17. Sep. 2007 (CEST)
*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)
 
===Vorschau===
Leider greift die Erweiterung nicht bei der Artikel Vorschau. Dieses Problem ist in der Media Wiki Version 1.11.0 bereits behoben. Nicht angezeigt werden dort trotzdem die Bilder zum bearbeiten und der Verweis auf den Artikel Anfang. Der bearbeiten Link macht während der Bearbeitung keine Sinn und wird daher vom System nicht erzeugt. Dadurch entfällt allerdings auch der Verweis-Link, da die Suche der Erweiterung dann die Überschrift nicht erkennt.
 
Eine Änderung ist nicht geplant, da der Aufwand zu groß ist und die Funktion im Vorschaumodus nicht benötigt wird.
 
===Pfeile links/rechts===
In der neusten Version ersetzt die Erweiterung die Pfeile < ~ und ~ > (jeweils ohne Leerzeichen) 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, da diese Zeichenfolge im Text nicht auftauchen dürfte.
 
==Programmcode==
Dieser Code ist noch in der Entwicklung. Er ist bereits vorbereitet auf die MediaWiki Version 1.12.0rc1. Im aktuellen Wiki wird nur eine eingeschränkte Version benutzt.
 
<pre>
<?php
/* Original MediaWiki HTML Code umwandeln und an StargateWiki anpassen */
 
$wgExtensionCredits['other'][] = array(
  'name' => 'SGHtml',
  'version' => '0.6',
  '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&uuml;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&auml;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"',
'&lt;~' => '<img src="/skins/common/images/16x16/blue_left.gif" alt="<-" />',
'~&gt;' => '<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; background-color:#ffe0e0; border: solid 2px #ee9999; padding: 0px 4px;"><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;
}
 
?>
</pre>

Aktuelle Version vom 5. November 2011, 08:46 Uhr

Weiterleitung nach: