Ergebnis 1 bis 9 von 9

Thema: Eventdetailseite synchronisiert mit Eventslider

  1. #1
    Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.119

    Standard Eventdetailseite synchronisiert mit Eventslider

    Hallo,

    Event-Detailseite:
    darauf befinden sich:
    - Modul Eventleser mit template event_full.html5
    - [fritzmg/contao-swiper] dessen Umschlagsinhalt alle Einzelevents sind, dargestellt mit 3 sichtbaren Slides/zentrierte Slides (als Teaser dargestellt)

    Wunsch wäre nun, dass der mittlere Slide jeweils jener Teaser dieser Detailseite ist. Sprich, dass sich der Slider mit der Detailansicht "synchronisiert".

    Beispiel:
    10 Events
    Ich schaue mir die Detailseite von Event 7 an. Auf der Detailseite von Event 7 ist nun der Slider mit dem mittleren Slide bei Event 7

    Hat jemand eine praktikable Umsetzungs-Idee dazu? Oder vielleicht sogar schon jemand eine Lösung?
    Es könnte auch eine bezahlte Dienstleistung werden
    Grüsse
    Bernhard


  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    27.054
    Partner-ID
    10107

    Standard

    Du könntest einen parseTemplate Hook umsetzen, wo du für das ce_swiperStop Element die parameters Variable des Templates um die initialSlide Einstellung erweitern könntest. Du müsstest halt irgendwie herausfinden, welcher Slide dann der richtige ist. Ansonsten könntet du das vermutlich auch mit JavaScript machen. Die initSwiper Funktion im ce_swiperStop Template gibt dir die Swiper Instanz zurück.
    Geändert von Spooky (14.05.2021 um 12:33 Uhr)
    » sponsor me via GitHub or PayPal

  3. #3
    Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.119

    Standard

    Ich habe hierzu nun eine "halbherzige" Lösung erstellt.
    Swiper.js erlaubt die Möglichkeit der 'Hash Navigation' - dazu musste ich ein paar Dinge anpassen:

    - im template ce_swiperStop.html5 hashNavigation:true eintragen
    - im template, welches ich im Slider verwende, (in meinem Fall ein angepasstes event_teaser_slider.html5) <div class="event-single-wrapper" data-hash="event<?= $this->id ?>"> eintragen. Damit vergebe ich jedem Slide eine eindeutige Kennung für den Link via data-hash
    - im template event_teaser.html5 der Überschrift h2 (welche den Link zur Detailseite erzeugt) zusätzlich den Hash mitgeben <a href="<?= $this->href . '#event' . $this->id ?>" ...

    Der Link der Detailseite des events wird mit z.B #event12 ergänzt.

    Der Einfachheit halber habe ich im ce_swiperStop.html5 eine Anpassung vorgenommen und params: <?= json_encode($this->parameters) ?> direkt mit meinen Werten überschrieben, was natürlich sehr unschön ist und bei Änderungen der Werte eine Anpassung im Template mit sich zieht.

    Hier deshalb meine nächste Frage:
    wie kann ich direkt im Template den params: eigene Werte ins array hinzufügen? In meinem Fall jetzt mal das hashNavigation:true,
    Grüsse
    Bernhard


  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    27.054
    Partner-ID
    10107

    Standard

    So halbherzig finde ich das gar nicht

    Bzgl. Parameter: einfach
    PHP-Code:
    <?php $this->parameters['hashNavigation'] = true?>
    » sponsor me via GitHub or PayPal

  5. #5
    Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.119

    Standard

    an welcher Stelle im Template müsste das denn eingetragen werden? Denn ich schaffe es damit nicht, den Wert mit ausgegeben zu bekommen.
    auch ausserhalb von <script>, ob vor- oder nachher kein positives Ergebnis

    PHP-Code:
    </div>
        <?php if ($this->sliderPagination): ?>
          <div class="swiper-pagination"></div>
        <?php endif; ?>
        <?php if ($this->sliderButtons): ?>
          <div class="swiper-button-prev"></div>
          <div class="swiper-button-next"></div>
        <?php endif; ?>
      </div>
      
      <script>
        initSwiper({
          id: '<?= $this->sliderId ?>',
          wrapperClass: '<?= $this->wrapperClass ?>',
          params: <?= json_encode($this->parameters?> 
          <?php $this->parameters['hashNavigation'] = true?>
        });
      </script>

    </div>
    Grüsse
    Bernhard


  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    27.054
    Partner-ID
    10107

    Standard

    Irgendwo bevor die parameters ausgegeben werden, bspw. ganz am Anfang des Templates.
    » sponsor me via GitHub or PayPal

  7. #7
    Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.119

    Standard

    nein, klappt eben nicht - da hatte ich's auch schon platziert und jetzt grad nochmals.
    Muss irgendein cache geleert werden?
    Grüsse
    Bernhard


  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    27.054
    Partner-ID
    10107

    Standard

    Poste dein aktuelles Template.

    // edit: ich glaube das liegt an einer Eigenheit bzgl. __set. Versuche es mal so:

    PHP-Code:
    <?php $this->parameters array_merge($this->parameters, ['hashNavigation' => true]); ?>
    » sponsor me via GitHub or PayPal

  9. #9
    Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.119

    Standard

    sehr gut! jetzt klappt das wie gewünscht!
    vielen Dank
    Grüsse
    Bernhard


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
  •