mod_parser

Diskussion zu nicht so umfangreichen Modulen und Start-Up für neue Module. Ansonsten bitte die speziellen Kategorien benutzen!
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

mod_parser

Beitrag von Mr. Magpie »

Markus Rösel hatte im Mai 2007 unter dem Titel

"Verschachtelte ifsets/ifnotsets und neu: ifvalue"

hier einen neuen, alternativen Parser für ConPresso vorgestellt.

Nun haben wir Markus überzeugen können, diesen "Enhanced Parser" weiter zu entwickeln und ihn kostenlos allen Interessenten zur Verfügung zu stellen.

Zum Verständnis hier ein Auszug aus Markus' Beschreibung:

Für komplexe Anwendungen stellen sich mit dem in ConPresso integrierten Parser einige Probeme, die durch den "verbesserten" Parser gelöst werden sollen:

1. ifSets und ifNotSets lassen sich korrekt und mehrfach verschachteln
2. Fehler bei der Templateerstellung werden analysiert
3. Neue Bedingungen:
  • * ifValue - erlaubt die Prüfung auf bestimmte Werte mit >, <, = etc.
    * ifFirst und ifLast erlauben die spezielle Behandlung des ersten und letzten Artikels auf einer Seite

4. Umfangreiche Debugging-Funktionen (strukturierte Darstellung, Dokumentation des Parsing-Prozesses)

Trotz der neuen Funktionen ist der Parser vollständig kompatibel zu jeder original ConPresso-Installation. Wird der Original-Parser ersetzt, verhält sich das System wie zuvor und alle Anwendungen wie Module werden weiterhin korrekt laufen.


Die aktuelle Anleitung und Beschreibung findet ihr hier: http://manual.conpresso4.de/_rubric/ind ... rser_index

Feedback erwünscht, ja erwartet!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Günther Ludwig
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

ifNotvalue

Beitrag von hscha »

Hallo,

mod_parser (neu) läuft bislang prima auf meinen Seiten! Ich habe inzwischen auch Verschachtelungen über 3-4 Ebenen eingebaut, die zuverlässig interpretiert werden.
Heute ist mir aufgefallen, dass neben <!-- ifvalue --> auch ein <!-- ifNotvalue --> nützlich wäre :idea: , um z.B. ein Nichtsetzen einer Auswahl von Werten einbauen zu können.
<!-- iffirst --> und <!-- iflast --> sind einfach genial für eine zuverlässige Tabellengenerierung!

Grüße aus Berlin von
Horst
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Der Vergleichsoperator != (vgl. http://manual.conpresso4.de/_rubric/ind ... pplication ) reicht dir nicht?
Günther Ludwig
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Magpie,
Der Vergleichsoperator != reicht dir nicht?
O.K., du hast gewonnen. Den hatte ich glatt überlesen! :oops: Das, was ich vorhabe, lässt sich damit machen!

Danke!

Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

Nachdem sich zeigt, daß ConPresso 4.1.x bei Benutzung von Seitentemplates inkompatibel zu mod_parser ist, habe ich eine angepasste RC3 erstellt, die es bitte zu testen gilt.

In dieser ist auch die Verknüpfung von Bedingungen mittels || und && realisiert, also z.B <!-- ifSet: PLZ && Ort; --> aus
http://community.conpresso.de/viewtopic ... 5597#25597

Das Archiv enthält nur die Datei parser.php, die ins _include-Verzeichnis von ConPresso gehört.

Bitte in Verbindung mit ConPresso 4.1.1 testen!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Markus,
bei meinen ersten Tests hat alles funktioniert, auch die Debugging-Ausgabe!
Dazu zwei Fragen:
1) Ist die neue parser-Version auch für 4.0.9 anwendbar?
2) Muss die Änderung in _admin/templates.php noch durchgeführt werden?

Vielen Dank für deine Problemlösungen!

Grüße aus dem endlich sonnigen
Berlin von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

zu 1.) ja (es ist der 4.0.9-Parser mit ein paar neuen Zeilen)
zu 2.) ja (wenn man Wert auf das Highlighting in den Templates legt. Ich selbst mache das nicht, daher reicht es für mich alles auf den Server zu kopieren...)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

iffirst funktioniert nicht

Beitrag von hscha »

Hallo Markus,

ich habe heute versucht, mit CPO 4.1.2 und mod_parser den bedingten Platzhalter <!-- iffirst -->Ausgabetext<!-- /iffirst --> anzuwenden.
Leider wird auch beim ersten Artikel (Sortierung: manuell) kein Ausgabetext ausgegeben.

Im Debug-Modus des Parsers sieht alles normal aus, nur dass der Ausgabetext fehlt. Es scheint, dass der Parser nicht erkennen kann, welches der erste Artikel ist.

Liegt das am neuen CPO 4.1.2 oder an mir :lol:

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

Ich habe es gerade mal gegencecheckt und konnte keine Probleme feststellen.

Code: Alles auswählen

<!--iffirst -->Anfang
<table border="1"><!-- /iffirst -->
<tr><td>Tabellenzeile</td></tr>
<!--iflast --></table>
Ende<!-- /iflast -->
gibt mit 3 Artikeln korrekt eine Tabelle in der Form

Code: Alles auswählen

Anfang
<table border="1">
<tr><td>Tabellenzeile</td></tr>
<tr><td>Tabellenzeile</td></tr>
<tr><td>Tabellenzeile</td></tr>
</table>
Ende
aus.

Hast Du das Template denn auch benutzt?
Ist es denn wiklich der erste Artikel in der Rubrik oder nur der erste, der dieses Template benutzt?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Markus,

leider klappt es nicht!
Mit <!-- iffirst --> verschwindet der Ausgabetext, mit <!-- iflast --> wird er in jedem Artikel ausgegeben (was ich gerade vermeiden wollte).

Das Template wird in allen drei Artikeln der Rubrik benutzt. Die Sortierung ist auf "manuell" eingestellt.

Ich sende dir die Zugangsdaten zur Website per PM, falls du näher drübergucken möchtest...

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

Tja... entweder am Sever stimmt was nicht oder Du hast da selbst was zerschossen ... oder natürlich ein Fehler am Parser, der eben nur bei Deinem System auftritt.

Was ist denn iss-postparsing.inc.php?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Markus,

die postparsing.inc.php enthält diesen Code:

Code: Alles auswählen

$template_datei = str_replace($inlineReplace,$inlineContent,$template_datei);
Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 104 Mal
Danksagung erhalten: 919 Mal

Beitrag von MarkusR »

Schön, aber wie kriegen wir jetzt raus, warum das bei Dir nicht funktioniert?
Die Teile werden ja alle korrekt erkannt und abgearbeitet. Nur bei iffirst und iflast stimmt was nicht.
Bei meinen Test funktioniert das problemlos.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Markus,
ich muss dieses Problem leider zurückstellen, weil ich bis zum 19. Juli nicht da bin. Ich melde mich dann wieder hier...

Vielen Dank und Grüße von
Horst
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 573
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 202 Mal
Danksagung erhalten: 19 Mal

Beitrag von hscha »

Hallo Markus,
da bin ich wieder und habe eine Vermutung, woran es liegen könnte:
Innerhalb von <!-- iffirst --> binde ich über einen Platzhalter eine andere Rubrik ein, wie in http://community.conpresso.de/viewtopic ... c&start=75 diskutiert.
Dadurch könnte die Artikel-Zählung durcheinander kommen. Ich müsste wahrscheinlich die entsprechende Variable am Anfang des Skripts auslesen und am Ende zurückschreiben.
Wenn ich wüsste, welche Variablen <!-- iffirst -->/<!-- iflast --> nutzen, könnte ich das ausprobieren.

Grüße von
Horst