Benutzer:Rene/SGHtml: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
Aktueller Code
Aktueller Code: Version 0.5
Zeile 25: Zeile 25:
$wgExtensionCredits['other'][] = array(
$wgExtensionCredits['other'][] = array(
   'name' => 'SGHtml',
   'name' => 'SGHtml',
   'version' => '0.1',
   'version' => '0.5',
   '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',
   'description' => 'MediaWiki Html veraendern um StargateWiki Besonderheiten einzufuegen<br />1. Externe Seiten in eigenem Fenster<br />2. Bild als bearbeiten-Link<br />3. Link zum Seitenanfang'
   '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'
);
);


Zeile 50: Zeile 50:
     $ersatz .= '":"").';
     $ersatz .= '":"").';
     $ersatz .= '"<span class=\"mw-headline\">$4</span> <a href=\"$2\" title=\"$3\">';
     $ersatz .= '"<span class=\"mw-headline\">$4</span> <a href=\"$2\" title=\"$3\">';
     $ersatz .= '<img src=\"/skins/edit.png\" alt=\"[bearbeiten]\" style=\"vertical-align:top; margin-top:-3px;\" /></a>"';
     $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);
     $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;
     return true;
}
}

Version vom 22. September 2007, 15:38 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
Cool sieht's aus!! --Salmalin 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)

^Aktueller Code

Dieser Code ist noch in der Entwicklung und wird momentan nur im Backup des Wikis 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"'
    );
	
    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;
}

?>