Ergebnis 1 bis 5 von 5

Thema: Modul Auflistung Detail-Template mit Avatar und Link ergänzen

  1. #1
    Contao-Fan
    Registriert seit
    13.03.2010.
    Beiträge
    287

    Standard Modul Auflistung Detail-Template mit Avatar und Link ergänzen

    Hallo zusammen,

    ich versuche gerade, das Detail-Template vom Listing-Modul mit Bild und Link zu ergänzen. Die Daten kommen aus einer Mitgliederliste, die ich bisher mit cm_membermaps gepflegt hatte. In 4.13 wurden Avatar und Link noch problemlos dargestellt, auf der Detailseite des Listing-Moduls klappt das jetzt nicht mehr. Hat da jemand einen Tip, an was es liegen könnte? Der Avatar im List-Template funktioniert, nur im Detail-Template eben nicht.

    List-Template:
    PHP-Code:
    <?php if ($this->searchable && $this->for && empty($this->tbody)): ?>
        <?= $this->no_results ?>
        <?php else: ?>
          <div class="all_records">
            <?php foreach ($this->tbody as $class=>$row): ?>
              <div class="<?= $class?> memberCard">
                <?php foreach ($row as $col): ?>
                  <?php if (($col['field'] == 'firstname')): ?>
                    <p class="body name<?= $col['class']; ?>"><a href="<?= $col['url']; ?>"><?= $col['content']; ?>
                  <?php elseif (($col['field'] == 'lastname')): ?>
                    <?= $col['content']; ?></a></p>
                  <?php elseif ($col['field'] == 'avatar'): ?>
                <p class="avatar"><img src="<?= Contao\FilesModel::findByUuid($col['content'])->path?>" alt=""></p>
                  <?php elseif (($col['field'] == 'postal')): ?>
                    <p class="body <?= $col['class']; ?>"><?= $col['content']; ?>
                  <?php elseif (($col['field'] == 'city')): ?>
                    <?= $col['content']; ?></p>
                  <?php else: ?>
                  <p class="body <?= $col['class']; ?>"><?= $col['content']; ?></p>
                  <?php endif; ?>
                <?php endforeach; ?>
              </div>
            <?php endforeach; ?>
          </div>
      <?php endif; ?>
    Detail-Template mit zwei Versuchen:
    PHP-Code:
    <div class="single_record">
        
        <?php foreach ($this->record as $col): ?>
          <?php if ($col['field'] == 'button_linkurl'): ?>
            <p class="route"><a href="https://<?= $col['content']; ?>"><?= $col['content']; ?></a></p>
          <?php elseif ($this->button_linkurl): ?> 
            <p class="route"><a href="https://<?= $this->button_linkurl ?>">Standort auf Google Maps></a></p>
          <?php elseif ($col['field'] == 'avatar'): ?>
         <p class="avatar"><img src="<?= Contao\FilesModel::findByUuid($col['content'])->path?>" alt=""></p>
          <?php else: ?>
            <p class="body <?= $col['class']; ?>"><?= $col['content']; ?></p>
          <?php endif; ?>
        <?php endforeach; ?>
        
      </div>
    DCA-Felder:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['button_linkurl'] = [
      
    // Den Labeltext gleich hier im DCA definieren
      
    'label' => ['Google-Link''Google-Link'],
      
    'inputType' => 'text',
      
    'eval' => ['rgxp' => 'url''maxlength' => 255'tl_class' => 'w50'],
      
    'sql' => ['type' => 'string''default' => ''],
    ];

    $GLOBALS['TL_DCA']['tl_member']['fields']['avatar'] = [
      
    // Den Labeltext gleich hier im DCA definieren
      
    'label' => ['avatar''Bild auswählen'],
      
    'inputType' => 'fileTree',
      
    'eval' => ['files' => true'filesOnly' => true'tl_class' => 'w50 m12''fieldType' => 'checkbox''extensions' => 'jpg,png,jpeg'],
      
    'sql' => "binary(16) NULL",
    ];

    // Das neue Feld den gewünschten Inhaltselementen hinzufügen:
    PaletteManipulator::create()
      ->
    addField(array('button_linkurl''avatar'), 'contact_legend'PaletteManipulator::POSITION_APPEND)
      ->
    applyToPalette('default''tl_member')


  2. #2
    Contao-Fan
    Registriert seit
    13.03.2010.
    Beiträge
    287

    Standard

    PS: Im Detail-Template wird die normale Routine via "<?= $col['content']; ?>" ausgegeben, im Frontend erscheinen da kryptische Zeichen für den Avatar und das Linkziel ohne Verlinkung. Das ist, weil ich die DCA-Felder ja auch im BE-Formular für die Mitglieder zur Verfügung habe. Die im Detail-Template deshalb nochmal extra angesprochenen Felder tauchen aber im Frontend gar nicht auf, auch im Quellcode nicht.

    Ich denke, dass das so im Detail-Template nicht geht. Aber warum? Ich habe gefühlt schon alle Threads seit 2012 durch, die sich annähernd damit beschäftigen, aber zum Listing-Modul gibt es nicht so viele Tipps. Oder ich verstehe sie nicht ;-).
    Geändert von thymian (Gestern um 12:12 Uhr)

  3. #3
    Contao-Fan
    Registriert seit
    13.03.2010.
    Beiträge
    287

    Standard

    Ich habe noch einen alten Thread gefunden, in dem Andreas etwas zur Anpassung von info_default geschrieben hat, um ein Bild reinzuladen:

    https://community.contao.org/de/show...nfobox-Details

    Das würde immer noch funktionieren, aber leider sind die Bilder meiner Mitglieder alle anders benannt und haben unterschiedliche Größen. Hat vielleicht doch jemand eine Idee, wie man da drankommen könnte?

  4. #4
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.888
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von thymian Beitrag anzeigen
    ich versuche gerade, das Detail-Template vom Listing-Modul mit Bild und Link zu ergänzen. Die Daten kommen aus einer Mitgliederliste, die ich bisher mit cm_membermaps gepflegt hatte. In 4.13 wurden Avatar und Link noch problemlos dargestellt, auf der Detailseite des Listing-Moduls klappt das jetzt nicht mehr. Hat da jemand einen Tip, an was es liegen könnte? Der Avatar im List-Template funktioniert, nur im Detail-Template eben nicht.
    Welche Daten kommen bei dir raus, wenn du im Detail-Template $col['content'] mit echo mal ausgibst. Was ist $col['content'] überhaupt? Ein Link? Ein Label? Ein Titel? Das Bild? Pandoras Wunschbox?
    Warum verwendest du es überall, wo ist da der Path gespeichert, ich verstehe nicht? Wo gibst du das Bild aus?

    Zitat Zitat von thymian Beitrag anzeigen
    PS: Im Detail-Template wird die normale Routine via "<?= $col['content']; ?>" ausgegeben, im Frontend erscheinen da kryptische Zeichen für den Avatar und das Linkziel ohne Verlinkung. Das ist, weil ich die DCA-Felder ja auch im BE-Formular für die Mitglieder zur Verfügung habe. Die im Detail-Template deshalb nochmal extra angesprochenen Felder tauchen aber im Frontend gar nicht auf, auch im Quellcode nicht.

    Ich denke, dass das so im Detail-Template nicht geht. Aber warum? Ich habe gefühlt schon alle Threads seit 2012 durch, die sich annähernd damit beschäftigen, aber zum Listing-Modul gibt es nicht so viele Tipps. Oder ich verstehe sie nicht ;-).
    Kryptische Zeichen eher nicht sondern der Pfad zum Bild. Das musst du auflösen mit der Figure Funktion, da ist ja nicht das jpg gespeichert, auch nicht der path.

    Zitat Zitat von thymian Beitrag anzeigen
    Ich habe noch einen alten Thread gefunden, in dem Andreas etwas zur Anpassung von info_default geschrieben hat, um ein Bild reinzuladen:

    https://community.contao.org/de/show...nfobox-Details

    Das würde immer noch funktionieren, aber leider sind die Bilder meiner Mitglieder alle anders benannt und haben unterschiedliche Größen. Hat vielleicht doch jemand eine Idee, wie man da drankommen könnte?
    Siehe oben. Schaue genau was in der column ausgegeben wird.

    Ich würde das alles auch nicht mit dem Listing-Modul hacken, schreibt dir doch direkt deinen eigenen Controller, in welchem du die Member-Details ausgeben kannst, inklusive Bild. Je nach Entwickler ist das sogar als Kleinauftrag drin, sofern dieser angenommen wird.

  5. #5
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.888
    Contao-Projekt unterstützen

    Support Contao

    Standard

    PS: Da du das Auflistungs-Modul nutzt und mit Templates und DCA-Anpassungen das System modifizierst, würde ich wohl nicht im Forum "Allgemeine Inhaltselemente" danach fragen.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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