Kod szinezo es BBCODE modul

zoliky képe

Irtam egy modult amely a GESHI csomagot hasznalja kod szinezesre.

A Geshi mukodese pofon egyszeru, meg kell hivni egy parameterel es mar szinezi a kodot.

A kod szinezo modulom:

- Amikor eszleli a kovetkezo tag-ot: [geshifilter-code type="php"]<?php print 'ok' ?>[/geshifilter-code] szinezi a kodot.

A regex amely elenorzi a tag-ot:

if (preg_match_all('/\[(code)\stype="([^"]+)"\](.*?)\[\/\1\]/si', $text, $match)) {
}

A modulom egyut mukodik a BBCODE modulal. Itt azt szeretnem megjegyezi, hogy a BBCODE is [] zarojeleket hasznal, es valami belekever a szinezo modulomba, az egesz kodom igy nez ki a kimenetnel:

<br />
<?php<br />
$text = 'abc';<br />
if ($text) {<br />
  print 'ok';<br />
}<br />
?><br />

Nem szeretnem a < br / > tagokat latni. Megprobaltam oket leszurni de nem egy megoldas, mert peldaul HTML hasznalja oket es amikor a felhasznalo szinezi a HTML kodjat nem jelenek meg ezek a tagok.

Azt eszleltem, hogy a hiba akkor kovetkezik ha a szinezo modulom a [] zarojelek hasznlaja. Ha atmodositom a regexet <> zarojelekre minden mukodik. En igazan [] zarojelek szeretnek hasznalni.

Meg lehet valahogy oldani, hogy BBCODE ne kuldjon at furcsa dolgokat a modulomba?

Koszonom!

zoliky képe

Sikerult megoldani a problemat ugy, hogy a modulomnak kisebb sulyt adtam. Eloszor o fut le aztan pedig a BBCODE igy a ketto nem utkozik. Admin-> Input Locales -> Rearrange

Most csak az a kerdes menyire biztos megoldas. Nem akarnam a hajamat tepni a jovoben, ha peldaul eltunik a "suly" opcio en meg beviszek egy csomo

 tagot az adatbazisba.
 
Tudtok valami otletet adni ?
 
Koszonom!
0
0