Verschachtelte ifsets/ifnotsets und neu: ifvalue

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Verschachtelte ifsets/ifnotsets und neu: ifvalue

Beitrag von MarkusR »

Da der Original-Parser von ConPresso so seine Probleme mit verschachtelten ifsets und ifnotsets hat, habe ich mal eine Version geschrieben, die diese brav umgekehrt hierarchisch abarbeitet.

Bei ein paar kleinen Tests funktionierte es wie gewünscht. Falls das jemand mal testen will, um hier ein Feedback abzugeben, kann er den Parser hier downloaden:

http://conpresso4.de/_reg_downloads/ind ... =Downloads

Mein Ziel ist es diese Version noch mit den von mir gewünschten werteabhängigen Bedingungen zu versehen (also sowas wie: <!-- ifvalue: Preis>100; -->), aber das ist noch nicht mit drin...

edit: Titel geändert wegen neuem Feature
Zuletzt geändert von MarkusR am 24.05.2007 08:19, insgesamt 1-mal geändert.
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
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hi Markus,

interessante Lösung. Ich hatte noch nicht genug Zeit, da reinzuschauen, aber auf Anhieb fallen mir folgende Fragen ein:

1. Was passiert, wenn jemand falsch schachtelt: <!-- ifSet ... --> <!-- /ifNotSet ... -->

2. Was passiert, wenn jemand ein ifSet nicht schliesst? Eventuell $taglevel auf > 0 prüfen und keine Aktion durchführen oder einen Hinweis ausgeben?

3. Hab ich vergessen, weil so viele Anrufe zwischendurch kamen :-/ - fällt mir später vielleicht wieder ein.

Balu
Bartels.Schöne
ConPresso Support & Development
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

zu 1.) der kriegt bei mir eine kostenpflichtige Schulung :wink:

zu 2.) das gleiche wie beim Original... nichts!

Ich habe auch schon über irgendeine Prüfung nachgedacht, aber angesichts der endlos vielen Fehler der User, auf die ich niemals kommen würde kann auch keine Prüfung alle Möglichkeiten erfassen.
Aber eine einfach Prüfung auf korrekte Reihenfolge kriege ich vielleicht noch hin... :roll:
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 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo Markus,

das klingt sehr vielversprechend!! Das bringt uns und Conpresso ein großes Stück weiter - wenn's die Leute vernünftig einsetzen! Aber das wird man sehen...

Einen Riesendank aus Aichtal (b. Stuttgart) von uns!

2010-01-17 UPDATE: Ich habe Markus überzeugen können, den "Enhanced Parser" weiter zu entwickeln und jedem Interessierten kostenlos zur Verfügung zu stellen. Das Ergebnis kann sich sehen lassen.

Den Download des RC2 findet ihr hier: http://community.conpresso.de/viewtopic ... 5411#25411

Eine Anleitung und Beschreibung hier: http://manual.conpresso4.de/_rubric/ind ... rser_index
Zuletzt geändert von Mr. Magpie am 17.01.2010 17:55, insgesamt 1-mal geändert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

Ich habe nochmal eine neue Version hochgeladen.

Diese prüft entsprechend der Hierarchie alle Verschachtelungen und gibt entsprechende Meldungen aus.

Außerdem ist das if-tag ifvalue jetzt mit dabei! :P

Anwendungsbeispiele:

Bei einem Preis über 100 Euro soll ein text ausgegeben werden.
<!-- ifvalue: Preis>100 -->Das ist aber teuer!<!-- /ifvalue -->
Das lässt sich auch verschachteln um z.B. Preisspannen auszuwerten.

Auf einer Downloadseite können vom Redakteur bis zu 3 Downloads angegeben werden. Da diese aber als Word, Excel, PDF, ZIP und DXF Format vorliegen können und immer das entsprechende Icon erhalten sollen, müßten 15(!) File-Platzhalter eingebaut werden.
Mit ifvalue gibt man einfach den Dateityp an und lässt das entsprechende Icon setzen, also z.B.<!-- ifvalue: Dateityp=PDF-Datei --><img src="pdf.gif"><!-- /ifvalue><!-- ifvalue: Dateityp=Word-Dokument --><img src="doc.gif"><!-- /ifvalue>...[etc.]...<!-- File: Datei; -->
Man braucht also immer nur 3 Dateifelder bei der Artikelerfassung. Den Dateityp kann man problemlos mit einem Dropdown aus mod_text auswählen.

Werte können mit =, >, <, !=, <= und >= geprüft werden. Die zu prüfenden Felder müssen Textfelder sein (alle anderen machen aus meiner Sicht keinen Sinn).


...und jetzt wo ich das schreibe denke ich man könnte auch gut auf Datumswerte mit einem ifdate Prüfungen machen und möglicherweise noch ein Berechnungs-Tag in der Form Brutto: <!-- expr: Netto*1,19; 2; --> Euro erfinden... :idea:
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 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Markus, du solltest deinen Titel ändern: von "Handbuchversteher" zu "Benutzerversteher"
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

Ich bin doch selbst Benutzer... (aber manchmal verstehe ich mich selbst nicht :mrgreen: )

Jetzt wäre natürlich ein Feedback der Tester ganz hilfreich... :oops:
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
Eichi
ConPresso-Checker
Beiträge: 133
Registriert: 17.08.2005 13:14
Hat sich bedankt: 24 Mal
Danksagung erhalten: 8 Mal

Beitrag von Eichi »

Wenn ich mal entsprechendes umsetzen möchte/muss, werd ich es probieren.

Leider fällt mir vor Schreck garnichts ein, wo ich den Parser einsetzen könnte. :roll:
pixel&leben - Er fand einen neuen Kunstbegriff - damals, als er Kunst begriff.
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 »

sobald ich heute Abend wieder etwas Luft habe, werd' ich's selbstverständlich austesten - mindestens eine Anwendung habe ich ja schon, wie du weißt 8-)
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 »

... von wegen heut' Abend :? ... hat jetzt doch 'ne geschlagene Woche gedauert bis ich's austesten durfte - erst war der Cheffe dagegen (keine Zeit! wie immer) dann der Kunde ("too risky und überhaupt, geht doch auch so..."), aber bei einer ersten Testinstallation konnte ich keine Probleme feststellen, im Gegenteil: funzt 1A!!
Benutzeravatar
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 13:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

Mr. Magpie hat geschrieben:Markus, du solltest deinen Titel ändern: von "Handbuchversteher" zu "Benutzerversteher"
oups,
dieses "danke" von mir war ein beitrag zu tief ... galt markus --- aber auch danke an magpie fuer's testen
gruss, gerhard
Benutzeravatar
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Beitrag von Marky »

ich hätte da aber noch was ...

Also erst ist mir diese Meldung aufgefallen :gruebel:

Code: Alles auswählen

Warning: max() [function.max]: Array must contain atleast one element in /www/htdocs/0815/conpresso/_include/parser.php on line 241
und dann meine alten Sünden, mit den zuviel geschachtelten if-set's, damit das überhaupt früher funktioniert hat :cry:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Gruß
Marky
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

Kann es sein, daß eines der Templates gar kein if-Tag hat???

Und daß ein altes Template durchaus alte Probleme hat ist ja nun nicht das Problem des Parsers, oder? (ich habe auch ein paar Webseiten, wo ich brutalst verschachtelt habe, um das gewünschte Ergebnis zu bekommen... da kommt der Parser erst mal nicht zum Einsatz...)

Für das erste Problem habe ich mal den Teil

Code: Alles auswählen

	$maxlevel = max($iftaglevel);
	for ($if=$maxlevel;$if>0;$if--)  {
		foreach ($iftags AS $key=>$value)  {
			if ($iftaglevel[$key]==$if)  $thisiftags[$key] = $value;
		}
		if (count($thisiftags)>0)
			$template_datei = preg_replace(array_keys($thisiftags), array_values($thisiftags), $template_datei);
	}
durch

Code: Alles auswählen

if (count($iftaglevel)>0)  {
	$maxlevel = max($iftaglevel);
	for ($if=$maxlevel;$if>0;$if--)  {
		foreach ($iftags AS $key=>$value)  {
			if ($iftaglevel[$key]==$if)  $thisiftags[$key] = $value;
		}
		if (count($thisiftags)>0)
			$template_datei = preg_replace(array_keys($thisiftags), array_values($thisiftags), $template_datei);
	}
}
ergänzt.
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
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Beitrag von Marky »

Hi,
Und daß ein altes Template durchaus alte Probleme hat ist ja nun nicht das Problem des Parsers, oder?
nein, natürlich nicht. War ja auch nicht als Kritik gemeint. Da muss ich schon selbst ran.
Das Korrektur werde ich ausprobieren ... und "Bescheid" sagen ...
Gruß
Marky
Benutzeravatar
Marky
ConPresso-Checker
Beiträge: 382
Registriert: 11.12.2005 16:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Beitrag von Marky »

Hi,

Bescheid! :wall:
Hattest Du es direkt schon geändert ?! Musste ja gar nix mehr machen :roll:
Besten Dank!

ja ... bei den Templates muss ich mal auf "IFSET-Validität" prüfen :wink:
Gruß
Marky