Verschachtelte ifsets/ifnotsets und neu: ifvalue

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Willst Du den Deal machen?

Ich habe da eine Idee, die aber PHP 4.3.0 voraussetzt, also etwas über den Standard-ConPresso-Anforderungen liegt.
Zur Not könnte man das sicher auch umgehen... aber hat einer ältere Versionen?
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Okay, von mir aus steht der Deal!
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Bestens!

Dauert aber ein paar Tage, bis ich es ausgeklügelt habe.

Soll die Plausibiltätsprüfung (Verschachtelung) wieder rein?
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Plausibilitätsprüfung darf so sein wie zuletzt gehabt.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Da der sequentielle Parser recht gut zu funktionieren scheint, habe ich neben ein paar Debug-Funktionen noch etwas eingebaut, was dem ConPresso-Parser schon immer fehlt: Eine Möglichkeit den ersten und letzten Artikel einer Seite anders zu gestalten, um z.B. tabellarische Darstellungen zu ermöglichen.
Das habe ich jetzt mit einem einfachen iffirst und iflast eingebaut.
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:[...]Eine Möglichkeit den ersten und letzten Artikel einer Seite anders zu gestalten, um z.B. tabellarische Darstellungen zu ermöglichen.
Das habe ich jetzt mit einem einfachen iffirst und iflast eingebaut.
8) 8) 8)
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Die sequentielle Auswertung ermöglicht "human readable" Analysen und erzeugt nebenbei Darstellungen wie die folgende.

(hierfür habe ich mal eines meiner Monster-Templates eingesetzt...)
Dateianhänge
structure.png
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

nett!
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Und wenn wir schon den Parser umkrempeln, dann kriegt er noch die längst fällige Post-Parser-Schnittstelle, mit denen Modifikationen und Module wie
- hide_emails
- mod_imagesize
- html-entity-Umwandlung
etc. den vom Parser erzeugten Code nochmal umkrempeln können.
Das spart weitere Eingriffe...

Muß nur noch drüber nachdenken, was da alles zu beachten ist...
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Wär's nicht besser erst einmal mit wenigen, kleineren Schritten zu beginnen?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Rechtzeitig zu Weihnachten gibts Geschenke aus Aichtal bei Stuttgart von amazingbytes :!:

Nach einigen Tests und noch ein paar Modifikationen gibt es ein öffentliches Release Candidate des neuen Parsers :!:

Dieser Parser arbeitet vollständig sequentiell, also so wie der Ersteller eines Templates seine Arbeit versteht.

Neu zum bisherigen Errorhandling sind Debugging-Funktionen hinzugekommen, die grundsätzlich nur Superuser und Admins zu Gesicht bekommen (weil kein anderer die Templates modifizieren und somit Fehler machen kann).
Ob und welche angezeigt werden lassen sich über das Backend einstellen.

Es gilt also neben dem Kopieren des Archivinhalts ins ConPresso-Verzeichnis auch das zugehörige Modul zu installieren! Ohne Installation funktioniert der Parser auch schon, nur lassen sich die Debugging-Funktionen nicht nutzen...

Zusätzlich lassen sich einfach weitere Dateien am Ende des Parsing-Prozesses einbinden... hide_emails wird mitgeliefert...
Dateianhänge
... Pop-Up-Fenster mit den gewählten Debugging-Informationen (verschiedene Arrays, Strukturen, Parsing-Ergebnisse, ggf. für jeden Level getrennt)
... Pop-Up-Fenster mit den gewählten Debugging-Informationen (verschiedene Arrays, Strukturen, Parsing-Ergebnisse, ggf. für jeden Level getrennt)
Bei aktiviertem Debugging erscheint an jedem Artikel ein Debugging-Feld. Durch Anklicken erhält man ein...
Bei aktiviertem Debugging erscheint an jedem Artikel ein Debugging-Feld. Durch Anklicken erhält man ein...
Die Einstellungen im Backend (verfügbar nach Installation als Modul)
Die Einstellungen im Backend (verfügbar nach Installation als Modul)
settings.png (8.63 KiB) 8759 mal betrachtet
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
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Und hier nun das Archiv, dessen Inhalt ins ConPresso-Verzeichnis kopiert werden muß (also die Verzeichnisse _include (enthält den Parser) sowie mod_parser (enhält das Modul)).
Danach wie gewohnt das Modul installieren und aktivieren.

Handbuch folgt, wenn alles wie gewünscht funktioniert.

Daher: gebt Feedback oder es bleibt so wie es ist.
Dateianhänge
mod_parser_enhanced_RC2.zip
(11.46 KiB) 465-mal heruntergeladen
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
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Zunächst an dieser Stelle noch einmal vielen herzlichen Dank an Markus dafür,
dass er sich bereit erklärt hat, den Parser weiter zu entwickeln.

Unsere ersten Tests waren durchweg positiv und uns fällt momentan nichts ein,
was noch verbessert werden müsste. Aber viele Augen sehen mehr und vielleicht
verhalten sich andere Systeme unterschiedlich.
Deshalb: Bitte testet den Enhanced Parser und gebt bitte Feedback.
Wir freuen uns über jede Anregung und natürlich auch über eure Fragen.


Um alle Features des Enhanced Parsers nutzen zu können, muss auch noch eine kleine
Anpassung an ../_admin/templates.php erfolgen.
In dieser Datei findet man (nach Zeile 370):

Code: Alles auswählen

<?php
array('/<!--\s*(file|html|image|text|url|value|ifset|ifnotset)\s*:.*?-->/si', '/<!--\s*\/(ifSet|ifNotSet)\s*-->/si'), 
?>
Diese Zeile sollte ersetzt werden durch:

Code: Alles auswählen

<?php
array('/<!--\s*(file|html|image|text|url|value|ifset|ifnotset|ifvalue|iffirst|iflast)\s*:*.*?-->/si', '/<!--\s*\/(ifSet|ifNotSet|ifvalue|iffirst|iflast)\s*-->/si'),
?>
Auch wer den früheren "Neuen Parser" schon einsetzt, sollte die entsprechende
Zeile durch die neue Version ersetzen.
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Mr. Magpie hat geschrieben: Auch wer den früheren "Neuen Parser" schon einsetzt, sollte die entsprechende
Zeile durch die neue Version ersetzen.
Soll natürlich heißen, nach dem Update auf den obigen Enhanced Parser. Aber das sollte ja klar sein :wink:
Günther Ludwig
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 12:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

MarkusR hat geschrieben:Daher: gebt Feedback oder es bleibt so wie es ist.
__lol__
danke, da kommen ja gleich mehrere Weihnachtsgeschenke fast zeitgleich -- neben deinem Parser auch noch cpo2.9 mit englischer Hilfe. Ich bin begeistert, und nach rund einem Jahr cpo-Abstinenz kommt das gerade richtig.

Ich werde es in meinen beiden naechsten Projekten testen und berichten.

Ciao, Gerhard
Antworten