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

Calendar - Wochentage in View ausblenden

Eingetragen von deelite (468)
am 09.02.2011 - 13:00 Uhr in
  • Module
  • Drupal 6.x

Hallo,

kennt jemand eine Möglichkeit, in der Wochenansicht von Calendar Wochentage auszublenden (Sa, So)?

Vielen Dank schon mal fürs Lesen.

‹ Gruppenpost Edit Menüpunkt TinyMCE, WYSIWYG, D7 konfigurieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Template

Eingetragen von drubb (557)
am 10.02.2011 - 10:27 Uhr

Das Modul Calendar liefert eine Template-Datei für die Darstellung mit, für die Wochenansicht ist das die calendar-week.tpl.php. Diese in das eigene Theme-Verzeichnis kopieren und nach Wunsch anpassen.

Theoretisch müsste es reichen, folgenden Code zu entfernen:

<?php foreach ($day_names as $cell): ?>
        <th class="<?php print $cell['class']; ?>">
          <?php print $cell['data']; ?>
        </th>
<?php endforeach; ?>

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Spalten ausblenden

Eingetragen von drubb (557)
am 10.02.2011 - 10:36 Uhr

Sorry, ich habe deine Frage vielleicht falsch verstanden. Der obige Ansatz blendet die Zeile mit den Wochentagsnamen aus. Wenn Du ganze Tage weglassen willst, musst du anders vorgehen. Der Ansatz ist aber wieder die Template-Datei calendar-week.tpl.php.

An das Templates werden zwei Arrays übergeben:

Zitat:

* $day_names: An array of the day of week names for the table header.
* $rows: The rendered data for this week.

Diese einfach mal mit Devel anzeigen lassen, und mit unset() die nicht gewünschten Tage (Zeilen) entfernen.

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank bb, allerdings

Eingetragen von deelite (468)
am 14.02.2011 - 12:52 Uhr

Vielen Dank bb,

allerdings komme ich in der Datei auf keinen Nenner.

Der Einfachheit halber poste ich die Datei hier mal:

<div class="calendar-calendar"><div class="week-view">
<table class="full">
  <thead>
    <tr>
      <?php if($by_hour_count > 0 || !empty($start_times)) :?>
      <th class="calendar-agenda-hour"><?php print t('Time')?></th>
      <?php endif;?>
      <?php foreach ($day_names as $cell): ?>
        <th class="<?php print $cell['class']; ?>">
          <?php print $cell['data']; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php for ($i = 0; $i < $multiday_rows; $i++): ?>
    <?php
      $colpos
= 0;
     
$rowclass = "all-day";
      if(
$i == 0) {
       
$rowclass .= " first";
      }
      if(
$i == $multiday_rows - 1) {
       
$rowclass .= " last";
      }
   
?>

    <tr class="<?php print $rowclass?>">
      <?php if($i == 0 && ($by_hour_count > 0 || !empty($start_times))) :?>
      <td class="<?php print $agenda_hour_class ?>" rowspan="<?php print $multiday_rows?>">
        <span class="calendar-hour"><?php print date_t('All day', 'datetime')?></span>
      </td>
      <?php endif; ?>
      <?php for($j = 0; $j < 6; $j++): ?>
        <?php $cell = (empty($all_day[$j][$i])) ? NULL : $all_day[$j][$i]; ?>
        <?php if($cell != NULL && $cell['filled'] && $cell['wday'] == $j): ?>
          <?php for($k = $colpos; $k < $cell['wday']; $k++) : ?>
          <td class="multi-day no-entry"><div class="inner">&nbsp;</div></td>
          <?php endfor;?>
          <td colspan="<?php print $cell['colspan']?>" class="multi-day">
            <div class="inner">
            <?php print $cell['entry']?>
            </div>
          </td>
          <?php $colpos = $cell['wday'] + $cell['colspan']; ?>
        <?php endif; ?>
      <?php endfor; ?> 
      <?php for($j = $colpos; $j < 7; $j++) : ?>
      <td class="multi-day no-entry"><div class="inner">&nbsp;</div></td>
      <?php endfor;?>
    </tr>
    <?php endfor; ?> 
    <?php foreach ($items as $time): ?>
    <tr class="not-all-day">
      <td class="calendar-agenda-hour">
        <span class="calendar-hour"><?php print $time['hour']; ?></span>
      <span class="calendar-ampm"><?php print $time['ampm']; ?></span>
      </td>
      <?php $curpos = 0; ?>
      <?php foreach ($columns as $index => $column): ?>
        <?php $colpos = (isset($time['values'][$column][0])) ? $time['values'][$column][0]['wday'] : $index; ?>
        <?php for ($i = $curpos; $i < $colpos; $i++): ?>
        <td class="calendar-agenda-items single-day">
          <div class="calendar">
            <div class="inner">&nbsp</div>
          </div>
        </td>
        <?php endfor; ?>  
        <?php $curpos = $colpos + 1;?>
        <td class="calendar-agenda-items single-day">
          <div class="calendar">
          <div class="inner">
            <?php if(!empty($time['values'][$column])) :?>
              <?php foreach($time['values'][$column] as $item) :?>
                <?php print $item['entry'] ?>
              <?php endforeach; ?>
            <?php endif; ?>
          </div>
          </div>
        </td>
      <?php endforeach; ?>  
      <?php for ($i = $curpos; $i < 7; $i++): ?>
        <td class="calendar-agenda-items single-day">
          <div class="calendar">
            <div class="inner">&nbsp</div>
          </div>
        </td>
      <?php endfor; ?>  
    </tr>
   <?php endforeach; ?>  
  </tbody>
</table>
</div></div>

Vielleicht sieht ja jemand eine Lösung oder kennt einen anderen Weg.

Wie bereits geschrieben: ich brauche den Samstag und den Sonntag nicht in der Wochenansicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast Du Dich denn jemals mit

Eingetragen von wla (9215)
am 14.02.2011 - 15:25 Uhr

Hast Du Dich denn jemals mit Programmieren beschäftigt? Kennst Du den Aufbau einer Tabelle in HTML? Dann solltest Du keine Probleme haben, diesen Code zu verstehen und zu verändern. Es geht schließlich lediglich um den Umbau der Schleifen.

Beste Grüße
Werner

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Version?

Eingetragen von drubb (557)
am 14.02.2011 - 16:28 Uhr

Das scheint mir irgendwie eine ganz andere Datei zu sein. Benutzt du vielleicht Drupal 7? Bei mir ist die calendar-week.tpl.php wesentlich kürzer, sie erhält einen Array $day_names mit Zeilen für die Tagesnamen und $rows mit Zeilen für alle Tage, und wenn man z.B. das Wochenende (die letzten zwei Tage) entfernen will, reicht dazu z.B. ein je zweimaliges array_pop($day_names) und array_pop($rows) am Anfang der Datei.

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry, ich war mit einer

Eingetragen von deelite (468)
am 14.02.2011 - 17:24 Uhr

Sorry, ich war mit einer dev-Version unterwegs, aber D6. Die calendar-week.tpl.php der letzten stabilen Version sieht gänzlich anders aus:

<div class="calendar-calendar"><div class="week-view">
<table>
  <thead>
    <tr>
      <th class="calendar-agenda-hour"><?php print $by_hour_count > 0 ? t('Time') : ''; ?></th>
      <?php foreach ($day_names as $cell): ?>
        <th class="<?php print $cell['class']; ?>">
          <?php print $cell['data']; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="<?php print $agenda_hour_class ?>">
         <span class="calendar-hour"><?php print $by_hour_count > 0 ? date_t('All day', 'datetime') : ''; ?></span>
       </td>
      <?php foreach ($rows as $day): ?>
       <td class="calendar-agenda-items">
         <?php print $day['datebox']; ?>
         <div class="calendar">
         <div class="inner">
           <?php print array_key_exists('all_day', $day) && count($day['all_day']) ? implode($day['all_day']) : '&nbsp;';?>
         </div>
         </div>
       </td>
      <?php endforeach; ?> 
    </tr>
    <?php foreach ($items as $time): ?>
      <tr>
        <td class="calendar-agenda-hour">
        <span class="calendar-hour"><?php print $time['hour']; ?></span>
        <span class="calendar-ampm"><?php print $time['ampm']; ?></span>
      </td>
      <?php foreach ($columns as $column): ?>
        <td class="calendar-agenda-items">
          <div class="calendar">
          <div class="inner">
            <?php print isset($time['values'][$column]) ? implode($time['values'][$column]) : '&nbsp;'; ?>
          </div>
          </div>
        </td>
      <?php endforeach; ?>  
    </tr>
   <?php endforeach; ?>  

  </tbody>
</table>
</div></div>

Allerdings erschließt sich mir nicht, wie ich die von Dir erwähnten Änderungen da einarbeite ;-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vor diesem Code!

Eingetragen von drubb (557)
am 14.02.2011 - 18:06 Uhr

Also, die Template-Datei erhält als Parameter einen Array $day_names mit Namen von Tagen und einen Array $rows mit den jeweiligen Spalten(!) der Tage. In diesen Arrays hat jeder Tag eine Zeile. Du musst also einfach die jeweils zwei letzten Zeilen entfernen. Dazu einfach vor deinem Code Folgendes einfügen:

<?php
array_pop
($day_names); // Entfernt den letzten Tagesnamen (Sonntag)
array_pop($day_names); // Entfernt den vorletzten Tagesnamen (Samstag)
array_pop($rows); // Entfernt die letzte Tagesspalte (Sonntag)
array_pop($rows); // Entfernt die vorletzte Tagesspalte (Samstag)
?>


<div class="calendar-calendar"><div class="week-view">
<table>
...

Sollte eigentlich reichen. Ansonsten installier dir mal das Modul DEVEL und lass dir die Struktur dieser Arrays mal anzeigen:

dpm ($day_names);
dpm ($rows);

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir zeigt sich gerade ein

Eingetragen von deelite (468)
am 14.02.2011 - 20:13 Uhr

Mir zeigt sich gerade ein ganz anderes Problem, denn ich hatte den Code bereits so eingebaut - jedoch ohne Erfolg. Deshalb mein letztes Post.

Was ich auch ändere in der calendar-week.tpl.php - es tut sich nichts. Auch einfacher Text als Test irgendwo in der Datei wird ignoriert.

Ich habe die Datei calendar-week.tpl.php aus den Ordner "theme" im Modul in meinen Theme-Ordner kopiert. Daran ist doch nichts falsch, oder? Aber selbst wenn ich direkt in der Datei im Modul etwas ändere, tut sich nichts.

Sehe ich gerade den Wald vor lauter Bäumen nicht?

Caches werden immer geleert.

UPDATE: ich kann die Datei sogar aus beiden Verzeichnissen löschen - die Wochenansicht wird mir immer noch angezeigt. Da wird doch der Hund in der Pfanne verrückt!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich musste mir eine andere

Eingetragen von deelite (468)
am 17.02.2011 - 12:27 Uhr

Ich musste mir eine andere Datei aus der Theme-Info des Views aussuchen und diese dann bearbeiten.

Jetzt bekomme ich die Wochentage (die Namen) ausgeblendet. Die Spalten bleiben allerdings stehen.

dpm ($day_names);
dpm ($rows);

... gibt mir leider nichts aus. devel hab ich installiert. hast Du da vielleicht noch einen Tipp für mich?

  • Anmelden oder Registrieren um Kommentare zu schreiben

In der Beschreibung der

Eingetragen von deelite (468)
am 18.02.2011 - 11:51 Uhr

In der Beschreibung der calendar-week-overlap.tpl.php steht folgendes:

* $rows: The rendered data for this week.
*
* For each day of the week, you have:
* $rows['date'] - the date for this day, formatted as YYYY-MM-DD.
* $rows['datebox'] - the formatted datebox for this day.
* $rows['empty'] - empty text for this day, if no items were found.
* $rows['all_day'] - an array of formatted all day items.
* $rows['items'] - an array of timed items for the day.
* $rows['items'][$time_period]['hour'] - the formatted hour for a time period.
* $rows['items'][$time_period]['ampm'] - the formatted ampm value, if any for a time period.
* $rows['items'][$time_period]['values'] - An array of formatted items for a time period.

Leider kann ich damit nicht direkt viel anfangen, weshalb ich nur probieren kann. Aber auch das hat mich nicht weitergebracht.

Sieht vielleicht jemand eine Lösung?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Devel Tipps

Eingetragen von drubb (557)
am 19.02.2011 - 20:52 Uhr
deelite schrieb

dpm ($day_names);
dpm ($rows);

... gibt mir leider nichts aus. devel hab ich installiert. hast Du da vielleicht noch einen Tipp für mich?

Das sollte schon funktionieren, wenn das Devel-Modul installiert ist, du als Admin angemeldet bist und diese Befehle wirklich als PHP-Code im Template stehen, also vollständig

<?php dpm($day_names); ?>
<?php dpm($rows); ?>

Damit man auch wirklich etwas sieht, sollte in der page.tpl.php Datei allerdings auch die Variable $messages ausgegeben werden, die benutzt Devel nämlich für den dpm-Befehl. Vielleicht ist das dein Problem.

Devel kennt noch alternative Befehle, eine schöne Liste gibt es hier:

https://ratatosk.backpackit.com/pub/1836982-debugging-drupal

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

$messages war es ... Vielen

Eingetragen von deelite (468)
am 20.02.2011 - 13:44 Uhr

$messages war es ...

Vielen Dank.

Für $day_names bekomme ich diesen Output:

... (Array, 7 elements)
0 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days mon
data (String, 6 characters ) Montag
1 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days tue
data (String, 8 characters ) Dienstag
2 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days wed
data (String, 8 characters ) Mittwoch
3 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days thu
data (String, 10 characters ) Donnerstag
4 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days fri
data (String, 7 characters ) Freitag
5 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days sat
data (String, 7 characters ) Samstag
6 (Array, 3 elements)
header (Boolean) TRUE
class (String, 8 characters ) days sun
data (String, 7 characters ) Sonntag
Krumo version 0.2a | http://krumo.sourceforge.net Called from /home/deelite/www/glueck/sites/all/themes/glueck_tp_01/calendar-week-overlap--calendar.tpl.php, line 31

Aber das ist ja nicht das Problem.

$rows sieht das schon nicht mehr so ergiebig aus:

... (Array, 4 elements)
0 (Array, 7 elements)
multiday_buckets (Array, 7 elements)
0 (Array, 0 elements)
1 (Array, 0 elements)
2 (Array, 0 elements)
3 (Array, 0 elements)
4 (Array, 0 elements)
5 (Array, 0 elements)
6 (Array, 0 elements)
singleday_buckets (Array, 7 elements)
0 (Array, 0 elements)
1 (Array, 0 elements)
2 (Array, 0 elements)
3 (Array, 0 elements)
4 (Array, 0 elements)
5 (Array, 0 elements)
6 (Array, 0 elements)
total_rows (Integer) 1
Krumo version 0.2a | http://krumo.sourceforge.net Called from /home/deelite/www/glueck/sites/all/themes/glueck_tp_01/calendar-week-overlap--calendar.tpl.php, line 32

Da stehe ich jetzt wieder ganz am Anfang ;-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wieso?

Eingetragen von drubb (557)
am 20.02.2011 - 14:42 Uhr

Ich kenne diese Version von Calendar leider nicht, speziell die Template-Datei. Aber das Prinzip ist gleich geblieben: jede Zeile repräsentiert einen Tag, nur das der jetzt wohl noch in "multiday" und "singleday" Abschnitte gegliedert ist. Jetzt mal tapfer ans Werk, den letzten Tag rausnehmen und schauen was passiert:

<?php unset($rows[0]['multiday_buckets'][6]); ?>
<?php unset($rows[0]['singleday_buckets'][6]); ?>

$rows scheint in deinem Fall vier sich überlappende Kalender zu enthalten, also eventuell das gleiche noch mal für $rows[1], $rows[2] und $rows[3] machen.

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe das jetzt erst mal

Eingetragen von deelite (468)
am 23.02.2011 - 11:37 Uhr

Ich habe das jetzt erst mal über den Ansatz eines anderen Threads gelöst. Allerdings ist die Endlösung noch nicht ganz nach meinem Geschmack, aber ich bleibe dran. Leider sitzt mir die Zeit im Nacken...

Vielen Dank für Eure Hilfe bis hierher.

Ich bewundere dieses Forum!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • DDEV: Website vom lokalen Server auf Webspace übertragen
  • MariaDB 10.6
  • Wie kann man die Ansicht der Benutzer erweitern?
  • (Gelöst) SIMPLE XML SITEMAP liefert die Sitemap für das Menü nicht aus
  • Entity Reference - Title Felder werden als Link angezeigt
  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
Weiter

Neue Kommentare

  • Hallo Werner, super, vielen
    vor 11 Stunden 45 Minuten
  • Du mußt die Struktur
    vor 18 Stunden 31 Minuten
  • Ergebnis des upgrade
    vor 1 Tag 11 Stunden
  • Danke, funktioniert einwandfrei!
    vor 1 Tag 13 Stunden
  • Bei Drupal 7 war diese Seite
    vor 1 Tag 14 Stunden
  • Es ist ein Paragraph
    vor 2 Tagen 15 Stunden
  • Danke fürs Feedback. Gut dass
    vor 5 Tagen 8 Stunden
  • Patch angewandt
    vor 5 Tagen 11 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 12 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 12 Stunden

Statistik

Beiträge im Forum: 247875
Registrierte User: 19595

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

User nach Punkten sortiert:
wla9215
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 12 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