Ergebnis 1 bis 13 von 13

Thema: MetaModel mit Eventsdetail verknüpfen

  1. #1
    Contao-Nutzer
    Registriert seit
    19.07.2009.
    Beiträge
    97

    Frage MetaModel mit Eventsdetail verknüpfen

    In einem MetaModel wurde ein Attribut angelegt, mit dem Events verknüpft werden können. Wie kann ich nun in dem Template des MetaModels die Events mit seiner Detailseite verlinken?

    Wäre schön, wenn mir da jemand weiterhelfen könnte?

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Weißt du denn bereits, wie du im Template an die Variablen kommst? Siehe z.B. hier https://readthedocs.org/projects/met...ds/pdf/latest/ 3.1.8 Debug Templates

    Versuche mal
    PHP-Code:
    <?php

    dump
    ($this->data);

    ?>
    Wenn dort Variablen für die Events fehlen, kannst du dir das passende über die Models holen, z.B. Feld jumpTo aus tl_calendar.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Nutzer
    Registriert seit
    19.07.2009.
    Beiträge
    97

    Standard

    PHP-Code:
            <?php if ( $arrItem['raw']['events_reference'] ): ?>
              <div class="ce_accordion">
                <div class="toggler">
                  <div class="inside">
                    <h3>Termine</h3>
                  </div>
                </div>
                <div class="accordion">
                  <div class="container">
                    <div class="inside">
                      <ul>
                        <?php foreach ( $arrItem['raw']['events_reference'] as $eventReference ) { ?>
                          <li>
                            <pre><?php print_r($eventReference); ?></pre>
                            <?php echo $this->parseDate'd.M. Y'$eventReference['startDate'] ); ?>
                            <?php if ( $eventReference['location'] ): echo ' - ' $eventReference['location']; endif; ?>
                          </li>
                        <?php ?>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            <?php endif; ?>
    Aktuell sieht es so aus. Das Array liefert mir nur die ID des Events. Wie kann ich daraus den Link zum Detail bekommen? Gibt es da in Contao eine Methode?

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

    Standard

    Da kann dir mm wenig helfen... Bau dir eine kleine Funktion in dein Template, welche eine dB-Abfrage bei tl_events macht in dort das jumpTo rausfischt...

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

    Standard

    Da kann dir mm wenig helfen... Bau dir eine kleine Funktion in dein Template, welche eine dB-Abfrage bei tl_events macht in dort das jumpTo rausfischt...

    @Andreas: ich denke der Link zur Webseite ist effektiver als das gesamte PDF...

  6. #6
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Jo, hatte ich nur gerade bei Google gefunden und kopiert. Hier zur Doku http://metamodels.readthedocs.io/de/...templates.html

    Mit den Models ist das bestimmt einfacher als mit ner DB-Abfrage, aber ich kenne da auch nicht alle Tricks. Das Archive würde man so bekommen denke ich.
    PHP-Code:
    $eventReaderPageId = \CalendarEventsModel::findById([deineEventId])->jumpTo
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

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

    Standard

    Oder so.. die Frage war ja, ob MM da was in petto hat..

  8. #8
    Contao-Nutzer
    Registriert seit
    19.07.2009.
    Beiträge
    97

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Jo, hatte ich nur gerade bei Google gefunden und kopiert. Hier zur Doku http://metamodels.readthedocs.io/de/...templates.html

    Mit den Models ist das bestimmt einfacher als mit ner DB-Abfrage, aber ich kenne da auch nicht alle Tricks. Das Archive würde man so bekommen denke ich.
    PHP-Code:
    $eventReaderPageId = \CalendarEventsModel::findById([deineEventId])->jumpTo
    So was suche ich gerade

    PHP-Code:
                        <?php foreach ( $arrItem['raw']['events_reference'] as $eventReference ) { ?>
                          <li>
                            <pre><?php /* print_r($eventReference); */ ?></pre>
                            <?php echo $this->parseDate'd.M. Y'$eventReference['startDate'] ); ?>
                            <?php if ( $eventReference['location'] ): echo ' - ' $eventReference['location']; endif; ?>
                            <?php $eventReaderPageId = \CalendarEventsModel::findById([$eventReference['id']])->jumpTo?>
                            <pre><?php echo $eventReaderPageId?></pre>
                          </li>
                        <?php ?>
    Müsste das dann nicht funktionieren?

  9. #9
    Contao-Nutzer
    Registriert seit
    19.07.2009.
    Beiträge
    97

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Oder so.. die Frage war ja, ob MM da was in petto hat..
    Nene, mir geht es um eine saubere, nicht um eine dogmatische Lösung

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sorry, du brauchst die ID von tl_calendar.jumpTo (und diese nur, wenn tl_calendar.source auf default steht). Du musst also erst das Archiv des Events rausfinden und dort findest du die jumpTo-Seiten-Id.
    PHP-Code:
    $eventArchiveJumpTo = \CalendarModel::findById([deineEventPid])->jumpTo;  

    $readerPageAlias = \PageModel::findById($eventArchiveJumpTo)->alias;

    $eventUrl $readerPageAlias.'/'.deinEventAlias.'.html'
    Das geht evtl. auch einfacher, bin da aber im Moment leider überfragt. Mach mal das dump($this->data), damit siehst du vielleicht mehr Variablen und es ist schon irgendwas dabei, was du gebrauchen kannst.

    ps Nimm dump(), das ist einfacher als print_r(), weil du damit schon das PRE als Wrapper bekommst https://github.com/contao/core/blob/...tions.php#L464
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  11. #11
    Contao-Nutzer
    Registriert seit
    19.07.2009.
    Beiträge
    97

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Sorry, du brauchst die ID von tl_calendar.jumpTo (und diese nur, wenn tl_calendar.source auf default steht). Du musst also erst das Archiv des Events rausfinden und dort findest du die jumpTo-Seiten-Id.

    [...] Mach mal das dump($this->data), damit siehst du vielleicht mehr Variablen und es ist schon irgendwas dabei, was du gebrauchen kannst.

    ps Nimm dump(), das ist einfacher als print_r(), weil du damit schon das PRE als Wrapper bekommst https://github.com/contao/core/blob/...tions.php#L464
    Das mit dem dump() ist super. Mein Problem ist ja leider, dass mir $this->data bei dem jeweiligen Event in dem dazugehörigen Array keinen direkten Link liefert. So weit mein Verständnis ist, werde ich scheinbar mit Hilfe der gelieferten ID dann via eigener Funktion die entsprechenden Link bauen müssen. Da ist meine Hoffnung, dass mir jemand sagen kann, wie ich anhand einer Event-ID den entsprechenden Detail-Link generieren kann. Da hast Du ja schon einen super Ansatz gegeben, den ich testen werden.

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

    Standard

    ... m.E. gibt es noch eine Tabellenspalte für den Typ, d.h. ob intern oder extern

  13. #13
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, das ist tl_calendar_events.source, welches default auf "default" steht mit den anderen Optionen intern, extern, article.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

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
  •