BLOG

One Calendar to rule them all...

Jeder, der sich schon länger mit dem Kalender-Modul herumgeärgert hat, weiß: das Ding ist zickig.
Das Verhalten ist in einiger Hinsicht absolut Views-untypisch: so funktionieren Argumente und Filter erst dann fehlerfrei, wenn sie auch im Default angelegt sind (http://drupal.org/node/300743).

Aufgabe

Nodetyp myEvent hat CCK-Date Feld Termin sowie CCK-Taxonomy Sports mit terms wie "Handball", "Tennis", "Squash".

Normale Kalenderausgabe (Page) soll exposed filter "any,Handball,Tennis,Squash" haben - Voreingestellt ist "any".

Kalender im Block soll auf Term-Argument in einer URL wie dieser reagieren: taxonomy/term/3

Vorgehen

• Calender-View duplizieren

Arbeiten in der Originalview hat immer mal zu Fehlverhalten geführt. Dazu reicht es

  • Calendar-View zurücksetzen (wenn bereits angefasst)
  • Calendar-View exportieren und in TextDatei kopieren
  • Calendar-View deaktivieren
  • View importieren mit dem Inhalt der gesicherten Textdatei. Auf Wunsch einen anderen Namen eintragen.
  • speichern
• übliche Einstellungen vornehmen (siehe auch Screencast bei gotdrupal.com)

Einstellungen beziehen sich auf View-Defaults:

  • In Arguments>Date das Datum auf Termin ändern:  Setze Chekbox Datumsfeld(er) (Date Fields) auf Inhalt: Termin (field_termin)
  • Sortierkriterium ebenfalls auf Inhalt: Termin ändern.
 • Einstellungen für exposed View

Achtung: auch diese Einstellungen unbedingt in View-Defaults machen, sonst funktioniert es nicht:

  • Filter add: Inhalt: Sports und Hervorheben klicken
  • dann ankreuzen: Option, Eine Option erzwingen
  • Sinnvolle Bezeichnung wählen
• Einstellungen für Terms-Argument

Auch hier alle Einstellungen in View-Defaults setzen:

  • Argumente add: Taxonomie: Begriff-ID
  • Standardargument PHP-Code:        return (arg(0)=='taxonomy') ? arg(2): 'all';
  • Validatoroption: Taxonomie-Begriff: dort Sports ankreuzen - Argumenttyp: Begriff-ID
  • ["Die Pfadnavigation für die übergeordneten Begriffe festlegen" scheint im Breadcrumb nichts zu bewirken]
  • auf "aktualisieren" klicken und
  • Argumente umsortieren: 1. Argument: Taxonomy, 2. Argument: Datum

Ergebnis

Die normale Kalenderseite ist jetzt über calender/all zu erreichen und zeigt einen Kategorienfilter.

Der Block zeigt im Normalfall alle Termine unabhängig von der Taxonomy.

Falls der Block auf der Standard-Taxonomy-Seite ausgegeben wird (kann auch mit Panels gesteuert werden), wird der Term aus der URL gefischt und filtert die Kalendereinträge entsprechend.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.