Reisedatenbank mit mehrfachauswahl
Guten Abend,
habe mich jetzt erstmal ein wenig mit MetaModels beschäftigt. Das Einrichten ging problemlos und auch der erste Test verlief gut. Ich habe aber vielfältige Ansprüche und meine PHP-Kenntnisse sind leider auch rudimentär, mache das ganze für eine befreundete Organisation die eine Datenbank über Reiseberatung führt. Hier sollen die unterschiedlichen Länder mittels Checkbox ausgewählt werden können und dementsprechend dann die passenden Informationen dargestellt werden.
z.B. in Kenia dann Informationen über Diphterie etc.
Code:
#Left
Europa
o Land 1
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
Afrika
o Land 2
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
Südamerika
o Land 3
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
o Land x
__________________________
Zusatzinformationen
o Information x
o Information x
o Information x
o Information x
o Information x
o Information x
o Information x
o Information x
o Information x
o Information x
o Regionalinformationen
___________________________
#Main
Zusammenfassende Empfehlung:
Aktuelle Risiken:
Krankheiten:
Krankheit 1 alg. (Land 1, Land 2, Land 3)
Krankheit 1 spez. (Land 1)
Krankheit 1 spez. (Land 2)
Krankheit 1 spez. (Land 3)
Krankheit 2 (Land 1, Land 3)
Krankheit 3 (Land 1, Land 2, Land 3)
Krankheit 4 (Land 3)
Krankheit 5 (Land 1, Land 2)
Krankheit 6 (Land 2)
Regionalinformationen
Zusatzinfos
In der Datenbank sollen für die Länder die jeweiligen Krankheiten und auch aktuelle Meldungen eingepflegt werden.
Ich wähle also Land 1, Land 2 und Land 3 aus. Im Mainbereich sollen dann die Informationen wie oben stehen, aber nicht erst alle Informationen für Land 1, dann Land 2 und dann Land 3 sondern wie dargestellt die Krankheit und dahinter die Bezeichnung der Länder. Bspw. Malaria (Kenia, Uganda, Brasilien). Die Zusatzinformationen (nicht Länderabhängig) sollen mittels Checkbox hinzugefügt werden können, die Regionaltexte sollen sich den Ländern anpassen und wenn zwei Länder aus der gleichen Region kommen nicht doppelt angezeigt werden.
Wenn kein Land ausgewählt ist soll der Mainbereich leer bleiben und nur einen Infotext enthalten.
Um das ganze noch abzurunden wird ein Tool gebraucht das mittels Datum das eingetragen werden kann (Reisebeginn) automatisch ein Impfplan erstellt werden, wenn eine Impfung bspw. 3 einzelne Impfungen braucht und dazwischen jeweils 7 Tage liegen sollen, soll aus dem angegebenen Abreisedatum berechnet werden an welchem Tag die erste, wann die zweite und wann die dritte Impfung stattfinden soll. Also muss man mit Daten rechnen
Wie wäre eure Bestpractice für diesen Anwendungsfall?
Wünsche euch noch einen schönen Restsonntag und freue mich auf eure Antworten.
LGF
Edit: Die Kreise sollen Checkboxen sein, keine Selectkreise
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mich heute Abend mal kurz hingesetzt und das Relationenmodell aufgestellt.
Anhang 19880
Zusatzinformationen fällt aus dem komplizierteren Konstrukt raus, da diese immer gleich sind und einfach unten angehängt werden sollen, wenn sie im Filter markiert wurden.
Ich bin mir aber noch nicht sicher, wie man das mit den Krankheiten löst.
Beispiel (Für die Reise sind die beiden Länder Kenia und Thailand ausgewählt):
Code:
Malaria
Lorem Ipsem Pur...
Malaria (Kenia)
Lorem Ipsem Pur...
Malaria (Thailand)
Lorem Ipsem Pur...
Denguefieber (Kenia)
Lorem Ipsem Pur
Krankheit xyz
Lorem Ipsem Pur...
Es gibt einen allgemeinen Text für Malaria und zusätzlich einzelne Texte für die Länder Kenia und Thailand. Wenn man im MM für die Krankheiten noch ein Feld hinzufügt mit Longtext und der Bezeichnung: Allgemeine Informationen, dann wird auch der allgemeine Text mehrmals ausgegeben, wenn diese Krankheit mit beiden Ländern verknüpft ist.
Ich hoffe mein Problem/Unverständnis wie das zu lösen ist, ist ersichtlich.
An die Tabelle für die Impfungen werde ich mich noch setzen.
LGF
Liste der Anhänge anzeigen (Anzahl: 2)
Guten Abend, war die letzten Wochen im Urlaub - daher die späte Antwort. Habe heute wieder mal am MetaModel gearbeitet.
Viele Funktionalitäten führt es nun aus, ich habe aber ein kleines Problem.
Man wählt mittels Select die Länder aus, deren Informationen man sich anzeigen lassen möchte.
Die Regionentexte sollen einfach nur mittels einer Checkbox angezeigt werden. Ich vermute das folgende geht nur mit eigener SQL Abfrage.
Anhang 20021
So sieht es derzeit aus.
Anhang 20022
So soll es aussehen.
Also man wählt nur Ja aus und es sollen dann nur die Regionentexte angezeigt werden in denen sich eines der oben gewählten Länder befindet. Also wenn ich nur Kenia ausgewählt habe dann möchte ich nur den Text für Afrika, wenn Kenia und Brasilien ausgewählt sind der für Afrika und Südamerika aber bspw. nicht der für Südostasien.
Habt ihr da ein paar Tipps für mich?
Edit: Noch eine Frage. Ich möchte das am Anfang nichts angezeigt wird und die Infos erst wenn die Länder ausgewählt werden, das müsste auch mittels eigener SQL Abfrage funktionieren bzw. wenn man das erst anzeigen lässt wenn irgendein GET-Parameter gesetzt ist?
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat von
zonky
* das "submitOnChange" kannst Du in den Filtereinstellungen abschalten
* Du kannst in das Filtertemplate gehen und in der "foreach-Schleife" die Filterelemente anzeigen oder übergehen wie du möchtest - z.B. in dem Du die (CSS-)Klasse prüfst und eine Fallunterscheidung machst
So einfach kanns sein.
Um die Anzeige Anfangs leer zu haben bin ich jetzt im metamodel_prerendered.html5
PHP-Code:
<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
<?php if ((isset($arrItem[$this->getFormat()][$field]) && ($strValue = $arrItem[$this->getFormat()][$field])
|| (isset($arrItem['text'][$field]) && ($strValue = $arrItem['text'][$field])))): ?>
<div class="field <?= $field ?>">
<?php if (!$this->view->get('hideLabels')): ?>
<div class="label"><?= sprintf($GLOBALS['TL_LANG']['MSC']['field_label'], $strName) ?></div>
<?php endif; ?>
<div class="value"> <?= $strValue ?></div>
</div>
<?php endif; ?>
<?php endforeach; ?>
Ich vermute, dass es sich um den Bereich handelt um die Anpassung zu machen oder welches Template benötigt dafür?
In welcher Variablen wird gespeichert das ein Filter gesetzt wurde?
Wie bekomme ich Zugriff auf das Array in dem die aktuellen Filtereinstellungen gespeichert sind?
Desweiteren ist mir aufgefallen, dass er mir auch die Informationen anzeigt obwohl ein Filter für etwas anderes gesetzt wurde:
Anhang 20081
In dem Fall ist nur Bolivien ausgewählt, aber es zeigt mir auch die Daten an die unter Europäischen Ländern sind, also bspw. Deutschland obwohl hier kein Filter gesetzt ist.
Anhang 20082
So habe ich den Filter konfiguriert, wo ist der Fehler?