Ergebnis 1 bis 4 von 4

Thema: cal_default ergänzen mit eigenen Event-DCA-Feldern

  1. #1
    Contao-Nutzer Avatar von mandrael
    Registriert seit
    29.06.2009.
    Ort
    Salzburg, Austria
    Beiträge
    224

    Standard cal_default ergänzen mit eigenen Event-DCA-Feldern

    Hi,
    es ist so, dass wir öfters Termine haben, die aufgeteilt sind auf mehrere Wochenenden. Dafür haben ich per DCA neue Event-Felder angelegt:
    startDateB, endDateB etc.

    Im event_upcoming-Template ließ sich das wunderbar einbauen, sodass die Zusatztermine in einer Tabelle dargestellt werden:

    PHP-Code:
    <tr class="event<?php echo $this->classUpcoming?>">
      <td class="title"><a href="<?= $this->href ?>" title="<?= $this->title ?> (<?php if ($this->day) echo $this->day ', '?><?= $this->date ?><?php if ($this->time) echo ', ' $this->time;?>)"<?= $this->target ?>><?= $this->link ?>
      <?php if ($this->startDateB): ?>(Teil 1)<?php endif; ?>
      </a></td>
      <td class="date"><?php echo $this->firstDate?> <?php if ($this->endDate): ?> –<br><?php echo $this->parseDate('d.m.Y'$this->endDate); ?> <?php endif; ?></td>
    </tr>

    <?php if ($this->startDateB): ?>
    <tr class="event<?php echo $this->classUpcoming?>">
      <td class="title"><a href="<?= $this->href ?>" title="<?= $this->title ?> (<?php if ($this->day) echo $this->day ', '?><?= $this->date ?><?php if ($this->time) echo ', ' $this->time;?>)"<?= $this->target ?>><?= $this->link ?> (Teil 2)</a></td>
      <td class="date"><?php echo $this->parseDate('d.m.Y'$this->startDateB); ?> <?php if ($this->endDateB): ?> –<br><?php echo $this->parseDate('d.m.Y'$this->endDateB); ?> <?php endif; ?></td>
    </tr>
    <?php endif; ?>
    Ich möchte auch den Contao-Kalender zur Übersicht nutzen und müsste dafür die cal_default.html5 anpassen, damit die zusätzlichen Termine angezeigt werden.

    Ziel wäre also, dass auch startDateB und endDateB im Kalender beachtet werden. Ich weiß allerdings nicht, wie ansetzen; kann mir jemand weiterhelfen?

    PHP-Code:
    <tbody>
      <?php foreach ($this->weeks as $class => $week): ?>
        <tr class="<?= $class ?>">
          <?php foreach ($week as $day): ?>
            <td class="<?= $day['class'?>">
              <div class="header"><?= $day['label'?></div>
              <?php foreach ($day['events'] as $event): ?>
                <div class="event cal_<?= $event['parent'?><?= $event['class'?>" itemscope itemtype="http://schema.org/Event">
                  <a href="<?= $event['href'?>" title="<?= $event['title'?> (<?php if ($event['day']): ?><?= $event['day'?><?php endif; ?><?= $event['date'?><?php if ($event['time']): ?> <?= $event['time']?><?php endif; ?>)"<?= $event['target'?> itemprop="url"><span itemprop="name"><?= $event['link'?></span></a>
                </div>
              <?php endforeach; ?>
            </td>
          <?php endforeach; ?>
        </tr>
      <?php endforeach; ?>
    </tbody>
    Vielen Dank i.V. für die Hilfe!
    LG Michael

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Du hast ein Event mit Start/ende z.B. 14/15.08. - und hast dort zus. noch 21/22.08. abgespeichert - richtig?

    die Angabe "zus. 21/22.08." kannst Du natürlich bei Ausgabe 14/15.08. mit ausgeben so wie Titel, Ort oder Beschreibung o.ä.

    Ich nehme an, Du möchtest nun dass auch in der Kalenderansicht nicht nur 14+15.08. markiert sind, sondern auch 21+22.08. ?

    Die Info ist in der Schleife

    PHP-Code:
    <?php foreach ($day['events'] as $event): ?>
    ...
    nicht enthalten und müsstest Dir das aus dem Event 14/15.08. in einem "Temp-Array" zwischenspeichern und das in die Schleifen mit einschleusen - worst-case einmal durch alle Schleifen durchgehen und ein neues Array inkl. Zusatztermine erstellen und das dann mit Ausgabe durchlaufen

  3. #3
    Contao-Nutzer Avatar von mandrael
    Registriert seit
    29.06.2009.
    Ort
    Salzburg, Austria
    Beiträge
    224

    Standard

    Hi zonky,
    Ich nehme an, Du möchtest nun dass auch in der Kalenderansicht nicht nur 14+15.08. markiert sind, sondern auch 21+22.08. ?
    ja, genau das!

    Nur um da weiterzukommen, bräuchte ich mehr Infos darüber, wie dieses Template funktioniert. Ich finde das aber nicht in der Dokumentation ...

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mandrael Beitrag anzeigen
    Hi zonky,

    ja, genau das!

    Nur um da weiterzukommen, bräuchte ich mehr Infos darüber, wie dieses Template funktioniert. Ich finde das aber nicht in der Dokumentation ...

    Da wirst Du sicher nichts finden...

    Was da passiert, sollte man "lesen" können - Du kannst Dir die Sachen dumpen um zu sehen, was in en einzelnen Variablen ankommt... z.B.


    PHP-Code:
    <tbody>
      <?php dump($this->weeks); foreach ($this->weeks as $class => $week): ?>
        <tr class="<?= $class ?>">
          <?php foreach ($week as $day): ?>
            <td class="<?= $day['class'?>">
              <div class="header"><?= $day['label'?></div>
              <?php foreach ($day['events'] as $event): ?>
                <div class="event cal_<?= $event['parent'?><?= $event['class'?>" itemscope itemtype="http://schema.org/Event">
                  <a href="<?= $event['href'?>" title="<?= $event['title'?> (<?php if ($event['day']): ?><?= $event['day'?><?php endif; ?><?= $event['date'?><?php if ($event['time']): ?> <?= $event['time']?><?php endif; ?>)"<?= $event['target'?> itemprop="url"><span itemprop="name"><?= $event['link'?></span></a>
                </div>
              <?php endforeach; ?>
            </td>
          <?php endforeach; ?>
        </tr>
      <?php endforeach; ?>
    </tbody>
    und Debugmodus anmachen - Klick auf das Fadenkreuz...

    im Prinzip gibt es drei Schleifen

    * gehe durch alle Wochen => Woche
    ** gehe durch alle TageDerWoche => Tag
    *** gehe durch alle EbentsDesTages => Event

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •