Verschachtelte ifsets/ifnotsets und neu: ifvalue

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
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 »

Hab's nun recht ausgiebig getestet und konnte keine Probleme damit feststellen.
Günther Ludwig
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 »

baluo hat geschrieben:Ich werde es in meinen beiden naechsten Projekten testen und berichten.
Hmmm, ich habe in cpo4.09 alle Modul-Elemente installiert wie vorgeschrieben: die mehrfache ifset-Verschachtelung scheint korrekt zu funktionieren, in einer Testversion wird auch iffirst/iflast verarbeitet (auch wenn ich das noch nicht richtig eingesetzt habe); aber ich bekomme das ifvalue nicht zum Einsatz.

Der Markus'sche Modellvorschlag

Code: Alles auswählen

<div>ifvalue-2 <!-- ifvalue: Preis>50 -->Das ist aber sehr teuer!<!-- /ifvalue --></div> 
wird schlicht ignoriert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Leider verschweigst Du, was in "Preis" steht. Eigentlich muß es dann ja auch von mir ignoriert werden, oder?

Benutze doch mal

Code: Alles auswählen

<div>Preis: <!-- Text: Preis;--> Euro <!-- ifvalue: Preis>50 -->ist aber sehr teuer!<!-- /ifvalue --></div> 
und zeige das Ergebnis (auch den entstehenden Seitencode als Ausschnitt)
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
baluo
ConPresso-Experte
Beiträge: 607
Registriert: 14.11.2005 13:17
Hat sich bedankt: 216 Mal
Danksagung erhalten: 11 Mal

Beitrag von baluo »

danke, das war's -- ich war mir nicht im Klaren ueber die Zuordnung zwischen Text- und ifvalue-Platzhalter. Mehr spaeter, aber erst in den naechsten Tagen.

Ach ja, noch eine Frage:
In diesem Beispielcode ergibt der Eintrag "51" im Textplatzhalter, dass dieser Wert und der IfValue-Wert gleichzeitig ausgegeben werden. Kann ich denn ueber IfValue die Ausgabe des Text-Platzhalterwertes verhindern, hier also die "51"?

Nochmals Danke fuer das Modul,
Gerhard
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

baluo hat geschrieben:danke, das war's -- ich war mir nicht im Klaren ueber die Zuordnung zwischen Text- und ifvalue-Platzhalter. Mehr spaeter, aber erst in den naechsten Tagen.
Hä? Wie?
Du glaubst also tatsächlich keinen Preis anzugeben, prüfst dann, ob dieser Preis über 50 liegt und fragst dann hier, warum keine Ausgabe erfolgt?
baluo hat geschrieben:Ach ja, noch eine Frage:
In diesem Beispielcode ergibt der Eintrag "51" im Textplatzhalter, dass dieser Wert und der IfValue-Wert gleichzeitig ausgegeben werden. Kann ich denn ueber IfValue die Ausgabe des Text-Platzhalterwertes verhindern, hier also die "51"?
Welcher Beispielcode? Meiner? Deiner? Oder einer an den Du gerade denkst?

Werde doch bitte ausführlicher...

Link zur Seite...

Code...

Quelltext...

Genaue Beschreibung der Schritte...
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 »

baluo hat geschrieben:danke, das war's -- ich war mir nicht im Klaren ueber die Zuordnung zwischen Text- und ifvalue-Platzhalter. Mehr spaeter, aber erst in den naechsten Tagen.

Ach ja, noch eine Frage:
In diesem Beispielcode ergibt der Eintrag "51" im Textplatzhalter, dass dieser Wert und der IfValue-Wert gleichzeitig ausgegeben werden. Kann ich denn ueber IfValue die Ausgabe des Text-Platzhalterwertes verhindern, hier also die "51"?

Nochmals Danke fuer das Modul,
Gerhard
Ich verstehe zwar nicht wo und warum in Markus' Beispiel der Wert 51 zweimal ausgegeben werden soll, aber die Ausgabe verhindern kannst du ja bspw. so:

Code: Alles auswählen

<div>Preis:  <!-- ifvalue: Preis>50; --><!-- Text: Preis;--> Euro<!-- /ifvalue --></div>
Dann wird der Preis nur ausgegeben, wenn er mehr als 50 Euro beträgt. Logisch, oder?

Und du kannst auch die Ausgabe des gesamten div verhindern, wenn der Preis zu niedrig ist:

Code: Alles auswählen

<!-- ifvalue: Preis>50; --><div>Preis:  <!-- Text: Preis;--> Euro</div><!-- /ifvalue -->
Nachtrag: Das einzige Problem, das ich sehe, ist dass der Vergleichswert (hier 50) in der ifValue-Abfrage immer mit einem Semikolon abgeschlossen werden sollte:

<!-- ifvalue: Preis>50; -->

Das ist ganz wichtig, wenn's nicht in die Hose gehen soll!
@Markus: Kannst du das auf deinen Manualseiten korrigieren/ergänzen?


Noch'n Nachtrag: :oops: Vergesst das mit dem Semikolon! Das macht alles hübscher, spielt aber keine Rolle.
Zuletzt geändert von Mr. Magpie am 10.02.2010 01:43, insgesamt 2-mal geändert.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

immer mit einem Semikolon abgeschlossen werden sollte
Hast Du das beobachtet?

Sollte eientlich nicht so sein. ifvalue funktioniert eigentlich wie ein ifset. Beide werden durch die gleiche Funktion ausgelesen und das Ergebnis zur Prüfung weitergegeben... :gruebel: :gruebel: :gruebel:

Ich mache die Semikolons ohnehin immer aus Gewohnheit und habe daher vermutlich nie ein Problem beobachten können...
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 »

Nun, ich wollte vorhin deinen Beispiel-Code an einem PLZ-Feld in einem meiner Projekte testen und hatte so im Template stehen:

... <!-- ifValue: PLZ>999 --><!-- Text: PLZ; --><!-- /ifValue --> ...

Wenn im PLZ-Feld bspw. 32145 eingegeben war, wurde die PLZ nicht ausgegeben, sobald ich aber das Semikolon ergänzt hatte, hat's funktioniert.
Wie oben schon gesagt, müsstest du dann evtl. auch auf deinen Manpages ergänzen.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ich habe es gerade mit

Code: Alles auswählen

PLZ: <!-- Text: PLZ --><!-- ifValue: PLZ>999 --> passt<!-- /ifValue --><!-- ifValue: PLZ<999 --> passt nicht<!-- /ifValue -->
getestet und es funktioniert wunderbar auch ohne Semikolon... :shock:

Der Fachmann staunt und der Laie wundert sich... :rofl:

Ist das ein Server im Web oder ein lokales System?
Zuletzt geändert von MarkusR am 10.02.2010 01:21, 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
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 »

MarkusR hat geschrieben:Der Fachmann staunt und der Laie wundert sich... :rofl:
Frag' mich mal! :?:
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ist das ein Server im Web oder ein lokales System?

Aktiviere doch mal die Array-Ausgabe, dann sollte man sehen können, was als Inhalt gehandelt wird, wenn Du mit bzw. ohne Semikolon arbeitest.
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 »

Das war ein Server, aber das Problem lag wohl eher irgendwo zwischen meinen Ohren! :wall: :wall: :wall:

Leider hatte ich den Testcode schon wieder rausgenommen und jetzt beim erneuten Test ist das Problem verschwunden. Ich glaub' icü dräh jützt löngsma am Rad...
Günther Ludwig
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

Variablen-Kollision mod_menu vs. Enhanced Parser

Beitrag von Mr. Magpie »

Ich wollte gestern ein älteres Projekt (CPO 4.0.6) auf einen aktuelleren Stand (CPO 4.0.10) bringen. Dieses Projekt verwendet mod_menu zur Ausgabe einer Sitemap.
Nach dem Updaten erhielt ich in ebendieser - nun auch unansehnlichen - Sitemap eine Anzahl Warnungen:
"Warning: Cannot use a scalar value as an array in ...../mod_menu/includes/inc_build_nav.inc.php on line 115" (bei mod_menu 4.1)
Die entsprechende Zeile in dieser Datei lautet:

Code: Alles auswählen

$level[$nav_nr] = $navArray[$i]['level'];
Intuitiv hatte ich sofort den Enhanced Parser in Verdacht. Ich habe daraufhin einmal versuchsweise im Parser, also in der Datei ../_include/parser.php, alle Vorkommen von $level ersetzt durch $Ebenenstufe und siehe da, das Problem war behoben.

Es gibt sicher noch eine professionellere Lösung...
Günther Ludwig