computino.de Webservice > TYPOlight-CMS Tipps und Hilfe > TYPOlight-Plugins: auf SyntaxHighlighter Version 2.0 wechseln

TYPOlight-Plugins: auf SyntaxHighlighter Version 2.0 wechseln

Mit dem in TYPOlight integrierten dpsyntax lassen sich Programmiercode und -Bruchstücke zur Programmiersprache passend darstellen. Dazu kommen ein paar nette Funktionen wie die automatische Nummerierung, eine Möglichkeit den Code direkt in die Zwischenablage zu kopieren und zu drucken. Da die Darstellung stark bearbeitet wird gibt es auch eine Klartext-Anzeige um den Code unverändert zu sehen.

Mit der neueren Version 2.0 (aktuell 2.0.296), die auf der Webseite des Erstellers kostenlos zum Download angeboten wird wurde die Darstellung deutlich übersichtlicher, die Syntaxhervorhebung schneller und einfacher. Um in TYPOlight die neue Version einzusetzen sind folgende Schritte nötig:

  1. plugins/dpsyntax die alten durch die neuen Dateien ersetzen
  2. Template ce_code.tpl anpassen
  3. modules/frontend/ContentCode.php anpassen

Die Updates in der ContentCode.php sind so nicht update-sicher, der Umbau ist vor allem zu Testzwecken gedacht.

1. die Plugin-Dateien ersetzen

Die neue Version unter http://alexgorbatchev.com/wiki/SyntaxHighlighter:Download herunterladen. Den Ordner plugins/dpsyntax leer machen und die beiden Ordner scripts und styles aus dem Download dort ablegen.

2. das Template ce_code.tpl anpassen

Im Template muss nur die Zeile anpasst werden, die mit <pre anfängt, die komplette Zeile (der Übersichtlichkeit zuliebe umgebrochen):

<pre id="<?php echo $this->preId; ?>" 
  class="brush:<?php echo $this->preClass; ?>;">

3. modules/frontend/ContentCode.php anpassen

Die geänderten plugin-Dateien mit von der Vorversion abweichenden Pfaden müssen natürlich auch eingebunden und aufgerufen werden.

// Add scripts
$GLOBALS['TL_CSS'][] = 'plugins/dpsyntax/styles/shCore.css';
$GLOBALS['TL_CSS'][] = 'plugins/dpsyntax/styles/shThemeDefault.css';
$GLOBALS['TL_JAVASCRIPT'][] = 'plugins/dpsyntax/scripts/shCore.js';
$GLOBALS['TL_JAVASCRIPT'][] = 'plugins/dpsyntax/scripts/' . $arrMapper[$this->highlight] . '.js';
//$GLOBALS['TL_HEAD'][] = '<!--[if IE]><link rel="stylesheet" href="plugins/dpsyntax/iefixes.css" type="text/css" media="screen" /><![endif]-->';
$GLOBALS['TL_HEAD'][] = '<script type="text/javascript">SyntaxHighlighter.config.clipboardSwf = \'plugins/dpsyntax/scripts/clipboard.swf\'; SyntaxHighlighter.all();</script> ';

Der Umbau ist auch auf computino.de vorgenommen worden und funktioniert rundum, gerade bei vielen Codeblöcken oder viel Code ist die formatierte Darstellung (subjektiv) deutlich schneller als das mitgelieferte dpsyntax 1.5. Bei ausreichend Interesse wird der Ersatz als Erweiterung im TYPOlight Extension Repository veröffentlicht (damit die Änderungen updatesicher und bequem übernommen werden können).