Contao-Camp 2024
Ergebnis 1 bis 14 von 14

Thema: Nachrichtenliste mit Bild Galerie

  1. #1
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard Nachrichtenliste mit Bild Galerie

    Hallo zusammen,
    ist es möglich, das Nachrichtenliste Modul um die Funktion einer Bild Galerie zu erweitern?
    Hat jemand einen Tipp wo ich ansetzten kann

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Nachrichtenliste ausschließlich als Bildergalerie? Da würde ich den Teaser leerlassen und ein Inhaltselement Galerie einfügen. Dazu benutzt Du für die Nachrichtenliste das news_full-Template und schon hast Du eine Galerieübersicht mit dem News-Modul erstellt.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Das habe ich probiert. Teaser leer, Galerie Element angelegt.
    Werden aber leider keine Bilder ausgegeben.

    Lege ich allerdings ein Text Element an, dann wird dieses dargestellt

    Auch eine Ausgabe der Template Variablen gibt keinen Anhaltspunkt, das Bilder durchgereicht werden
    Geändert von magic77 (17.03.2018 um 14:51 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Ok, bin jetzt auf einem Weg zu einer Lösung mit DCA
    Hab ein eigenes Modul angelegt um den Teaser zu erweitern.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace
    (
        
    '{image_legend},addImage',
        
    '{image_legend},addImage,gallery',
        
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default']
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['gallery'] = array
    (
        
    'label' => &$GLOBALS['TL_LANG']['tl_news']['gallery'],
        
    'inputType' => 'fileTree',
        
    'eval' => array('mandatory' => false'multiple' => true'files' => true'fieldType' => 'checkbox''filesOnly' => true'extensions' => 'jpg,jpeg,png,gif,svg''isGallery' => true), 'exclude' => true,
        
    'sql' => "blob NULL"
    ); 
    Geändert von magic77 (17.03.2018 um 17:47 Uhr)

  5. #5
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Kann mir mal einer auf die Sprünge helfen, wie ich das DCA so erweitern kann, damit man auch eine individuelle Reihenfolge der Bilder bestimmen kann

  6. #6
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    Schau dir das vom Standard ab.

    https://github.com/contao/core/blob/...tl_content.php Zeile 528-544
    Grüße
    Alex

  7. #7
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von magic77 Beitrag anzeigen
    Das habe ich probiert. Teaser leer, Galerie Element angelegt.
    Werden aber leider keine Bilder ausgegeben.

    Lege ich allerdings ein Text Element an, dann wird dieses dargestellt

    Auch eine Ausgabe der Template Variablen gibt keinen Anhaltspunkt, das Bilder durchgereicht werden
    Früher ging das mal. Ich erinnere mich aber auch, das ich mich mal beschwert hatte, das in der Nachrichtenliste die kompletten Nachrichten geparst werden. Was ja völlig unnötig ist. Das Galerie-Element wurde wohl deshalb rausgenommen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

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

    Standard

    Erkläre mal genauer was du haben möchtest.

  9. #9
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    @spooky:
    Ich möchte das Nachrichten Modul (Nachrichtenliste) um die Funktion einer Bild Galerie erweitern, um dann einen Swiper Slider einzubauen
    siehe hier: http://www.holmvintage.com/objects.html

    Derzeitig funktioniert das anlegen einer individuellen Galerie im Backend:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace
    (
        
    '{image_legend},addImage',
        
    '{image_legend},addImage,gallery',
        
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default']
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['gallery'] = array
    (
        
    'label' => &$GLOBALS['TL_LANG']['tl_news']['gallery'],
        
    'inputType' => 'fileTree',
        
    'eval' => array(
            
    'mandatory' => false,
            
    'multiple' => true,
            
    'files' => true,
            
    'fieldType' => 'checkbox',
            
    'filesOnly' => true,
            
    'extensions' => 'jpg,jpeg',
            
    'orderField' => 'orderSRC',
            
    'isGallery' => true
        
    ),
        
    'exclude' => true,
        
    'sql' => "blob NULL",
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['orderSRC'] = array
    (
        
    'label' => &$GLOBALS['TL_LANG']['tl_content']['orderSRC'],
        
    'sql' => "blob NULL",
    ); 
    Allerdings kann ich die Elemente noch nicht im Template ausgeben.
    Hat da jemand einen Tipp?

  10. #10
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Hiermit kann ich schon mal auf das Array zugreifen

    PHP-Code:
    $images deserialize($this->gallery);
      
    $tmp deserialize($this->orderSRC);

      if (!empty(
    $tmp) && is_array($tmp)) {
        
    $order array_map(function(){}, array_flip($tmp));

        foreach (
    $images as $k => $v) {
          if (
    array_key_exists($v$order)) {
            
    $order[$v] = $v;
            unset(
    $images[$k]);
          }
        }

        if (!empty(
    $images)) {
          
    $order array_merge($orderarray_values($images));
        }

        
    $images array_values(array_filter($order));
      } 
    Aber welche Image Klasse sollte hier zu auslesen verwendet werden?

  11. #11
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Ok, hab's gefunden

    PHP-Code:
    <?php foreach ($images as $uuid): ?>
        <?php
         
    echo \FilesModel::findByUuid($uuid)->path;
        
    ?>
      <?php endforeach ?>

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

    Standard

    Achso, also du willst den Slider direkt in einer Newsliste ausgeben?

  13. #13
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    @Spooky: Ja

  14. #14
    Contao-Nutzer
    Registriert seit
    03.01.2010.
    Beiträge
    152

    Standard

    Ich hab jetzt die Bildgrößen Palette eingebunden.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_news']['fields']['sizes'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_content']['size'],
        
    'exclude'                 => true,
        
    'inputType'               => 'imageSize',
        
    'options'                 => \Contao\System::getImageSizes(),
        
    'reference'               => &$GLOBALS['TL_LANG']['MSC'],
        
    'eval'                    => array('rgxp'=>'natural''includeBlankOption'=>true'nospace'=>true'helpwizard'=>true'tl_class'=>'w50'),
        
    'sql'                     => "varchar(64) NOT NULL default ''"
    ); 
    Doch gibt es hier noch einen anderen Weg, die Bilddateien auszulesen als diesen hier

    PHP-Code:
    <?php foreach ($images as $uuid): ?>
        <?php
          
    echo $this->getImage(\FilesModel::findByUuid($uuid)->path800,512,'crop');
        
    ?>
      <?php endforeach ?>
    Geändert von magic77 (18.03.2018 um 18:48 Uhr)

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
  •