Ergebnis 1 bis 11 von 11

Thema: Filtern eines MetaModels bei dem Attribut Timestamp

  1. #1
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard Filtern eines MetaModels bei dem Attribut Timestamp

    Ich möchte für ein Festival eine Übersicht aller Künstler in einer Tabelle ausgeben. In der Tabelle werden die Tage in den Spalten angezeigt werden, und die Künstler mit Uhrzeit und Name in den Zeilen, siehe als Beispiel die Tabelle. Jeder Spalte enthält eine Liste in der die Künster ausgegeben werden, die an diesem Tag auftreten.

    Ich hatte also ein MetaModel angelegt mit diversen Attributen für Name, Text, Link, Bilder etc. sowie mehrere Attributen des Typs "Timestamp" , also z.B. "datumzeit1", "datumzeit2", "datumzeit3", etc. , wenn ein Künstler an mehreren Tagen zu verschiedenen Zeiten auftritt, wie bei dem Künstler3 in der Tabelle.

    Wie gesagt ist jeder Tag eine Liste, d.h. ich habe einen Filter für den Freitag 29.08.2014 und einen Filter für den Samstag 30.08.2014 D.h. ich frage per SQL ab, ob datumzeit1 oder datumzeit2 oder datumzeit3 einen Timestamp enthält für Freitag 29.08.2014 bzw. Samstag 30.08.2014 . Damit bekomme ich auch die zwei Listen wie ob erwähnt, die die an diesem Tag auftretenden Künster ausgiben. Soweit alles einfach..


    Code:
    So sollte die Tabelle im Ergebnis aussehen:
    
    | Freitag 29.08.	    | Samstag 30.08.    | 
    | ----------------- | ----------------- |  
    | 15:00 Kuenstler1  | 14:00 Kuenstler4  |      
    | 16:00 Kuenstler2  | 15:00 Kuenstler5  |    
    | 17:00 Kuenstler3  | 19:00 Kuenstler3  |
    Jetzt kommt aber auch noch dazu, daß ich die Uhrzeiten vor dem Namen des Künstlers mit ausgeben will in der Tabelle. Und genau da beginnt mein Problem, bei der Ausgabe für den Künstler3. Wie filtere ich die Liste für den jeweiligen Tag, damit mir nur die Zeit für den Freitag 29.08.2014 angezeigt wird, d.h. wenn der Datensatz für den Kuenstler3 folgende folgende Daten enthält datumzeit1 "29.08.2014 17:00", datumzeit2 "30.08.2014 19:00". Mein Problem ist hier, daß beide Zeiten an beiden Tagen ausgegeben werden. Vielleicht ist das aber auch nicht einfach über einen Filter zu lösen, sondern ich brauche eine Kindtabelle nur mit den Zeiten. Ich bin für jeden hilfreichen Ansatz dankbar.

    Code:
    So sieht die Tabelle aber leider noch aus:
    
    | Freitag 29.08	    | Samstag 30.08.    | 
    | ----------------- | ----------------- |  
    | 15:00 Kuenstler1  | 14:00 Kuenstler4  |      
    | 16:00 Kuenstler2  | 15:00 Kuenstler5  |    
    | 17:00 19:00 Kuenstler3  | 17:00 19:00 Kuenstler3  |
    Geändert von stephangunnar (02.08.2014 um 20:19 Uhr)
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  2. #2
    Contao-Nutzer Avatar von chibineko
    Registriert seit
    02.06.2011.
    Beiträge
    120
    Partner-ID
    6306

    Standard

    Moin,

    wir haben in der TNG Version sowas eingebaut. Wir benutzten dafür den FromTo Filter. Dieser kann nun mit den timestamps arbeiten. Ich weiß aber nicht ob das dein Problem lösen kann. Siehe hier die letzten commits https://github.com/MetaModels/filter_fromto/commits/tng

  3. #3
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Zitat Zitat von stephangunnar Beitrag anzeigen
    Ich bin für jeden hilfreichen Ansatz dankbar.
    Kann man das vielleicht mit Hilfe des Attributs "alias" in den Griff bekommen ?
    Der Alias ist ja in MM da, um die Einzigartigkeit herzustellen. Dann würde vielleicht auch nur eine einzige Uhrzeit pro Tag angezeigt.
    Im Alias müsste dann zumindest schon mal der Tag mit erscheinen.

  4. #4
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Zitat Zitat von chibineko Beitrag anzeigen
    Moin,

    wir haben in der TNG Version sowas eingebaut. Wir benutzten dafür den FromTo Filter. Dieser kann nun mit den timestamps arbeiten. Ich weiß aber nicht ob das dein Problem lösen kann. Siehe hier die letzten commits https://github.com/MetaModels/filter_fromto/commits/tng
    Danke, das vereinfacht wahrscheinlich die Filter im Backend, die ich bisher mühevoll angelegt habe . Ob es mein Problem dann auch behebt, werde ich dann mal heute Abend genauer wissen.

    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Kann man das vielleicht mit Hilfe des Attributs "alias" in den Griff bekommen ?
    Der Alias ist ja in MM da, um die Einzigartigkeit herzustellen. Dann würde vielleicht auch nur eine einzige Uhrzeit pro Tag angezeigt.
    Im Alias müsste dann zumindest schon mal der Tag mit erscheinen.
    Danke, das Problem ist aber leidet, daß ich manchmal nicht nur eine Uhrzeit pro Tag habe, sondern mehrere, z.B.

    datumzeit1 29.08.2014 15:00
    datumzeit2 29.08.2014 16:30
    datumzeit3 29.08.2014 17:45
    datumzeit4 30.08.2014 13:15
    datumzeit5 30.08.2014 14:00
    datumzeit6 30.08.2014 17:15

    und manche mit nur einer Zeit z.B.

    datumzeit1 30.08.2014 20:00

    D.h. in der Liste für den 29.08.2014 müsste z.B. das Attribut datumzeit1 abhängig von dem Timestamp anzeigt oder eben nicht angezeigt werden. Ich glaube so ist das jetzt nochmal ganz gut beschrieben, was ich brauche.
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  5. #5
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Zitat Zitat von stephangunnar Beitrag anzeigen
    , daß ich manchmal nicht nur eine Uhrzeit pro Tag habe, sondern mehrere, z.B.
    datumzeit1 29.08.2014 15:00
    Das mag schon sein, aber doch nur eine pro Künstler.
    Der Alias müsste dann aus datumzeit1 plus Künstler bestehen. Dann ist es doch eindeutig, oder ? In der Richtung würde ich also suchen.

  6. #6
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Zitat Zitat von KlausGrenoble Beitrag anzeigen
    Das mag schon sein, aber doch nur eine pro Künstler.
    Der Alias müsste dann aus datumzeit1 plus Künstler bestehen. Dann ist es doch eindeutig, oder ? In der Richtung würde ich also suchen.
    Das wäre zu einfach, ich wirklich genau diese 6 Zeiten für einen Künstler. Das ist keine Band die einmal auf einem Festival auftritt, sondern ein Strassentheater, und die treten dreimal jeden Tagen an zwei Tagen auf, also 6 Auftritte. Darum habe ich ja in meinem MetaModel 6 Attribute ( datumzeit1, datumzeit2, .... , datumzeit6) angelegt.

    datumzeit1 29.08.2014 15:00
    datumzeit2 29.08.2014 16:30
    datumzeit3 29.08.2014 17:45
    datumzeit4 30.08.2014 13:15
    datumzeit5 30.08.2014 14:00
    datumzeit6 30.08.2014 17:15
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  7. #7
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich bin jetzt nicht so sicher ob ich dein Problem verstehe.. aber kann es sein, das du 2 Felder hast für die Eingabe? Einmal Datum und einmal die Uhrzeit?
    Wenn du das ganze als Timestamp in einem Feld speichern würdest, dann hättest du solche Probleme nicht, da der Timestamp ja Datum und Uhrzeit beinhaltet und dann nur die Uhrzeiten von einem Tag ausgibt, wenn man das passend filtert. So wie du das hast müsstest du bei den Uhrzeiten erst noch rausfinden, an welchen Tagen die sind und dann nur noch diese sortiert auszugeben. Das macht die ganze Geschichte etwas kompliziert.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  8. #8
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Ich habe das Datum und die Uhrzeit nur in einem Feld gespeichert vom Typ Timestamp, also z.B. "29.08.2014 15:00". Wie filtere ich das jetzt die folgenden Daten am besten automatisch ...

    Code:
    datumzeit1 29.08.2014 15:00
    datumzeit2 29.08.2014 16:30
    datumzeit3 29.08.2014 17:45
    datumzeit4 30.08.2014 13:15
    datumzeit5 30.08.2014 14:00
    datumzeit6 30.08.2014 17:15
    ... so daß ich nur folgendes ausgegeben bekomme wenn ich nur die Attribute ausgeben möchte bei denen das Datum der "29.08.2014" ist, d.h. das Ergebnis sollte sein ...

    Code:
    datumzeit1 29.08.2014 15:00
    datumzeit2 29.08.2014 16:30
    datumzeit3 29.08.2014 17:45
    Aber jetzt bitte nicht schreiben, daß ich da ja im Template einfach nur die Felder datumzeit1, datumzeit2, datumzeit3 ausgeben sollte , die Daten könnten nämlich auch wie folgt eingetragen worden sein z.B.

    Code:
    datumzeit1 29.08.2014 15:00
    datumzeit2 30.08.2014 17:15
    datumzeit3 29.08.2014 17:45
    datumzeit4 30.08.2014 13:15
    datumzeit5 30.08.2014 14:00
    datumzeit6 29.08.2014 16:30
    Und da frage ich mich gerade, kann man das überhaupt mit einem Filter lösen, oder ist die Struktur wie ich die Felder angelegt habe schon falsch, d.h. hätte ich vielleicht das in eine Kindtabelle auslagern sollen oder ähnliches.
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  9. #9
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    OH warte.. du hast da jetzt 6 Attribute angelegt damit?
    Urg.. das solltest wirklich besser in einem Kind MM auslagern.. dann können die da von 0 bis unendlich viele Termine haben. Ich glaub dann sollte das auch einfacher gehen was du vor hast (glaub ich.. kommt halt drauf an was genau etc....).

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  10. #10
    Contao-Nutzer Avatar von stephangunnar
    Registriert seit
    12.11.2009.
    Ort
    Wiesbaden
    Beiträge
    187

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    OH warte.. du hast da jetzt 6 Attribute angelegt damit?
    Ja, genau das habe ich leider gemacht, und ich weiß ja auch, daß das zu kurz gedacht war. Ich lagere das aber jetzt in ein Kind MM aus. Ist es denn dann möglich, daß man einen Filter anlegt, der alle Items meines Eltern MM ausgibt bei denen die Kind MM z.B. den 29.08.2014 als Datum enthält?
    Meine aktuellen Projekte :
    http://sadhya.stephanmichel.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)
    http://das6040.de Contao Core (3.5.X) mit Contao Bootstrap (1.0.0)

  11. #11
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sollte möglich sein.. es ist auf jeden Fall erst mal möglich, das du alle Kindeinträge anzeigst zu einem Eltern Element. Das kannst du dann auch weiter einschränken mit Filtern. Vor allem brauchst du dann nicht mehr mehrere Felder verknüpft Filtern, sondern eben nur das eine. Das sollte das ganze schon mal wesentlich einfacher machen für das weitere Vorgehen.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

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
  •