We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 10190
    • 187 Posts
    Hallo zusammen,

    ich würde gern für einen Sportverein, dem ich einen modx-Auftritt gebastelt habe, eine Trainingsübersicht basteln. Bislang ist das eine statische HTML-Tabelle (http://www.karate-kata.de/index.php?id=6 ganz unten), das macht bei Änderungen nicht wirklich Spaß sad

    Entweder könnte das in der bestehenden Form umgesetzt werden (Trainingsgruppen in den Zeilen der Tabelle), oder als klassische Wochenübersicht wie im Kalender - da müßten dann aber auch zumindest kurze Einträge (Gruppenname, Zeit von/bis) sichtbar werden, und zwar direkt, nicht als Hoover oder nach Klick.

    Weiß da einer von euch ’ne Lösung? Ich hab mir schon verschiedene Kalendersnippets (Repository>Calendar) angeschaut, aber entweder ging das nicht, weil die Wochendarstellung bspw. nur so ’ne kleine Übersicht ist, oder ich hab die richtige Option nicht probiert.

    Vielleicht löse ich das auch besser anders, über Datagrid oder andere Tools, die primär gar nicht als Kalendersystem gedacht sind? Kalenderfunktionen wären zwar fein, aber primär geht’s mir ja um bessere Pflegemöglichkeiten der jetzigen HTML-Tabelle.

    Viele Grüße
    Frisco
      • 10449
      • 956 Posts
      Am einfachsten ist das sicher mit Google Calendar: http://www.google.com/intl/de/googlecalendar/overview.html

      Du könntest entweder alles in einen einzigen Kalender eintragen, oder einen Kalender je Gruppe erstellen.
      Evtl. kannst du mit einer speziellen Einstellung sogar mehrere Gruppen in einem einzigen Kalender darstellen, du müsstest das mal abchecken (sep. Farben je Gruppe).
      Erinnerungs-Mails senden usw. ist auch möglich.

      Kalender öffentlich machen + in MODx einbinden via Chunk ist easy (HTML-copy-paste).
        • 10190
        • 187 Posts
        Hm, das letzte Mal als ich mir den google-Kalender in modx angeguckt hatte, war das Problem dass das bei Klick dann eben in den Google-Kalender führte - zumindest bei den Einzelevents habe ich das so in Erinnerung. Ich würde schon gern in modx bleiben, und nicht auf google wechseln.

        Ich meine auch das die Wochenansicht in modx nicht so toll war, aber vielleicht hat sich da ja was getan - ich probier das auf jeden Fall nochmal aus, wenn du meinst das das geht.

        Frisco
          • 28436
          • 242 Posts
          Hallo Frisco,

          cooles Problem hast Du da. An der Ansicht würde ich nichts ändern wollen, ist wunderbar. Du hast schon recht wenn Du schreibst das bei "normaler" Wochenansicht dann ja die Gruppen mit aufgenommen werden müßten. Das fände ich auch irgendwie verkehrt.

          Datagrid wird nicht klappen.... oder? Vielleicht doch? Ich jedenfalls bin daran schon übel gescheitert und hab’s seither nicht mehr den Versuch unternommen ein grid zu bekommen.

          Ein modx-Kalendersnippet kenne ich nicht welches das so könnte. Allerdings irgendwas mit den Daten für veröffentlichen und zurückziehen würde sich schon anbieten. Spontan fällt mir ein, daß es auf Deiner Seite vielleicht soviele Kalender gibt wie Gruppen. Den Kalender trimmst Du auf Wochenansicht und lässt den je Gruppe mit deren Parametern anzeigen.

          Vielleicht würde auch was "klassisches" ausreichen, also was nur mit tvs und chunks ohne Kalendersnippet.

          Hängt halt irgendwie vom Ablauf ab und Pflegeintervall etc.

          Viel Erfolg
          ciao, Stefan
            • 24495
            • 407 Posts
            Sieht so aus, als bleibt das Gerüst immer gleich, nur die Inhalte werden gelegentlich geändert. Da macht ein Kalendersnippet nicht viel Sinn. Wie wärs damit:

            Baue diese Seite mit einem Tabellengerüst im Template (oder das Tabellengerüst als Chunk, wenn Du kein extra template dafür angelegen willst).
            Lege für jede Gruppe eine Unterseite an mit neuem Template.
            Das Template bekommt TVs für die Wochentage.
            Die Bezeichnung der Gruppen packst Du in den Content, den Rest in die TVs.
            Im Tabellengerüst der Parent-Seite werden die Inhalte der TVs aufgerufen.

            Das sollte reichen.
              • 10190
              • 187 Posts
              Hallo Stephan, hallo rasc,

              vielen Dank für eure Anregungen. Ich werde wohl mal mit beidem spielen und danach entscheiden, was sich als praktischer erweist (wie Stephan schreibt abhängig von Ablauf und Pflegeintervall, s.u.) - momentan scheinen mir beide Ansätze Vor- und Nachteile zu haben:

              Stephan:
              Ein Kalendersnippet hätte den Vorteil, auch Dinge außer der Reihe, den "normalen" Trainingswochen, schon im Vorhinein einpflegen zu können - bspw. Ferientrainingszeiten, Samstage/Wochenenden mit Aktionen wie Lehrgänge, bei denen für alle Gruppen das normale Training ausfällt etc. Momentan steht sowas dann unter "Aktuelles" mit einem zusätzlichen Link bei der Kursübersicht.

              Außerdem könnte man den Kalender zum abbonieren anbieten, und verschiedene Ansichten wie Filter nach Gruppen vielen automatisch mit aus der Tüte bzw. neue Funktionen wie Vorblättern wären überhaupt erst möglich.

              Mir scheint daher der Kalender vielversprechender, was die Pflege angeht, allerdings bekäme ich dann eine andere Darstellung, eben nach Uhrzeiten (in den Zeilen), nicht nach Gruppen - deshalbe habe ich mich ja in meinem ursprünglichen Post gefragt, ob vielleicht datagrid oder anderes eine Lösung sein könnte, wie die hier angedachten TVs und Chunks - ich werd da wohl auch mal mit rumspielen.

              Ich frag mich nur, ob ich der einzige bin, der eine Vereinsseite mit modx umgesetzt hat und so eine Trainingsübersicht für verschiedene Gruppen braucht - oder sowas wird tatsächlich bisher von allen Betroffenen manuell gepflegt.

              Frisco

              Der Pflegeaufwand hängt also hauptsächlich von Feiertagen und Sonderaktionen ab, die lange vorher feststehen, die eigentlichen Trainingszeiten ändern sich vielleicht 2x im Jahr, und da auch nur für bestimmte Gruppen, nicht für alle.

              rasc:
              Die Pflege über TVs und chunks gefällt mir, man könnte bspw. die TVs nach Gruppen und Wochentagen benennen (4-6Mo, 4-6Di ..., 6-8Mo, 6-8Di usw.), und dort den Inhalt einpflegen, der dann in den Zellen der Tabelle ausgegeben wird. Eigene Ansichten nach Gruppen wären dann sehr einfach umzusetzen.

              Die Pflege von Sondertagen und Ferientrainings scheint mir aber noch umständlich, entweder müßte ich die Inhalte aller TVs ändern, und nach den Ferien wieder zurück, und das ganze zeitgenau, also ohne das vorher einstellen zu können, oder ich bräuchte weitere TVs, die ich dann aber für bspw. die Ferien im Template austauschen müßte. Oder siehst du da einen einfacheren Weg?

                • 24495
                • 407 Posts
                Dadurch, dass Du im großen und ganzen die Trainingszeiten als Konstanten hast, die sich nur gelegentlich ändern, sehe ich im Augenblick keine einfache Möglichkeit. Sondertermine einzupflegen, die sporadisch für ein oder zwei Wochen gelten, um dann wieder durch die "Defaultwerte" ersetzt zu werden, da wird es schon schwieriger.

                Mal ins Unreine gedacht: Du könntest auf den Gruppenseiten die TVs für die Inhalte der Wochentage verdoppeln, dazu TVs einfügen für die Auswahl der Tage (Anfang und Ende) und die Auswertung per Script regeln:
                Wenn Anfangstag gesetzt und Endtag nicht gesetzt --> für diesen Tag den Ersatzwert ausspielen, sonst Defaultwert
                Wenn Anfangstag gesetzt und Endtag gesetzt --> für alle Tage von-bis Ersatzwerte ausspielen, sonst Defaultwerte
                Klappt aber immer nur in der jeweils aktuellen Woche, Du hast also keine Vorschau auf zukünftige Zeiten. Für sowas bräuchtest Du schon ein Kalenderscript mit Blätterfunktion. Da fällt mir aber nichts Geeignetes ein.
                  • 10190
                  • 187 Posts
                  Hm, vielleicht gibt’s ja noch ’ne andere Lösung, aber da brauch ich nochmal eure Hilfe:

                  Ich hab beim Testen mit GoogleEvents gesehen, dass es Platzhalter gibt, die man in Chunks verwenden kann, deren Name man wiederum im Snippetcall als Template-Parameter übergeben kann:
                  &tpl=`ChunkName`

                  Die Platzhalter gibt es für jedes einzelne Element eines Termins, so wie Name, Anfangszeit, Endzeit usw., z.B.:

                  Kinder, 5-8 Jahre - The "What" you entered in your event.
                  Hier könnte ein erklärender Text stehen - The "Description" of your event.
                  Hier könnte ein Ort stehen, wie Haupt-Dojo, Eifel, ASV etc. - The "Location" of your event.
                  4:00pm - The time your event starts.
                  4:40pm - The time when your event ends.
                  Monday, January, 14th, 2008 - The date when your event starts.
                  Monday, January, 14th, 2008 - The date when your event ends. This is usually the same as your start date, unless the event spans over multiple days.
                  1 - The number of the event in the sequence. Use this if you want to number the to events similar to the way I do on the demo.
                  http://www.google.com/calendar/event?eid=ZTY0ZDd2dDgzaGx0c2pyM3FoaWM0azh2Ym9fMjAwODAxMTRUMTUwMDAwWiBhbmRyZS5iaXNjaG9mQG0 - This is the HREF for entry hosted by Google.com
                  1200322800 - Unix timestamp of the start time. Useful for use with PHx.
                  1200325200 - Unix timestamp of the start time. Useful for use with PHx.

                  (s. http://bischof.homelinux.net/modx/index.php?id=101&yearID=2008&monthID=1 unter der Überschrift "Trainingszeiten ab 01. Oktober 2006")

                  Wenn es nun eine Möglichkeit gäbe, auf diese Daten direkt zuzugreifen, ohne den restlichen Output des Snippets, dann könnte ich mir die Tabelle recht einfach selbst zusammenbasteln.

                  Allerdings bräuchte ich dazu entweder sowas wie Templatelogik, um abhängig von Startdatum und dem Was? des Events (s. Beispieldaten oben) entscheiden zu können, was in welche Zelle kommt, oder ich müßte evtl. Termine wie "kein Training" anlegen, um einfach in einer Schleife für eine Woche für jede Gruppe und jeden Tag immer einen Eintrag zu haben.

                  Das könnte ja bspw. eine Datenquelle für datagrid sein.

                  Irgendne Idee? Muss ich da ein eigenes Snippet schreiben, oder GoogleEvents erweitern? Oder geht’s auch einfacher?

                  Frisco



                    • 10449
                    • 956 Posts
                    Ich finde, du gehst das alles viel zu kompliziert an. Wie gross ist denn die Chance, dass jemand von Gruppe A sich interessiert, wann Gruppe D trainiert? Erstelle doch einfach einen Kalender je Gruppe. Das wäre doch übersichtlicher.

                    Du könntest ein spezielles Template mit TVs je Wochentag erstellen, für jede Gruppe ein sep. Template.

                    Mit Datenbank etc. das ganze abstrahieren wäre mühsam, da du INNERHALB einer Gruppe noch Unter-Gruppen hast:
                    d.h.
                    Kinder 10–13 Jahre
                    *Anfänger
                    *Mittelstufe
                    *Oberstufe

                    sind ja eigentlich drei Gruppen innerhalb einer Haupt-Gruppe. Wenn du das ganze nicht abstrahierst, kannst du es auch nicht via Ditto/phX/Voodoo rausfischen nachher.

                    Da es ja eh kein Kalender im strengen Sinne des Wortes ist, sondern nur eine Wochenansicht (d.h. es gibt keine Daten wie 23. Feb. 2008, sondern nur Wochentage), ist ein Kalender eh Overkill. Wie ich das verstehe, ist so eine Tabelle ja für eine ganze Saison / Halbjahr gültig ("ab Sept. 07").

                    Oder - anstelle eines Kalenders (Tabellenform) - eine Liste? Jede Gruppe würde dann via CSS mit einer eigenen Farbe gekennzeichnet sein, oder hätte ein eigenes Icon vorneweg. Ein Untermenu würde dann die Monate auflisten, default wäre der aktuelle Monat. Visuell unterteilt in Wochen. (auch nur sinnvoll, wenn es special events gäbe, d.h. Einzel-Termine)
                    Bei Google Calendar o.ä. müsstest du dann alles als "recurring events" (wiederkehrende Ereignisse) speichern.