NAVIGATION
Darstellung von Quelltext im FE mit dem CP Code und dem JavaScript SyntaxHighlighter.
Syntax Highlighting ab Version V1.5 r461
Die wichtigsten Highlighter:
Forum: CP Code - Syntax Highlighting PHP
Template: template/inc_cntpart/code/JavaScript-SyntaxHighLighter.tmpl
Bsp.: Darstellung PHP-Code.
[TITLE]<h3>{TITLE}</h3>[/TITLE] [SUBTITLE]<h4>{SUBTITLE}</h4>[/SUBTITLE] [CODE]<pre class="brush: php; ruler: true;"> {CODE} </pre> <!-- CSS: {TEMPLATE}lib/syntaxhighlighter/styles/shCoreDefault.css --> <!-- JS: {TEMPLATE}lib/syntaxhighlighter/shCore.js --> <!-- JS: {TEMPLATE}lib/syntaxhighlighter/shBrushPhp.js --> <!-- JS: SyntaxHighlighter.all(); --> [/CODE]
Die verschiedenen HighLighter werden über das JS eingestellt.
Z.B. für JavaScript:
<pre class="brush: jscript; ruler: true;"> . . <!-- JS: {TEMPLATE}lib/syntaxhighlighter/shBrushJscript.js -->
Die unterschiedlichen HighLighter können im Verzeichnis template/lib/syntaxhighlighter/*.js eingesehen werden.
Der CP Code setzt für jeden Zeilenumbruch automatisch ein <br /> ein. Das JS greift auch diesen nicht zum darzustellenden Quellcode gehörenden HTML TAG auf und interpretiert diesen.
Um das zu vermeiden muss dieses <br /> für die Ausgabe im FE entfernt werden. Dazu kann folgender CP-Trigger (PHP-Script) verwendet werden.
Datei: template/inc_script/frontend_init/cp_trigg_code_no_br.php
<?php // ------------------------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); } // ------------------------------------------------------------------------------------------- /** ********************************************************************************************* * Simple Version 1.0 * 10.02.12 KH: Delete all <br /> from source text in CP code * * File: CP trigger in template/inc_Script/frontend_init/cp_trigg_code_no_br.php * TAG in template for processing: [%NoBR%] ********************************************************************************************* */ function TRIGG_CP_CODE_NO_BR_V1($text, & $data) { // Der richtige CP: code (11) // and Tag available? if ( ($data['acontent_type'] == 11) AND // cp code ( strpos($text, '[%NoBR%]') !== FALSE) ) // TAG is set ? // TAG vorhanden? { // dumpVar($text); $text = str_replace('<br />', '', $text); $text = str_replace('[%NoBR%]', '', $text); } return $text; } register_cp_trigger('TRIGG_CP_CODE_NO_BR_V1'); ?>
Irgendwo im Template zwischen <code>....</code> wird der TAG [%NoBR%] eingetragen, damit der Trigger weiß dass er gemeint ist.