Calendar Anzeige nach Terminkategorien
Eingetragen von Micha1111 (290)
am 06.12.2007 - 08:00 Uhr in
am 06.12.2007 - 08:00 Uhr in
Ich habe den Kalender mit den Modulen Calendar, Date und Views zum Laufen gebracht.
Dabei habe ich dem neuen Inhaltstyp "Termin" in Taxonomy verschiedene Kategorien hinzugefügt und auch das entsprechende Feld für die Termineingabe hinzugefügt.
Ich schaffe es aber nicht, über die Views eine Auswahlmöglichkeit für den User einzurichten, dass er z.B. über Checkboxen oder eine Liste auswählen kann, für welche Kategorien die Termine angezeigt werden sollen.
Soweit ich das ganze Modul verstanden habe, muss das über Einstellungen bei den "Argumenten" funktionieren. Klappt aber leider nicht.
Hat jemand eine entsprechende Anleitung ?
- Anmelden oder Registrieren um Kommentare zu schreiben
Calendar Anzeige nach Terminkategorien
am 18.12.2007 - 00:04 Uhr
Offenbar hat keiner dieses Problem, oder nur keine Lösung ?
Ich habe weiter probiert und folgende Lösung gefunden:
Aufbau der Taxonomy-Kategorien für den Inhaltstyp "Termin"
Alle Termine (Ebene 1)
-Erwachsene (Ebene 2)
--Mannschaft1 (Ebene 3)
--Mannschaft2 (Ebene 3)
-Jugend (Ebene 2)
--Jugendmannschaft1 (Ebene 3)
--Jugendmannschaft2 (Ebene 3)
Dadurch wird bei der Termineingabe (über Calendar) ein Auswahllistenfeld für die Kategorien (alle 3 Ebenen) automatisch hinzugefügt, d.h. der eingebende User muss jeden Termin einer Kategorie zuordnen.
Unter Views (hier die Listenansicht) habe ich einen Filter "Taxonomie: Begriff der Termin-Gruppe" hinzugefügt.
Im Feld "Option" habe ich 2 eingetragen, was gleichbedeutend mit Depth= Hierarchie-Ebenen 2 (also bis 3) ist.
Dann wird im Kopf der Ansicht in Listenauswahlfeld angezeigt, in dem der User auswählen kann, welche Termine er angezeigt bekommen möchte.
Wird auf ALLE TERMINE geklickt, werden auch alle angezeigt.
Wird auf Erwachsene geklickt, werden auch nur die Termine der Erwachsenen angezeigt. usw.
Will man das m.E. lästige Auswahlfeld "Ist Alles von" wegbekommen und außerdem ein Dropdownfeld erzeugen (statt offene Liste, die so viel PLatz wegnimmt) muß man noch "Single Force" und "Operatorsperre" anhaken.
So weit, so gut !!
Tut sich aber gleich ein neues Problem auf:
Die Ebenen 1 und 2 sollen nur der Zusammenfassung der Terminanzeigen dienen !!
Leider kann der User bei der Termineingabe ungewollt diese Ebenen auswählen (er soll aber nur einen Punkt der Ebene 3 auswählen dürfen).
Meine bisherigen Versuche, die Auswahl über das Taxonomy-Access-Control-Modul einzuschränken / zu unterbinden sind bisher leider fehlgeschlagen.
Ich werden wohl einen neuen Thread eröffnen müssen.
Calendar Anzeige nach Terminkategorien
am 29.12.2007 - 13:41 Uhr
Da keiner eine Antwort hat, muss ich wohl davon ausgehen, dass man die Ebenen 1 und 2 nicht ausschließen kann, ohnne dass damit auch Ebene 3 verschwindet.
Also habe ich auf die Hierarchie verzichtet und nun ist nur noch Ebene 3 vorhanden.
Zur Darstellung der Terminliste habe ich dann verschiedene Ansichten erstellt, die sich nur im Filter unterscheiden.
Die gefilterten Listen kann man dann über die verschiedenen Menüpunkte aufrufen.
Mir gefällt allerdings der Aufbau der Liste nicht.
Ich kann auch nicht nachvollziehen, über welche Datei die Liste überhaupt erzeugt wird.
Wahrscheinlich geht es über den Theme-Wizard, der eine Funktion erzeugt, die man in die template.php einfügen soll.
Aber wie wird die Funtion dann aufgerufen ?
taxonomy.tpl.php
am 29.12.2007 - 16:20 Uhr
Hi Micha,
versuch doch eine taxonomy.tpl.php anzulegen in der dann das Aussehen der Liste gerendert wird. Wenn du nur möchtest das deine user auf die Ebene drei zugreifen können geht das über die argumente im view.
Hast du eine seite online wo man mal schauen kann?
Dirk
Calendar Anzeige nach Terminkategorien
am 29.12.2007 - 19:49 Uhr
Also die Anzeige der auswählbaren Kategorien in der Eingabemaske für die Termineingabe kann m.E. nichts mit der Template-Datei zu tun haben, sondern nur mit der Rechtevergabe zu lösen sein, oder ?
Trotzdem Danke für Dein Statement.
Wenn Du Lust hast, schau doch mal rein unter http;//drupal.michas-cms.de
Ich versuche nun schon länger, die Termine als vernünftige Liste auszugeben, d.h.
Tag, Uhrzeit etc. nebeneinander, oder höchstens einen Hinweistext in der 2. Zeile eines jeden Termins.
Über views und den Theme-Wizard bin ich bisher nicht weitergekommen.
Vielleicht hast Du eine Idee ?!
Geht alles über CSS oder theming des views
am 29.12.2007 - 21:07 Uhr
Hi Micha,
hier du kannst views auch nochmal über die template themen.
Beispiel folgt:
<?php
function phptemplate_views_view_table_arbeitsgebiet_user($view, $nodes, $type, $html = TRUE) {
$fields = _views_get_fields();
$html = '';
foreach ($nodes as $node) {
$row = array();
$cell['class']='view-field-arbeitsgebiet';
$cell['data']="";
foreach ($view->field as $field) {
switch ($field['field']) {
case 'name':
$cell['data'] .= '<div class="view-field-'.$field['queryname'].'">';
$cell['data'] .= '<a href="../user/' .arg(1). '/galerie'. '">' . views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view) . '</a>';
$cell['data'] .= '</div>';
break;
case 'field_bildarbeitsgebiet_fid':
$cell['data'] .= '<div class="view-field-'.$field['queryname'].'">';
$cell['data'] .= '<a href="../user/' .arg(1). '/galerie'. '">' . views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view) . '</a>';
$cell['data'] .= '</div>';
break;
case 'edit':
$cell['data'] .= '<div class="view-field-'.$field['queryname'].'">';
$cell['data'] .= views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view).'</tr><tr>';
$cell['data'] .= '</div>';
$cell['class'] = 'change_2';
break;
}
}
$row[] = $cell;
$rows[] = $row;
}
return theme('table', $header, $rows, array('class' => 'show-table'));
}
?>
oder alles über CSS schau mal hier www.visum-reportagen.de
Dirk
Calendar Anzeige nach Terminkategorien
am 30.12.2007 - 00:05 Uhr
Sieht gut aus, aber ich habe wohl noch ein paar grundsätzliche Drupal-Defizite.
Ich habe nämlich wieder keinen Plan, wie ich Deine Template-Funktion einbauen kann (muss wohl in die template.php meines theme) und wie sie dann aufgerufen wird, sprich bezogen auf meine Termine, woher weiß Drupal, dass es die Daten aus meinem Kalender (Inhaltstyp "termin" über taxonomy) aufrufen soll und wie sie dargestellt werden sollen ?
Irgendwie muss doch die Verbindung zwischen Daten und Layout hergestellt werden.
Das Grundprinzip leuchtet mir noch nicht ein.
Die Terminliste an sich mit den benötigten Feldern habe ich über views erzeugt (als Referenz habe dabei ich "termine_alle" eingegeben, es wird mir auch eine Liste angezeigt, auch wenn ich nicht weiß, woher dieses mir nicht gefallende Layout kommt.
Muss ich dann in views die Referenz ändern ?
der view machts
am 30.12.2007 - 01:09 Uhr
Hi micha,
der view machts. du überschreibst einfach nur das aussehen vom view. Da kannst du auch neue funtionen einbauen etc. eine Anleitung www.drupal.org/node/128741.
Dirk