Ergebnis 1 bis 21 von 21

Thema: Reisedatenbank mit mehrfachauswahl

  1. #1
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard 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
    Geändert von Fkhm (24.09.2017 um 20:52 Uhr)

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    Wie wäre eure Bestpractice für diesen Anwendungsfall?
    ... ich würde MetaModels nehmen ;-)

    Im Prinzip hast Du Deine Relationen schon ganz gut aufgeschlüsselt wie

    * Region
    * Land
    * Krankheit
    * Zusatzinformation
    * aktuelle Meldungen
    * usw.

    hierzu müsste man das nochmal genauer aufschlüsseln, ob z.B. die Regionaltexte "unique" für eine Region mehrere vorkommen oder ein Text für mehrere Regionen, wie groß die sind (Tabletext oder Kind-Tabelle) usw.;
    ggf. findest Du im zweiten Teil des Vortrages noch ein paar Ideen, wie die Daten verteilt werden können.

    Wenn bei den Krankheiten die Impfzeiten abgelegt werden, kann man das im Template zu einem Impfplan berechnen lassen...

    Also: es ist kein Hexenwerk das zu erstellen aber auch keine "in ein, zwei Stunden & fertig Sache"...

  3. #3
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Vielen Dank für deine Antwort. Die Relationen sind dann einzelne Metamodels oder löst man das ganze in einem einzigen Metamodel mit unterschiedlichen Attributen? Wichtig ist eben das nicht erst alle Informationen zu Ghana kommen, dann alle zu Burkina Faso sondern das erst alle Krankheiten kommen, dann alle Zusatzinfos etc.

    Regionaltexte gelten immer für mehrere Länder, z.B. alle Länder der Karibik erhalten einen gemeinsamen Text.
    Edit: Sind recht lange Texte am iPhone 7 nicht responsive 50 Zeilen, bspw. gibt es einen Twxt für Zentralafrika als Region.
    Das mit den Zeiten ist dann eine top Sache, damit werde ich mich die Tage eingehender beschäftigen auch wenn es die letzte Baustelle wird.

    Es muss nicht in 2 Stunden fertig sein, darf ruhig etwas dauern, wenn es dafür dann ordentlich ist.
    Geändert von Fkhm (25.09.2017 um 16:19 Uhr)

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    * mit "Relation" ist die Verbindung zwischen zwei MMs gemeint

    * wenn erst alle Infos über Krankheiten kommen sollen, dann sollte dass Dein "Ausgabe-MM" für die Liste werden (kann, muss aber nicht zwingend)

  5. #5
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Ich hab mich heute Abend mal kurz hingesetzt und das Relationenmodell aufgestellt.

    Relationenmodell.PNG

    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

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen

    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.
    eine allgemeine Lösung dafür gibt es nicht - da muss man etwas experimentieren... z.B. kann man die "Logik in das Template ziehen" und dort entscheiden was wann angezeigt wird

  7. #7
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    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.
    IST.PNG
    So sieht es derzeit aus.

    SOLL.PNG
    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?
    Geändert von Fkhm (29.10.2017 um 19:17 Uhr)

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    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?
    => korrekt: entweder SQL oder im Template

    die anderen Sachen habe ich nicht verstanden...

  9. #9
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Zu den anderen Sachen.

    Ich habe einen Mehrfachselectfilter wo die einzelnen Länder ausgewählt werden können.

    Nun möchte ich am Ende noch Regionentexte einblenden können in dem man einfach eine Checkbox auswählt die sagt: "Regionentexte Anzeigen".
    Diese Checkbox soll dann "verbunden sein" mit den zuvor ausgewählten Ländern. Habe ich z.B. Kenia und Brasilien ausgewählt, sollen bei gesetzter Checkbox die Regionentexte für Afrika und Südamerika erscheinen aber nicht für Asien.

  10. #10
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    Zu den anderen Sachen.

    Ich habe einen Mehrfachselectfilter wo die einzelnen Länder ausgewählt werden können.

    Nun möchte ich am Ende noch Regionentexte einblenden können in dem man einfach eine Checkbox auswählt die sagt: "Regionentexte Anzeigen".
    Diese Checkbox soll dann "verbunden sein" mit den zuvor ausgewählten Ländern. Habe ich z.B. Kenia und Brasilien ausgewählt, sollen bei gesetzter Checkbox die Regionentexte für Afrika und Südamerika erscheinen aber nicht für Asien.
    ... würde ich mit einem modifizierten Checkbox-Filter-Template machen oder Du fischt Dir im Filtertemplate in der foreach-Schleife den entsprechenden Eintrag raus und manipulierst den wie gewünscht und passt das Listentemplate entsprechend an... ist sicher etwas Knobelei aber eben keine "allgemeine Einstellungssache"

  11. #11
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Checkbox-Filter-Template wäre dann mm_filteritem_checkbox? Und dort müsste man eben noch auf den anderen Filter zugreifen?

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    Checkbox-Filter-Template wäre dann mm_filteritem_checkbox? Und dort müsste man eben noch auf den anderen Filter zugreifen?
    wenn du das vorhast, musst Du in der "Template-Hierarchie" eins höher in das Template des CE/FE-Moduls Filter "mm_filter_default"

  13. #13
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Frage

    Erneut vielen Dank.

    Habe für die Regionentexte nun einen ja/nein Filter den ich dann noch mit der Auswahl aus den anderen Filtern kombinieren muss. (s.u.)



    Fragen:
    Anzeige am Anfang leer
    Da bin ich noch nicht ganz durchgestiegen wo ich das mit dem GET Parameter anpassen kann, befinde mich derzeit im metamodel_prerendered.html5 template, bin ich hier richtig?

    Akkordeonelement um Filter
    Für die Zuweisung der Länder zu Krankheiten habe ich jetzt eigene Tabellen für die jeweiligen Regionen erstellt. Mittels "AND"-Filter und untergeordnet die Mehrfachauswahl kann ich das ganze also nach Regionen splitten. Ich möchte um die jeweiligen Regionen/Filter ein Akkordeonelement haben, das ist für die spätere Visualisierung gedacht, muss ich das im mm_filter_default.html5 einfügen?

    Lösung
    mm_filter_default war richtig, habe hier um Value und Label die passenden Klassen für ein Akkordeonelement gelegt.
    PHP-Code:
    <!-- indexer::stop -->
    <section class="<?= $this->class ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>

    <<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
    <?php endif; ?>

    <form<?php if ($this->action): ?> action="<?= $this->action ?>"<?php endif; ?> method="post">
    <input name="REQUEST_TOKEN" type="hidden" value="{{request_token}}" />
    <input type="hidden" name="FORM_SUBMIT" value="<?= $this->formid ?>">
    <div class="formbody">







    <?php foreach((is_array($this->filters) ? $this->filters : array()) as $filter): ?>
    <div class="widget <?= $filter['class'?>">

    <div class="toggler">

    <?= $filter['label'?>

    </div>

    <div class="accordion">

    <?= $filter['value'?>
    </div>

    </div>
    <?php endforeach; ?>







    <?php if($this->submit): ?>
    <div class="submit_container">
    <input type="submit" class="submit" value="<?= $this->submit ?>">
    </div>
    <?php endif; ?>
    </div>
    </form>

    </section>
    <!-- indexer::continue -->
    Tabelle
    Ich möchte gerne eine Tabelle haben
    Spalte 1 Spalte 2
    T1 T2
    T3 T4
    T5 T6

    Wenn zum Beispiel Kenia und Brasilien ausgewählt sind, soll natürlich oben die Spaltenüberschrift erscheinen und darunter dann die einzelnen Tabelleninhalte die den Ländern zugewiesen sind.
    Habe dafür jeweils einen neuen Datensatz eingerichtet und diesen den Ländern zugewiesen, da sind dann auch die gewünschten Zeilen erschienen jedoch jedes mal erneut mit Spaltenüberschrift, ist das ein aufwändigeres Problem oder nur ein Denkfehler bei mir? Bisher sah das ganze so aus:
    Spalte 1 Spalte 2
    T1 T2
    Spalte 1 Spalte 2
    T3 T4


    Auf anderen Filter zugreifen
    Wenn ich mit den Hauptfiltern meinetwegen die Länder Ägypten, Brasilien und Indien ausgewählt habe. Wie greife ich mir diese Informationen für andere Filter ab, zum Beispiel die Regionentexte, damit auch nur die Texte angezeigt werden deren Region auch ausgewählt sind?


    Das sind also die momentanen Baustellen. Wie man sieht ist PHP (noch) nicht so ganz meine Welt.
    Vielen Dank im Voraus für Anregungen und Tipps.

    Liebe Grüße

    Edit: Ich werde hier alle meine erarbeiteten Lösungen posten, falls jemand die selben Frage hat. Besonders die mit eurer Hilfe erarbeiteten Lösungen werden hier Platz finden, damit die Gemeinschaft auch etwas davon hat.
    Geändert von Fkhm (08.11.2017 um 20:32 Uhr)

  14. #14
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    Edit: Ich werde hier alle meine erarbeiteten Lösungen posten, falls jemand die selben Frage hat. Besonders die mit eurer Hilfe erarbeiteten Lösungen werden hier Platz finden, damit die Gemeinschaft auch etwas davon hat.
    Für das Handbuch (Rubrik "Kochbuch") können Beiträge gern per PR auf Github eingestellt werden - für den Start mit dem Dokument gibt es eine liesmich.txt
    https://github.com/MetaModels/docs-de

  15. #15
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Werde ich mir mal durchlesen und dann eintragen.

    Jetzt ist noch ein Problem dazu gekommen, der Filter hat ja einen "SubmitOnChange", somit lädt jedes mal die Seite neu. Nun müsste also im Template noch ein Submitbutton eingerichtet werden, damit die Seite die Filter erst aktiviert wenn man eben den Submit button drückt.

    Falls wer Tipps zu all den Fragen hat, her damit!

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    * 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

  17. #17
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    * 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:

    Filter_Frontend.PNG

    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.
    Filter_Krankheiten_ODER.PNG
    So habe ich den Filter konfiguriert, wo ist der Fehler?
    Geändert von Fkhm (09.11.2017 um 03:58 Uhr)

  18. #18
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fkhm Beitrag anzeigen
    In welcher Variablen wird gespeichert das ein Filter gesetzt wurde?
    Wie bekomme ich Zugriff auf das Array in dem die aktuellen Filtereinstellungen gespeichert sind?
    PHP-Code:
    $this->filterParams 

    Zitat Zitat von Fkhm Beitrag anzeigen
    Filter_Krankheiten_ODER.PNG
    das ist kein "Anzeigen-Oder" sondern die OR-Vernüpfung in SQL-Query https://dev.mysql.com/doc/refman/5.7...ml#operator_or
    ... bitte neben PHP auch mit SQL beschäftigen

  19. #19
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    Das mit der Anzeige hat dank des Paramters geklappt, falls das jemand haben möchte:
    Das ist mein Code für das Prerendered-Template:
    PHP-Code:
    <?php if (count($this->data)): ?>

    <div class="layout_full">

    <?php foreach ($this->data as $arrItem): ?>
    <?php $this
    ->block('item'); ?>
    <div class="item <?= $arrItem['class'?>"
    >


    <?php foreach ($arrItem['attributes'] as $field => $strName): ?>
    <?php 
    if ((count($this->filterParams) > 0) && (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; ?>
    <?php $this
    ->block('actions'); ?>
    <div class="actions">
    <?php foreach($arrItem['actions'] as $action): ?>
    <a href="<?= $action['href']; ?>"<?php if ($action['class']): ?> class="<?= $action['class']; ?>"<?php endif; ?><?php if ($action['title']): ?> title="<?= $action['title']; ?>"<?php endif; ?><?= $action['attribute']; ?>><?= $action['label']; ?></a>
    <?php endforeach; ?>
    </div>
    <?php $this->endblock(); ?>
    </div>
    <?php $this->endblock(); ?>
    <?php 
    endforeach; ?>
    </div>
    <?php else : ?>
    <?php $this
    ->block('noItem'); ?>
    <p class="info"><?= $this->noItemsMsg ?></p>
    <?php $this->endblock(); ?>
    <?php 
    endif; ?>

    Ich bin jetzt gerade dabei ein Tabletext-Template so umzugestalten das der Tablehead nur einmalig angezeigt wird und die ganzen Tabelleninhalte darunter. Dafür befinde ich mich im mm_attr_tabletext.html5. Muss ich da nur das foreach verschieben oder muss man den Teil komplett neu schreiben? Ich vermute, dass das prerendered-template auch noch umgeschrieben werden muss?

    Liebe Grüße
    Geändert von Fkhm (11.12.2017 um 21:22 Uhr)

  20. #20
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    btw...

    * die meisten "anspruchsvollen" Layouts gehen m.E. nicht über ein "foreach ($arrItem['attributes'].." sondern behandeln jedes Attribut separat anhand von "$arrItem" je nach Vorgabe mit Knoten raw. text oder html5...

    * verstehe nicht, warum Du die Abfrage nach dem Filter IN die Schleife legst...??

    * für Deinen Tabletext-Head... dafür gibt es auch Regeln in CSS bzw. fügst eine hinzu z.B. class="first_table"

  21. #21
    Contao-Nutzer
    Registriert seit
    24.04.2013.
    Beiträge
    177

    Standard

    So, habe es jetzt außerhalb gelegt.

    PHP-Code:
    <?php if (count($this->filterParams) > 0): ?>

    <div class="layout_full">

    <?php foreach ($this->data as $arrItem): ?>
    <?php $this
    ->block('item'); ?>
    <div class="item <?= $arrItem['class'?>"
    >


    <?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; ?>
    <?php $this
    ->block('actions'); ?>
    <div class="actions">
    <?php foreach($arrItem['actions'] as $action): ?>
    <a href="<?= $action['href']; ?>"<?php if ($action['class']): ?> class="<?= $action['class']; ?>"<?php endif; ?><?php if ($action['title']): ?> title="<?= $action['title']; ?>"<?php endif; ?><?= $action['attribute']; ?>><?= $action['label']; ?></a>
    <?php endforeach; ?>
    </div>
    <?php $this->endblock(); ?>
    </div>
    <?php $this->endblock(); ?>
    <?php 
    endforeach; ?>
    </div>
    <?php else : ?>
    <?php $this
    ->block('noItem'); ?>
    <p class="info"><?= $this->noItemsMsg ?></p>
    <?php $this->endblock(); ?>
    <?php 
    endif; ?>
    Also müsste man ein neues prerendered Template schreiben, in welchem auch schon der angepasste code von mm_attr_tabletext.html5 enthalten ist? Mir geht es darum, dass die Darstellung so stattfindet wie ich es ein paar Beiträge (07.11.2017, 16:36) weiter oben erklärt habe.

    LG

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •