jetzt steht ich auf der leitung... snapshot gerne nur welches doc als html ?timo hat geschrieben:Soll ich dir heute abend nen Snapshot hinlegen? Ich hab dir das Doc als HTML gebastelt.
function modTestModule 4.3.2.1b
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Mir persönlich wäre es am liebsten, wenn die CMS_VALUE-Sachen direkt als PHP-Variable eingebaut würden -> daß man im Modul z.b. mitemergence hat geschrieben:ich würde diese konstruktion verwenden (welche momentan definitiv nicht geht)
<?php
$value = CMS_VALUE[1];
echo "CMS_IMG[".$value."]";
?>
$CMS_VALUE[$var2]
darauf zugreifen könnte. Ich werd mal mit dem Jan darüber sprechen, ob das machbar wäre: Wäre mir dann am symphatischsten
sieht intressant aus, jedoch damit habe ich an sich kein problem gehabt.timo hat geschrieben: mit $CMS_VALUE[$var2]
darauf zugreifen könnte. Ich werd mal mit dem Jan darüber sprechen, ob das machbar wäre: Wäre mir dann am symphatischsten
da diese werte bevor das modul output erzeugt wird ja sowieso ersetzt werden. (eine überschneidung der werte kanns ja dann durchaus geben pro container -> was mir auch immer egal war)
mir wäre wichtiger, dass eine konstruktion wie
CMS_IMG[$value] im output bereich funktionieren würde...
sonst hat man immer das problem mit dem modul kopieren...
man könnte damit relativ simpel auch eine art sagen wir mal eine art containersystem für seiten layouts machen. (zB: das modul der artikel sprengt irgendwie meine vorstellung von eleganter umsetzung dieser funktionalität)
mit diesem feature ausgestattet, könnte man wirklich jede spielerei simpelst umsetzen. -> der vorteil dieser methode wäre zusätzlich noch das die alten module alle noch laufen würden.
eine änderung von CMS_VALUE auf $CMS_VALUE[$var2] wird jede menge modul umstellungen benötigen - ein update oder upgrade auf ne neuere version wird dann etwas schwierig... -> diese funktionalität mit ner neuen variable (zb CMS_DYNVALUE) einzuführen birgt weniger risken.
ich hab mir jetzt mal die funktionsweise von input , output genau angesehen... und bin zum schluss gekommen das die verschachtelten konstruktionen (das sie möglich sind) kein bug ist...
begründung: (das wird ein super satz !!)
sämtliche CMS_VALUE werte im input werden mittels replace sowieso im output bereich ersetzt bevor die con_type werte ersetzt werden !
was nicht geht -> und womit du recht hast -> und was wirklich nicht gehen darf -> ist eine syntax wie CMS_VALUE[CMS_VALUE[1]]
was auf grund der umsetzung gehen muss (und auch geht) -> CMS_TEXT[CMS_VALUE[1]]
sämtliche CMS_VALUE werte werden auf gut deutsch nur für search und replace verwendet !
wenn ihr das ändern wollt viel spass
was meinst du dazu ?
begründung: (das wird ein super satz !!)
sämtliche CMS_VALUE werte im input werden mittels replace sowieso im output bereich ersetzt bevor die con_type werte ersetzt werden !
was nicht geht -> und womit du recht hast -> und was wirklich nicht gehen darf -> ist eine syntax wie CMS_VALUE[CMS_VALUE[1]]
was auf grund der umsetzung gehen muss (und auch geht) -> CMS_TEXT[CMS_VALUE[1]]
sämtliche CMS_VALUE werte werden auf gut deutsch nur für search und replace verwendet !
wenn ihr das ändern wollt viel spass
was meinst du dazu ?
okay, der letzte bug den ich jetzt noch rausgekickt habe betrifft ersetzungen von ]] durch ein einzelnes ]
reguläre ausdrücke sind wirklich genial sobald man sie mal verstanden hat
zusätzlich hab ich die verschachtelung jetzt korrigiert so das sie korrekt funktioniert...
der alte code:
fliegt komplett raus...
der neue code übernimmt die komplette funktionsweise + behebt den bug mit ]] bei anderen verschachtelten funktionen...
folgendes -> dies ist jetzt wirklich nur dafür gedacht das konstruktion wie
funktionieren
die ziffern vor und nach CMS_VALUE[1] sind optional, können aber mehrfach vorkommen !!
der ersetzte code sieht dann nur mehr so aus: zb
CMS_IMG[1CMS_VALUE[2]3] -> CMS_IMG[123]
für pos 1 und pos3 buchstaben einzugeben wird als fehler ausgewiesen !!
lg
reguläre ausdrücke sind wirklich genial sobald man sie mal verstanden hat
zusätzlich hab ich die verschachtelung jetzt korrigiert so das sie korrekt funktioniert...
der alte code:
Code: Alles auswählen
$code = str_replace('[CMS_VALUE[','[', $code);
for ($i = 0; $i < 10; $i++) {
$code = str_replace('['.$i.'CMS_VALUE[','['.$i, $code);
}
$code = str_replace(']]',']', $code);
der neue code übernimmt die komplette funktionsweise + behebt den bug mit ]] bei anderen verschachtelten funktionen...
Code: Alles auswählen
$code = preg_replace(',\[(\d+)?CMS_VALUE\[(\d+)\](\d+)?\],i', '[\1\2\3]', $code);
Code: Alles auswählen
<?php echo "<img src=\"CMS_IMG[CMS_VALUE[2]]\" border=\"0\">"; ?>
<?php echo "<img src=\"CMS_IMG[1CMS_VALUE[2]]\" border=\"0\">"; ?>
<?php echo "<img src=\"CMS_IMG[CMS_VALUE[2]3]\" border=\"0\">"; ?>
die ziffern vor und nach CMS_VALUE[1] sind optional, können aber mehrfach vorkommen !!
der ersetzte code sieht dann nur mehr so aus: zb
CMS_IMG[1CMS_VALUE[2]3] -> CMS_IMG[123]
für pos 1 und pos3 buchstaben einzugeben wird als fehler ausgewiesen !!
lg