Seite 1 von 2

PHP-Syntax-Highlighter

Verfasst: 08.02.2006 02:26
von Bonaparte
Kann es sein, dass bei dem Mod etwas fehlt? Ich habe alles 1:1 übernommen, es funktioniert aber nicht. Woran kann das liegen?

http://www.phpbb.de/moddb/mod.php?id=BBCode_PHP_Tag

Verfasst: 08.02.2006 09:51
von punkface
Hallo

Der MOD kann gar nicht funktionieren, weil beim speichern eines Beitrags gar nicht die bbcode_uid in die BBCode-Tags eingefügt wird.

...

Du könntest mal folgendes machen:

bbcode.php
suche

Code: Alles auswählen

	// [code] and 
for posting code (HTML, PHP, C etc etc) in your posts.
$text = bbencode_first_pass_pda($text, $uid, '', '', true, '');[/code]
danach einfügen

Code: Alles auswählen

	// [PHP] and [/PHP] for posting code (HTML, PHP, C etc etc) in your posts.
	$text = bbencode_first_pass_pda($text, $uid, '[php]', '[/php]', '', true, '');
Auch wenn es funktioniert weiss ich nicht ob das so ausreicht, also meld dich mal bitte per PN beim MOD Autor.

Verfasst: 08.02.2006 14:32
von webmaster128
Danke, ein Update wird in kürze folgen

Verfasst: 08.02.2006 14:51
von webmaster128
Vielen Dank punkface, hatte vergessen diesen Teil mit aufzuschreiben

Bugfix steht zum Download bereit

http://www.phpbb.de/moddb/BBCode_PHP_Tag

mfG

webmaster128

Verfasst: 08.02.2006 15:24
von Bonaparte
Super, danke, es funktioniert.

Eine Frage hätte ich noch.

Wenn man folgenden Code Schreibt

Code: Alles auswählen

<?php
echo "Hello World";
?>
wird es durch das hier ersetzt

Code: Alles auswählen

<?php
echo "Hello World";
?>
Im Mod selbst habe ich nichts dergleichen gesehen, warum kommt es aber dazu?

Verfasst: 08.02.2006 15:27
von webmaster128
Das macht der PHP-Highlighter automatisch....müsste noch geändert werden

Verfasst: 08.02.2006 15:33
von webmaster128
Okay, danke 1.0.2 is draußen^^

-> http://www.phpbb.de/moddb/BBCode_PHP_Tag

Verfasst: 08.02.2006 16:19
von Bonaparte
keine bange, gleich kommt 1.0.3 ;)

so wie ich verstanden habe, sind folgende zeilen dafür verantwortlich.

Code: Alles auswählen

if ( substr($after_replace, 0, 2 ) != '<?' ) {
			$after_replace = "<?\n" . $after_replace;
		}
		
		if ( substr($after_replace, -2 ) != '?>' ) {
			$after_replace = $after_replace . "\n?>";
		}
es kommt vor, dass man auch <?php eingibt und nicht nur <? somit wird es doppelt ausgegeben. jetzt habe ich das hier dazwischen eingefügt:

Code: Alles auswählen

else if ( substr($after_replace, 0, 2 ) != '<?php' ) {
			$after_replace = "<?php\n" . $after_replace;
		}
und wollte sicher gehen, dass man das auch so machen kann/ darf.

Verfasst: 08.02.2006 16:26
von webmaster128
Ja das kann man machen, ist aber garantiert sinnlos, da wenn der code mit
<?php anfängt tritt die in garnicht ein, weil die ersten beiden zeichen ebenfalls <? sind und damit keine änderung notwendig ist

Verfasst: 08.02.2006 16:36
von Bonaparte
ok, ich habe da etwas verwechselt

wenn der code folgendermaßen eingegeben wird

Code: Alles auswählen

[php]<?php
echo "testdf";
?>[/php]
dann ist alles i.o

anders ist es bei diesem hier

Code: Alles auswählen

[php]
<?php
echo "testdf";
?>
[/php]
das ist die ausgabe
1 <?
2
3 <?php
4 echo "testdf";
5 ?>
6
7 ?>
deshalb habe ich auch den letzten beitrag geschrieben