Feature #8217
Updated by Marc Egger almost 4 years ago
Da if-elseif-else situationen ziemlich häuffig vorkommen, wäre es schön, wenn QFQ das direkt anbieten würde und wir nicht jeweils ein Pseudo-Query schreiben müssten. (Intern könnte das aber natürlich problemlos über ein Pseudo-Query gelöst werden). Mein Vorschlag für die Syntax wäre: @10.if @ 10.if = "{{feUser:TE:alnumx:s}}"="nchiapol" 10 { 1.sql = SELECT shortname, mail FROM persons_ldap [...] } 11.elseif = "{{feUser:TE:alnumx:s}}"="crose" [...] 12.else [...]@ [...] @ sollte identisch sein mit @10.sql @ 10.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE ("{{feUser:TE:alnumx:s}}"="nchiapol") LIMIT 1 10.1.sql = SELECT shortname FROM persons_ldap [...] 11.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") AND ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1 [...] 12.sql = SELECT 1 AS _ FROM (SELECT "") AS fake WHERE NOT ("{{feUser:TE:alnumx:s}}"="nchiapol") OR ("{{feUser:TE:alnumx:s}}"="crose") LIMIT 1 [...]@ [...] @ Falls für if-elseif-else statt 10-11-12 drei mal 10 verwendet werden kann, wäre das natürlich noch eleganter. Aber ich glaube schon diese Lösung wäre ein grosser Fortschritt. Vorteile: * viel intuitivere Syntax * leichter lesbar * falls später Probleme entdeckt werden, können diese Zentral behoben werden. Use Cases von Nicola: attachment:use-cases_conditions-functions.txt