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.













