Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Calendar - Tagesansicht verändern

Eingetragen von Kreba (88)
am 03.11.2007 - 21:09 Uhr in
  • Module
  • Drupal 5.x

Hallo,
ich habe das Calendar-Modul installiert. Ich lass einen Inhaltstyp über das Modul anzeigen, in den ich zusätzliche Felder eingefügt hab. In der Monatsansicht kann ich festlegen, welche Felder angezeigt werden sollen. Da lass ich nur den Titel und die Startzeit der Veranstaltung zu. In der Tagesansicht werden leider alle Felder angezeigt. Ich möchte aber auch da nur bestimmte Felder anzeigen lassen. Kann ich das irgendwo einstellen?

‹ Buddyliste im Profil mit Zufallsbild CSV-Import - Tabellendarstellung ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nimm Dir mal das Calendar

Eingetragen von quiptime (4972)
am 03.11.2007 - 21:50 Uhr

Nimm Dir mal das Calendar Modul zur Brust.

In der Moduldatei calendar.theme:

<?php
/**
* Format a calendar view
*
* @param day
*   The day to display.
*/
function theme_calendar_day($op, $header, $rows) {
  if (
strstr($header[0]['data'], '<table')) {
   
$output = $header[0]['data'];
   
$header = array();
  }
 
$output .= theme("table", $header, $rows);
  return
'<div class="calendar-calendar"><div class="day-view">'. $output ."</div></div>\n";
}

/**
* Format an calendar node for display in an expanded calendar, like a calendar page
*
* @param node
*   The node being displayed
*/
function theme_calendar_node_day($node) {
 
$output .= '<div class="calendar dayview">'."\n";
 
$output .= theme('calendar_stripe_stripe', $node);

 
$output .= '<h2 class="title">'. l($node->title, "$node->url", array('title' => t('view this item'))) .'</h2>'."\n";

 
$output .= '<div class="times">';
 
$output .= '<span class="start">'. $start_label . $node->start_format .'</span>'."\n";
  if (
$node->calendar_start != $node->calendar_end && $node->calendar_end) {
   
$output .= '<span class="end"> - '. $end_label . $node->end_format .'</span>'."\n";
  }
 
$output .= '</div>';

  if (
$node->teaser) {
   
$output .= '<div class="content">'. ($node->teaser) ."</div>\n";
  }
 
$output .= '<div class="links">'. theme('links', $node->calendar_links) ."\n</div>";
 
$output .= "</div>\n";
  return
$output;
}
?>

ist der Ansatzpunkt. Nun ist die Frage welche Felder "abgeschalten" werden sollen. Vermutlich braucht man noch ne andere theme Funktion.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe die Ausgabe auf

Eingetragen von Kreba (88)
am 03.11.2007 - 22:10 Uhr

Ich habe die Ausgabe auf diese Zeile eingegrenzt:

$output .= '<div class="content">'. check_markup($node->teaser) ."</div>\n";

wohin aber check_markup($node->teaser) verweist habe ich noch nicht raus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

node_view($node, TRUE, FALSE);

Eingetragen von Kreba (88)
am 03.11.2007 - 22:38 Uhr

OK, gleich in der ersten Funktion wird $node->teaser festgelegt

function theme_calendar_calendar_node($node, $type) {
   // Display the regular teaser view for local events.
   if (!$node->remote && $type == 'calendar_node_day') {
     $node = node_load($node->nid);
     $node->teaser = node_view($node, TRUE, FALSE);
     $node->title = '';
   }
   // For other views, construct a teaser out of the provided fields.
   else {...

in der Zeile $node->teaser = node_view($node, TRUE, FALSE); wird eine Funktion aufgerufen, die leider nicht in der Datei calendar.theme enthalten ist. Die Suche kann also weiter gehen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: in der Zeile

Eingetragen von quiptime (4972)
am 04.11.2007 - 00:23 Uhr
Zitat:

in der Zeile $node->teaser = node_view($node, TRUE, FALSE); wird eine Funktion aufgerufen, die leider nicht in der Datei calendar.theme enthalten ist. Die Suche kann also weiter gehen

Guckst Du:

http://api.drupal.org/api/function/node_view/5

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: wohin aber

Eingetragen von quiptime (4972)
am 04.11.2007 - 00:25 Uhr
Zitat:

wohin aber check_markup($node->teaser) verweist habe ich noch nicht raus.

Guckst Du:

http://api.drupal.org/api/function/check_markup/5

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das heißt dann aber jetzt

Eingetragen von Kreba (88)
am 04.11.2007 - 09:19 Uhr

Das heißt dann aber jetzt für mich, dass ich mir in der Funktion theme_calendar_calendar_node($node, $type) eine eigene Routine schreiben muss, die mir die Ausgabe so wie ich sie will zusammenstellt. Da sich die Funktion bisher bei anderen Modulen bedient, die ich nicht verändern möchte, da ich nicht weiß was dann wo anders passiert. Oder gibt es jetzt mit der Erkenntnis, dass sich das Calendar-Modul bei den anderen Modulen bedient doch noch eine Möglichkeit über Einstellungen etwas zu verändern?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Deine Fruehstuecksbroetchen

Eingetragen von quiptime (4972)
am 04.11.2007 - 09:52 Uhr

Deine Fruehstuecksbroetchen kannst Du doch auch kaufen wo Du willst. Oder Du taust welche aus dem Frost auf.

So ist es auch bei der/einer theme Funktion. Wenn diese an einer Stelle eine bestimmte Funtionalitaet mittels einer anderen Funktion aus einem anderen Modul realisiert dann kannst Du das in Deinem selbst erstellten Template veraendern.
Du kannst diesen Aufruf anderer Module so aendern wie Du moechtest. Kannst dabei auch auf das Ansprechen anderer Module voellig verzichten und eigenen PHP-Code implementieren wie Du willst.
Damit Du nun nicht eigene PHP-Funktionalitaeten entwickeln musst bietet es sich aber an, auf Drupal zurueckzugreifen. Man muss ja das Fahrad kein zweites Mal erfinden. Oft sind Funktionalitaeten zur Realisierung bestimmter Dinge, in anderen Modulen eben, schon vorhanden.

http://api.drupal.org

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

quiptime wrote: Damit Du

Eingetragen von Kreba (88)
am 04.11.2007 - 10:35 Uhr
quiptime schrieb

Damit Du nun nicht eigene PHP-Funktionalitaeten entwickeln musst bietet es sich aber an, auf Drupal zurueckzugreifen. Man muss ja das Fahrad kein zweites Mal erfinden. Oft sind Funktionalitaeten zur Realisierung bestimmter Dinge, in anderen Modulen eben, schon vorhanden.

Genau deshalb frag ich hier doch, weil ich diese andere Module bzw. Möglichkeiten noch nicht kenne.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich habe das Problem jetzt

Eingetragen von Kreba (88)
am 06.11.2007 - 12:55 Uhr

ich habe das Problem jetzt für mich in der Weise gelöst, indem ich jetzt die dev-Version des Calendar-Modules verwende. ich habe immer noch keinen Weg gefunden, wie ich aus der Template-Datei heraus den Inhalt der Tagesansicht bestimmen kann bzw. wie ich einzelne Felder meines Nodes, das ich anzeigen will anspreche. So wie es mit der dev-Version angezeigt wird ist aber akzeptabel und damit auch OK.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: wie ich aus der

Eingetragen von quiptime (4972)
am 06.11.2007 - 13:03 Uhr
Zitat:

wie ich aus der Template-Datei heraus den Inhalt der Tagesansicht bestimmen kann bzw. wie ich einzelne Felder meines Nodes, das ich anzeigen will anspreche

Was soll denn in der Tagesansich nicht angezeigt werden?

Poste bitte den Link der Tagesansicht.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

der Link ist

Eingetragen von Kreba (88)
am 06.11.2007 - 13:12 Uhr

der Link ist http://aktiv.jh-skunk.de/calendar/2007/11/8

Mir würde der Titel, die Uhrzeit des aktuellen Termins so wie in der Monatsansicht, der Veranstaltungsort und der Anrisstext reichen.

Die weiteren Termine, das Datum und der Link sind überflüssig.

mein ursprüngliches Problem war aber, dass die Anzeige bei der ursprünglichen Calendar-Version nicht Formatiert war. Da sah es so aus:

Datum: 25.10.2007 - 19:0008.11.2007 - 19:0029.11.2007 - 19:0013.12.2007 - 19:00Veranstaltungsort: Jugendhaus Hochdorf SKUNK
Der Hardrock-Cafe-Abend im Jugendhaus. Marcel Ruppert legt zweimal im Monat, immer am zweiten und am letzten Donnerstag von 19 bis 21 Uhr Rockmusik auf. Es soll ein Querschnitt durch die Vielfalt der Rockmusik laufen. Von Hard and Heavy bis zur Rockballade. Tendenz eher etwas härter. Freunde der Rockmusik sind eingeladen an diesen Abenden ins Jugendhaus zu kommen - Hip-Hop läuft wann anders - versprochen! :-)
Link zur Veranstaltung:
hier klicken

Und das hat mir, denk ich mal, zurecht nicht gefallen. Deshalb hatte ich einen Weg gesucht, die felder, die ich nicht wollte rauszufiltern. So wie es jetzt mit der dev-Version angezeigt wird, ist aber auch OK.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, ich glaube Du machst es

Eingetragen von quiptime (4972)
am 06.11.2007 - 13:42 Uhr

Ok, ich glaube Du machst es Dir schwerer als es ist.

Die Loesung Deines Problemes wurde hier bereits gepostet.

Wenn Du in einem Template irgendwelche Funktionen aufrufst um im Template etwas bestimmtes auszugeben, dann wird durch diesen Aufruf an keiner anderen Stelle etwas veraendert. Siehe Deine Post's:

Zitat:

Ich habe die Ausgabe auf diese Zeile eingegrenzt:

$output .= '

'. check_markup($node->teaser) ."

\n";

wohin aber check_markup($node->teaser) verweist habe ich noch nicht raus.

und

Zitat:

OK, gleich in der ersten Funktion wird $node->teaser festgelegt
function theme_calendar_calendar_node($node, $type) {
// Display the regular teaser view for local events.
if (!$node->remote && $type == 'calendar_node_day') {
$node = node_load($node->nid);
$node->teaser = node_view($node, TRUE, FALSE);
$node->title = '';
}
// For other views, construct a teaser out of the provided fields.
else {...

in der Zeile $node->teaser = node_view($node, TRUE, FALSE); wird eine Funktion aufgerufen, die leider nicht in der Datei calendar.theme enthalten ist. Die Suche kann also weiter gehen ;)

Mir scheint, Du hast mit die Logik der Templateverwendung noch nicht ganz verstanden.

Wenn der Code der function theme_calendar_node_day($node) den Inhalt der Tagesansich ausgibt dann ist das auch der Ausgangspunkt fuer den Inhalt der Template-Datei "calendar_node_day.tpl.php".
Wenn Du nun bei diesem Code in der Template-Datei bestimmte Teile weglaesst und damit bestimmte Teile nicht ausgegeben werden ist das ok. Im Template ist es egal, welche Drupaleigenen Funktionen aufgerufen werden. Der Aufruf dieser Funktionen im Template-Code entspricht dem Sinn der Anwendung dieser Funktionen - dazu sind diese Funktionen ja auch da.

Einzig etwas "knifflig" ist beim Falle sich wiederholender Termine die Beschraenkung des Datums nur auf das aktuelle Datum. Hier kann man keine Funktion aufrufen um die Anzeige mehrerer Termine auf nur einen Termin zu beschraenken. Um dies zu erreichen muss man mit eigener Programmlogik (PHP programmieren) aus allen Terminen den Termin des aktuellen Datums herausloesen.

Anders wird es nicht gehen. Ich weiss nicht was Du erwartet hast bzw. Du glaubst das es funktionieren soll. Templates erstellen heisst eben oft selbst programmieren. Das ist eines der Prinzipien von Drupal.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

quiptime wrote: Wenn der

Eingetragen von Kreba (88)
am 06.11.2007 - 14:23 Uhr
quiptime schrieb

Wenn der Code der function theme_calendar_node_day($node) den Inhalt der Tagesansich ausgibt dann ist das auch der Ausgangspunkt fuer den Inhalt der Template-Datei "calendar_node_day.tpl.php".
Wenn Du nun bei diesem Code in der Template-Datei bestimmte Teile weglaesst und damit bestimmte Teile nicht ausgegeben werden ist das ok. Im Template ist es egal, welche Drupaleigenen Funktionen aufgerufen werden. Der Aufruf dieser Funktionen im Template-Code entspricht dem Sinn der Anwendung dieser Funktionen - dazu sind diese Funktionen ja auch da.

ich habe schon versucht über div. Funktionen die ich gefunden hab den Inhalt zu verändern. Ich habe eben immer noch nicht die Richte Funktion gefunden. Ich hab nach einer Funktion gesucht, der ich sagen kann, gib mir den Inhalt von dem Feld X im Node Y.

quiptime schrieb

Einzig etwas "knifflig" ist beim Falle sich wiederholender Termine die Beschraenkung des Datums nur auf das aktuelle Datum. Hier kann man keine Funktion aufrufen um die Anzeige mehrerer Termine auf nur einen Termin zu beschraenken. Um dies zu erreichen muss man mit eigener Programmlogik (PHP programmieren) aus allen Terminen den Termin des aktuellen Datums herausloesen.

Was ich dabei nicht verstehe ist, warum das bei der Monatsansicht klappt. Da wird nur die jeweils richtige Uhrzeit angezeigt und nur die Uhrzeit. Ich hab mir den Quelltext angeschaut, bin aber noch nicht schlau daraus geworden.

quiptime schrieb

Anders wird es nicht gehen. Ich weiss nicht was Du erwartet hast bzw. Du glaubst das es funktionieren soll. Templates erstellen heisst eben oft selbst programmieren. Das ist eines der Prinzipien von Drupal.

Ich erwarte nichts anderes. Klar will und werde ich noch selber programmieren. Aber zunächst muss ich doch die Anknüpfpunkte finden. Wie spreche ich welches Feld in einem Node an. Wenn ich das weis, dann ist der Rest kein Problem mehr. Bisher habe ich aber nur eine Funktion gefunden, die mir einen ganzen Node liefert.

Aber wie gesagt, es ist gerade nicht mehr meine Hauptbaustelle, da ich mit der jetzigen Lösung auch leben kann. Vielleicht löse ich es ja später mal wenn ich mehr durchblick habe und denke dann, ach wie einfach. Ich habe diesen Thread nur wieder aufgegriffen um anderen Hilfesuchenden mitzuteilen, dass es sich lohnen kann die dev-Version anzuschauen.

Natürlich, wenn ich noch einen Hinweis bekomme, der mir weiterhilft, dann freut mich das auch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 1 Stunde
  • Hey danke
    vor 1 Woche 20 Stunden
  • Update: jetzt gibt's ein
    vor 1 Woche 1 Tag
  • Hallo, im Prinzip habe ich
    vor 1 Woche 6 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 6 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 3 Tagen
  • In der entsprechenden View
    vor 2 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 3 Tagen
  • gelöst
    vor 4 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 20 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 15 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association