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 »

Was ist denn bitte cpo2.9 :gruebel: Meinst du nicht eher 4.0.9? Ich hätte es ja einfach ignoriert, aber auch in deiner soeben erhaltenen PN sprichst du von cpo2.9...
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 »

Mr. Magpie hat geschrieben:Was ist denn bitte cpo2.9 :gruebel: Meinst du nicht eher 4.0.9?
__lol__
natuerlich 4.09 :oops:

und danke fuer eure schwere Arbeit in den letzten Wochen!
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 852
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Beitrag von hscha »

Hallo,

ich habe mod_parser gerade installiert und teste... Der Debug-Modus ist ja eine echte Hilfe!
Allerdings muss man den ganzen Thread lesen, um die neuen Template-Platzhalter nutzen zu können.
Ist diese Liste vollständig?
  • <!-- ifValue -->
    <!-- iffirst -->
    <!-- iflast -->
Testergebnisse später...

Grüße aus Berlin von
Horst Schallnas
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 Horst,

wenn du dir meinen Beitrag genau anguckst, dann siehst du, dass dies tatsächlich alle neuen Abfrage-Platzhalter sind.

Bleibt mir nur noch, dir viel Spaß und Erfolg damit zu wünschen...

p.s.: Wenn es genügend Feedback gibt, dann generieren wir auch aktualisierte Erläuterungen usw.
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

Beitrag von Mr. Magpie »

Hallo Markus,

es ist sicher nur nebensächlich, aber kannst du noch dafür sorgen, dass an die eMail-Adresse angehängte Leerzeichen durch hide_emails.inc.php entweder ignoriert oder abgezwackt werden?

Ich habe für die eMail-Adresse ein einfaches Textfeld zur Verfügung gestellt, aber meine Leute kopieren offenbar die Adressen dort hinein und schaffen's dabei oft, an die eMail-Adresse noch ein Leerzeichen angehängt zu lassen.

Das führt dann zu so unschönen Ergebnissen wie im Bild. Eine optische Kontrolle des fertigen Artikels ist anscheinend auch zuviel verlangt...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

Frage: Wird der Text durch Dein Template mit einem Email-Link versehen oder nur durch hide_emails?
Umgekehrt: Wie sieht Dein Temolate an der Stelle aus?
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,

es handelt sich um ein ganz einfaches (Kurz-)Text-Feld:

Code: Alles auswählen

<!-- ifSet: eMail-Adresse; --><div>E-Mail: <a href="mailto:<!-- text: eMail-Adresse; -->"><!-- text: eMail-Adresse; --></a></div><!-- /ifSet -->
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Beitrag von MarkusR »

Dann ändere das mal in

Code: Alles auswählen

<!-- ifSet: eMail-Adresse; --><div>E-Mail: <!-- text: eMail-Adresse; --></div><!-- /ifSet -->
hide_emails wandelt ja bereits reine Text-Mail-Adressen in anklickbare Links um... :wink:
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 »

Danke für die schnelle Hilfe!

Das kommt davon, wenn man gar nicht erst versucht, den PHP-Code sicha anzuschauen. :oops:
Günther Ludwig
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 werde dennoch drüber nachdenken, ob man die Leerschritte irgendwie rausfiltern kann... aber das eilt ja nicht so. hide_emails ist ohnehin ein anderes Thema und wird ja nur als Beispiel mitgeliefert...
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 »

Folgendes ist nur 'mal so als Idee in den Raum geworfen - vielleicht fällt dir ja spontan (oder später einmal) ein, wie das zu realisieren wäre.

So könnte ein Template-Teil aussehen:

<div class="<!-- ifNotSet: Telefon; --><!-- ifNotSet: Telefon, mobil; --><!-- ifNotSet: Fax; -->Destroy<!-- /ifNotSet --><!-- /ifNotSet --><!-- /ifNotSet -->Block">
<!-- ifSet: Telefon; --><div><b>Tel.:</b><!-- Text: Telefon; --></div><!-- /ifSet -->
<!-- ifSet: Telefon, mobil; --><div><b>Mobiltel.:</b> <!-- Text: Telefon, mobil; --></div><!-- /ifSet -->
<!-- ifSet: Fax; --><div><b>Fax:</b> <!-- Text: Fax; --></div><!-- /ifSet -->
</div>

Die Styleanweisung div.Block hinterlegt den gesamten Abschnitt mit einer Hintergrundfabe, versieht ihn mit einem Rahmen und einem margin-top sowie margin-bottom. Dies soll aber nur geschehen, falls wenigstens eine der drei Nummernangaben existiert. Deshalb ist der Style div.DestroyBlock im CSS nicht definiert, unterdrückt also die genannte Formatierung.

Nun zur eigentlichen Idee: Wie wäre es, wenn man mit einer einzigen ifSet-Abfrage gleich mehrere OR- oder AND-verknüpfte Bedingungen abfragen könnte? Bspw. so:

<!-- ifSet: Telefon || Telefon, mobil || Fax; --> ... <!-- /ifset -->

oder so:

<!-- ifSet: Telefon && Telefon, mobil && Fax; --> ... <!-- /ifset -->

oder gar so:

<!-- ifSet: (Telefon || Telefon, mobil) && Fax; --> ... <!-- /ifset -->
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

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:Ich werde dennoch drüber nachdenken, ob man die Leerschritte irgendwie rausfiltern kann... aber das eilt ja nicht so. hide_emails ist ohnehin ein anderes Thema und wird ja nur als Beispiel mitgeliefert...
Das wäre optimal, denn dann könnte man dem mailto-Link bspw. die Betreffzeile gleich mitgeben:

Code: Alles auswählen

<!-- ifSet: eMail-Adresse; --><div>E-Mail: <a href="mailto:<!-- text: eMail-Adresse; -->?subject=<!-- text: Betreff; -->"><!-- text: eMail-Adresse; --></a></div><!-- /ifSet -->
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

Beitrag von Mr. Magpie »

Bitte hier - soweit möglich und sinnvoll - nicht mehr weiter diskutieren.

Ich habe im Unterforum "Kleine und neue Module" zum Enhanced Parser einen neuen Thread eröffnet: http://community.conpresso.de/viewtopic ... 5560#25560
Günther Ludwig
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 setze doch mal hier fort, weil ich dies als Entwicklungsthread sehe, während im neuen Thread über die bereits fertige(n) Version(en) diskutiert werden kann..
Mr. Magpie hat geschrieben:Nun zur eigentlichen Idee: Wie wäre es, wenn man mit einer einzigen ifSet-Abfrage gleich mehrere OR- oder AND-verknüpfte Bedingungen abfragen könnte? Bspw. so:

<!-- ifSet: Telefon || Telefon, mobil || Fax; --> ... <!-- /ifset -->

oder so:

<!-- ifSet: Telefon && Telefon, mobil && Fax; --> ... <!-- /ifset -->
Leider kann ich die Mischung von && und || nicht (zumindest noch nicht) anbieten, aber ansonsten geht das hier (auch mit ifNotSet, also z.B. ein "weder ... noch"):

ca. Zeile 188

Code: Alles auswählen

	foreach ($content as $key2=>$value2) {   //original
		if ($value2['name'] != $matchpos[2][$m][0]) continue;   //original
		// we got content for this placeholder
		$found=true;
    }
ersetzen durch

Code: Alles auswählen

	if (strpos($matchpos[2][$m][0],'&&') !== false) {  // wir haben ein "und"
		$hits=array();
		$matchnames = explode('&&',$matchpos[2][$m][0]);
		foreach ($matchnames AS $matchname)  {
			foreach ($content as $key2=>$value2) { 
				if ($value2['name'] != trim($matchname)) continue 1;
				// we got content for this placeholder
				$hits[]=1;
			} // foreach
		} // foreach
		if ( (array_sum($hits) == count($matchnames) ) && count($matchnames) > 0 ) $found=true; // we got content for all these placeholders
	} elseif (strpos($matchpos[2][$m][0],'||') !== false) { // wir haben ein "oder"
		$matchnames = explode('||',$matchpos[2][$m][0]);
		foreach ($matchnames AS $matchname)  {
			foreach ($content as $key2=>$value2) { 
				if ($value2['name'] != trim($matchname)) continue 1;
				// we got content for this placeholder
				$found=true;   // einmal reicht ja...
			} // foreach	
		} // foreach
	} else {  // wir haben keines von beidem, also nur eine einfache Prüfung
		foreach ($content as $key2=>$value2) { 
			if ($value2['name'] != $matchpos[2][$m][0]) continue;   //original
			// we got content for this placeholder
			$found=true;
		} // foreach
	}
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 »

Hey, großartig! Der gemischte Einsatz ist auch gar nicht sooo wichtig.

Werd's in den nächsten Tagen testen.

p.s.: Ich hoffe, meine Ideen sind dir allmählich nicht zu spinnert!
Günther Ludwig