Zeile 1: | Zeile 1: | ||
+ | {{#arraydefine:os_valid_values|{{#ask:[[Attribut:Belongs to os]] |?Allows value= |format=list |mainlabel=- }}}}<!-- # note: need some technique to automatically get the correlation os <..> os family. as of now, maintained manually -->{{#arraydefine:windows |Windows XP, Windows Vista, Windows 7, Windows 8 }}{{#arraydefine:macos |MacOS X Snow Leopard, MacOS X Lion, MacOS X Mountain Lion }}{{#arraydefine:linux |Linux }}{{#arraydefine:ios |iOS 4, iOS 5, iOS 6 }}{{#arraydefine:android |Android Gingerbread, Android Honeycomb, Android Ice Cream Sandwich, Android Jelly Bean, Android Key Lime Pie }} | ||
+ | |||
+ | {{#arraydefine:osfamilies|windows, android, ios, macox, linux}} | ||
+ | |||
+ | {{#arraydefine:input_os|Windows 7, Windows 8, iOS 5, Android Key Lime Pie|,|sort=asc}} <!-- test: fill manually --> | ||
+ | |||
+ | <!-- plausibility test --> | ||
+ | {{#arrayprint:input_os ||@@@@ | {{#if:{{#arraysearch:os_valid_values|@@@@}}||{{#vardefine:error_os|{{#var:error_os|}}@@@@, }}}}}} | ||
+ | |||
+ | idee: | ||
+ | * ich gehe das input-array durch. für jeden wert gehe ich alle famielenarrays durch. wenn gefunden, füge ich den famieliennamen einem string hinzu (komma-separiert). | ||
+ | * aus dem string baue ich mir ein unique array | ||
+ | * wenn da mehr als 1 wert drin ist, nehme ich array mit flag ListeOSses | ||
+ | * wenn da nur ein wert drin ist, ist das meine infobox | ||
+ | {{#vardefine:familesused|{{#arrayprint:input_os ||@@@@ | {{#arrayprint:osfamilies ||#### |{{#if: {{#arraysearch:####|@@@@}}|####,|<!-- eo:if-->}} <!-- end of arrayprint:osfamilies-->}}<!-- end of arrayprint:input_os-->}}<!-- eo: vardefine-->}} | ||
+ | |||
+ | variable: {{#var:familesused|empty}} | ||
+ | |||
+ | {{#arraydefine:useInfobox|{{#var:familesused|}}|,|unique,sort=asc}} | ||
+ | |||
+ | array useInfobox: {{#arrayprint:useInfobox}} | ||
+ | |||
+ | == old == | ||
+ | |||
{{SandboxTemplate|para1|para1=ausgabe}} | {{SandboxTemplate|para1|para1=ausgabe}} | ||
Zeile 12: | Zeile 36: | ||
{{#if:{{#arraysearch:b | }} |gefunden|nicht gefunden}} | {{#if:{{#arraysearch:b | }} |gefunden|nicht gefunden}} | ||
+ | |||
+ | {{#arraydefine:a |aa, bb, cc, dd}}{{#arraydefine:aa |aa1, aa2, aa3, aa4}}{{#arraydefine:bb |bb1, bb2, bb3, bb4}}{{#arraydefine:cc |cc1, cc2, cc3, cc4}}{{#arraydefine:dd |dd1, dd2, dd3, dd4}} | ||
+ | |||
+ | {{#arrayprint:a |<br/> |@@@ |@@@: {{#arrayprint:@@@|-|###|### ({{#len:###}})}} }} | ||
+ | |||
+ | <!-- {{#arrayprint:@@@ |,<nowiki> </nowiki>|@@ |@@ ({{#len:@@}}) | ||
+ | {{#arrayprint:a |<br/> |@ |@: {{#arrayprint:@ |,<nowiki> </nowiki>|@@ |@@ ({{#len:@@}}) }} --> |
Version vom 22. August 2013, 14:54 Uhr
idee:
- ich gehe das input-array durch. für jeden wert gehe ich alle famielenarrays durch. wenn gefunden, füge ich den famieliennamen einem string hinzu (komma-separiert).
- aus dem string baue ich mir ein unique array
- wenn da mehr als 1 wert drin ist, nehme ich array mit flag ListeOSses
- wenn da nur ein wert drin ist, ist das meine infobox
variable: android,windows,windows,ios,
array useInfobox: android, ios, windows
old[Bearbeiten | Quelltext bearbeiten]
normal arrayprint: 1, 4
with function: length of 1:1
length of 4:1
nicht gefunden
aa: aa1 (3)-aa2 (3)-aa3 (3)-aa4 (3)
bb: bb1 (3)-bb2 (3)-bb3 (3)-bb4 (3)
cc: cc1 (3)-cc2 (3)-cc3 (3)-cc4 (3)
dd: dd1 (3)-dd2 (3)-dd3 (3)-dd4 (3)