Page 1 of 1

CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 14:27
by phalancs
Hat jemand schonmal versucht, Syntax Highlighting für PHP mit dem CP Code zu realisieren?

Es gibt ja zwei Funktionen von PHP für die Darstellung, hat sich jemand damit schonmal genauer auseinandergesetzt? Der Code müsste dabei in eine Variable kommen und dann an die Funktion übergeben werden. Leider muss man dann ja darauf achten, dass nicht noch zusätzliche ' " ' auftauchen. Ich möchte aber meine Codes nicht noch umständlich nachbearbeiten.

GIbts nicht ne einfachere CSS Lösung?

Danke!

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 15:26
by phalancs

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 15:52
by update
Und wie genau hast Du's gemacht?

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 19:55
by Oliver Georgi

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 20:17
by update
Holla die Waldfee :)
Ochottochottochott wird mir schwindelich ;)

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 20:23
by update
...und danke! :D

Re: CP Code - Syntax Highlighting PHP

Posted: Sat 7. Apr 2012, 23:30
by phalancs
Wow, jetzt ist mir Olli zuvorgekommen. Hatte grad auch son Package in der mache! Danke für die viele Berücksichtigung der Ideen momentan :D

Re: CP Code - Syntax Highlighting PHP

Posted: Sun 8. Apr 2012, 09:37
by juergen
Man traut sich ja schon nimmer aus dem Haus nur um nichts zu verpassen ;)

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 14:49
by phalancs
OKay, also ich habe es nur über den HTML CP gemacht, da der CODE CP nach jeder Zeile ein "<br>" einfügt (ich glaube durch den nl2br Befehl). Dieses BR wird dann leider im Frontend dargestellt und macht den gehighlighteten Code kaputt.

Workaround ist wie gesagt, einfach die tmpl Datei in das template/inc_cntpart/html zu verschieden und den HTML CP zu verwenden.
Ach ja, wenn man PHP highlighten möchte, muss man statt brush: js brush: php schreiben (in der Template-Datei).

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 16:25
by flip-flop
.... und

Code: Select all

<!-- JS: {TEMPLATE}lib/syntaxhighlighter/shBrushPhp.js -->
einsetzen.

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 16:50
by pepe
Also... dieses blöde <br> was da im Code am Zeitenende automatisch generiert wird....
das sollte doch eigentlich nicht erscheinen, oder?


Bei der Gelegenheit gleich mal nachgefragt:

Eine Sache, die ich vom 1. Tag mit phpwcms an immer verflucht habe, dass im ContentPart Code grundsätzlich die phpwcms eigenen RTs "interpretiert" werden...

Die Rettung war meist ein zusätzliches Leerzeichen oder ein Workaround per {{SPACER:1x1}REPLACEMENT_TAG} ....
erheblicher Mehraufwand und beim Kopieren immer der Ärger, dass die Spacer-Grafik mit im Code hing, was manchen Anfänger beim "Abschreiben" vor unlösbare Probleme gestellt hat!

Genau in diesem ContenPart CODE aber, der zur Darstellung von Programm-Code gedacht ist, sollte doch genau das 1/1 ausgegeben werden, was ich eintrage und nicht "interpretiert"... sonst macht dieser CP doch wenig Sinn.

Oder hab ich was falsch verstanden?

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 17:32
by flip-flop
Ich finde das zwar auch nicht toll das diese Zeilenumbrüche eingemischt werden aber das kann ja mittlerweile mit einem CP Trigger recht einfach behoben werden.
Datei: template/inc_script/frontend_init/cp_trigg_code_no_br.php

Code: Select all

<?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> den TAG [%NoBR%] verstecken, damit der Trigger weiß dass er gemeint ist.

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 17:40
by pepe
Danke, das umgeht den Fehler...
wenn auch eine "Lösung", die funktioniert, aber doch wohl am falschen Ende angepackt, oder?

Macht nix, besser als keine Lösung und deshalb nochmals, danke für das Script :D


Aber:
Werden damit nicht ALLE <br / rausgeworfen?
Auch die, die ich selber reingeschrieben habe, und die natürlich erscheinen sollen?

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 17:54
by flip-flop
Ne, die werde ja in Entities umgeschrieben und stehen nicht als <br /> im generierten Quelltext.

Test das mit dem Script, ändere

Code: Select all

//	 dumpVar($text);
nach

Code: Select all

	 dumpVar($text); 
Nun siehst du was vor dem Aufräumen passiert.

Re: CP Code - Syntax Highlighting PHP

Posted: Tue 10. Apr 2012, 17:59
by pepe
OK... ich hatte es in der Zwischenzeit einfach getestet und sehe... MEINE <br /> bleibem erhalten... so soll es ja auch sein.

( Eigentlich hatte ich auch nichts Anderes von dir erwartet :D )

Danke natürlich, für die Erklärung!