Contao-Camp 2024
Ergebnis 1 bis 28 von 28

Thema: fileTree - Unterscheidung Ist Auswahl Verzeichnis oder Datei

  1. #1
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard fileTree - Unterscheidung Ist Auswahl Verzeichnis oder Datei

    Hallo,
    teste mit dieser Config:

    Code:
    <?php 
    // rsce_my_element_config.php 
    return array( 
        'label' => array('Custom: Bildergalerie', ''), 
        'types' => array('content'), 
        'contentCategory' => 'Inhalte: Custom', 
        'standardFields' => array('cssID'), 
        'wrapper' => array( 
            'type' => 'none', 
        ), 
        'fields' => array( 
            'multiSRC' => array 
            ( 
                'label'                   => array('Bildeauswahl', 'Beschreibung'), 
                'inputType'               => 'fileTree', 
                'eval'                    => array('multiple'=>true, 'fieldType'=>'checkbox', 'orderField'=>'orderSRC', 'files'=>true, 'mandatory'=>true), 
                'load_callback' => array 
                ( 
                    array('tl_content', 'setMultiSrcFlags') 
                ) 
            ), 
        ), 
    );
    Dabei hat man nun die Möglichkeit entweder nur ein Verzeichnis oder mehrere/einzelne (in diesem Fall Fotos) auszuwählen.
    Wähle ich nur ein Verzeichnis kriege ich die Ausgabe hin.

    Wählt man aber ein Verzeichnis und zusätzlich darin weitere einzelne Fotos aus - sollen ja nur die ausgewählten Fotos ausgegeben werden.

    Wie kann ich das im template unterscheiden? Über $this->multiSRC erhalte ich ja nur ein Array mit den ID's ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  2. #2
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Hm,
    sehe gerade, das das Inhaltselement "Galerie" da auch nicht unterscheidet. Wenn ich hier zwei Fotos auswähle UND das Verzeichnis werden alle Fotos aus dem Verzeichnis herangezogen.
    War das nicht mal anders? Erwarten würde ich das dann NUR die beiden Fotos genutzt werden ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

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

    Standard

    Du musst dir ansehen was tl_content::setMultiSrcFlags genau macht. Das ändert das DCA, aber nur wenn der Typ des Elements der richtige ist. Du hast in deinem Fall ja kein Inhaltselement vom Typ gallery.

    Du solltest es so machen:
    PHP-Code:
    <?php 

    return array( 
        
    'label' => array('Custom: Bildergalerie'''), 
        
    'types' => array('content'), 
        
    'contentCategory' => 'Inhalte: Custom'
        
    'standardFields' => array('cssID'), 
        
    'wrapper' => array( 
            
    'type' => 'none'
        ), 
        
    'fields' => array( 
            
    'multiSRC' => array 
            ( 
                
    'inputType' => 'standardField'
                
    'eval'      => array(
                    
    'multiple'   => true
                    
    'fieldType'  => 'checkbox'
                    
    'orderField' => 'orderSRC'
                    
    'files'      => true
                    
    'mandatory'  => true,
                    
    'isGallery'  => true,
                    
    'extensions' => \Config::get('validImageTypes')
                )
            ), 
        ), 
    );

  4. #4
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Hi,
    ich habe es bei 'inputType' => 'fileTree' belassen.

    Das mit den Auswahlen funktioniert soweit. Ich erhalte im FE identische Angaben wie im BE/Gallery, egal ob ich einzelne Dateien und/oder deren Order auswähle.
    Allerdings spiegelt die FE Ausgabe nicht die BE Sortierung wieder - Wenn jemand hierzu Vorschläge hat o. für den unteren Code weitere Vereinfachungen kennt - bin offen ...

    Danke
    Frank


    rsce_my_testing_config.php:

    PHP-Code:
    <?php 
    // rsce_my_testing_config.php 
    return array( 
      
    'label' => array('bxSlider''Inhalte über den bxSlider darstellen.'), 
      
    'types' => array('content'), 
      
    //'contentCategory' => ' Eigene Elemente', 
      
    'standardFields' => array('cssID'), 
      
    'wrapper' => array ( 
        
    'type' => 'none'
      ), 
      
    'fields' => array ( 
      
        
    'NoteInfo' => array (
          
    'label' => array( 'Hinweis: '''),
          
    'inputType' => 'text',
          
    'default' => 'Das "j_bxslider" Template muss im Seitenlayout eingebunden sein.',      
           
    'eval' => array ( 
            
    'disabled' => true'readonly' => truestyle => 'margin-top: 0px; margin-bottom: 18px; color: #000; background: #e9f0f7; border: 0px; ',
          ),             
         ),      
      
        
    'multiSRC' => array ( 
          
    'label' => array('Bilder und Ordner''Bitte wählen Sie ein oder mehrere Bilder oder einen Ordner aus. Wenn Sie einen Ordner auswählen, werden alle darin enthaltenen Bilder eingefügt.'), 
          
    'inputType' => 'fileTree'
          
    'eval' => array ( 
            
    'isGallery' => true'multiple' => true'fieldType' => 'checkbox''orderField' => 'orderSRC''files' => true'mandatory' => true'extensions' => \Config::get('validImageTypes'), 
          ),             
        ),
        
        
    'size' => array ( 
          
    'label' => array('Bildgröße''Hier können Sie die Abmessungen des Bildes und den Skalierungsmodus festlegen.'), 
          
    'inputType' => 'imageSize'
          
    'options' => \System::getImageSizes(),
          
    'eval' => array ( 
            
    'rgxp' => 'digit''includeBlankOption' => true'tl_class' => 'w50 clr',
          ), 
        ),       

      ), 
    );
    rsce_my_testing.html5:

    PHP-Code:
    <?php  

    $tmpArray 
    = array();
    $data $this->multiSRC;

    foreach (
    $data as $dataIndex) {

        
    $tmpArray[] = $dataIndex;

        
    $dataType = \FilesModel::findByPk($dataIndex)->type;
        
    $dataPid = \StringUtil::binToUuid(\FilesModel:: findByPk($dataIndex)->pid);

        if ( 
    $dataType == 'file' ) {
      
            if (!
    in_array($dataPid$tmpArray)) {

                 if (
    $image $this->getImageObject($dataIndex$this->size)) {
                    
    $this->insert('picture_default'$image->picture);
                }  
            }    
        }
      
        if ( 
    $dataType == 'folder' ) {
          
              
    $files = \FilesModel::findByPid(\StringUtil::uuidToBin($dataIndex));
          
            foreach(
    $files as $file) {
        
                if (
    $image $this->getImageObject(\StringUtil::binToUuid($file->uuid), $this->size)) {
                    
    $this->insert('picture_default'$image->picture);
                }
            }      
        }

    }

    $tmpArray $tmpArray = array();

    ?>
    Geändert von Franko (16.06.2018 um 14:58 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

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

    Standard

    Ich würde an deiner Stelle 'inputType' => 'standardField' benutzen, da dann tatsächlich tl_content.multiSRC verwendet wird.

    Du berücksichtigst bei der Ausgabe die Sortierung schlicht und einfach gar nicht . Sieh dir den Code des eigentlichen Galerie Inhaltselementes an: https://github.com/contao/core-bundl....php#L183-L212

  6. #6
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich würde an deiner Stelle 'inputType' => 'standardField' benutzen, da dann tatsächlich tl_content.multiSRC verwendet wird.

    Du berücksichtigst bei der Ausgabe die Sortierung schlicht und einfach gar nicht . Sieh dir den Code des eigentlichen Galerie Inhaltselementes an: https://github.com/contao/core-bundl....php#L183-L212
    Mann O Mann, da wühlt man sich durch Google/Forum und testet alles Mögliche anstatt gleich auf Dich zu hören:

    Auszug rsce_my_testing_config.php:

    PHP-Code:
        'multiSRC' => array ( 
          
    'label' => array('Bilder und Ordner''Bitte wählen Sie ein oder mehrere Bilder oder einen Ordner aus. Wenn Sie einen Ordner auswählen, werden alle darin enthaltenen Bilder eingefügt.'), 
          
    'inputType' => 'standardField'
          
    'eval' => array ( 
            
    'isGallery' => true'multiple' => true'fieldType' => 'checkbox''orderField' => 'orderSRC''files' => true'mandatory' => true'extensions' => \Config::get('validImageTypes'), 
          ),    
        ), 
    rsce_my_testing.html5:
    PHP-Code:
    <?php  

    $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue)); 

    foreach ( 
    $dataSorted as $data ) {

        if (
    $image $this->getImageObject($data$this->size)) {
            
    $this->insert('picture_default'$image->picture);
        }  

    }
    ?>
    That's all - Funktioniert!!

    Dank
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  7. #7
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    rsce_my_testing.html5:
    PHP-Code:
    <?php  

    $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue)); 

    foreach ( 
    $dataSorted as $data ) {

        if (
    $image $this->getImageObject($data$this->size)) {
            
    $this->insert('picture_default'$image->picture);
        }  

    }
    ?>
    Anschlussfrage zum Thema: Wie kann ich denn den ausgegeben Bildern im Template direkt eine Bildgröße mitgeben, in der das System die ausgeben soll? Da gab es doch einen Weg, aber so richtig funktionieren will das bei mir nicht. Irgendwie so etwas: ($imageId->image, array('200','100'))):

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

    Standard

    PHP-Code:
    [nullnull123
    Die Bildgröße ist die dritte Stelle im Array.

  9. #9
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    PHP-Code:
    [nullnull123
    Die Bildgröße ist die dritte Stelle im Array.
    Oh, da hast Du mich missverstanden.

    Ich versuche mir gerade zusammen-zu-frankensteinen, wie ich da eine fixe Größe reinkriege, z.B. 200x100 Pixel oder so.

    Beispiel meines aktuellen Standes, der nicht funktioniert (bin nicht wirklich firm in php, Original und einen Fehlversuch habe ich auskommentiert drin gelassen):

    PHP-Code:
    <?php   

    $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue));  

    foreach ( 
    $dataSorted as $data ) { 

    //     if ($image = $this->getImageObject($data, $this->size)) {
    //     if ($image = $this->arrData['getImageObject']($data->image, array('100','100'))    {
        
    if ($image $this->getImageObject($data, ($data->image, array('200','100')))) {
            
    $this->insert('picture_default'$image->picture); 
        }   


    ?>

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

    Standard

    Du musst an der dritten Stelle im Array entweder eine Bildgröße angeben, oder einen Modus zur Bearbeitung des Bildes. Folgende Modi stehen zur Verfügung:


  11. #11
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    89

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du musst an der dritten Stelle im Array entweder eine Bildgröße angeben, oder einen Modus zur Bearbeitung des Bildes. Folgende Modi stehen zur Verfügung:

    Vielen Dank.

    Hat mich, mangels PHP-Kenntnisse, noch einiges an Rumprobiererei gekostet, aber jetzt klappt’s.
    Der Vollständigkeit halber, falls ich oder jemand anders in Zukunft mal danach sucht, bei mir sieht der Code jetzt so aus:
    PHP-Code:
    <?php
    $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue));  

    foreach ( 
    $dataSorted as $data ):

        if (
    $image $this->getImageObject($data, array('',''2))):
            
    $this->insert('picture_default'$image->picture);
        endif;
    endforeach 
    ?>

  12. #12
    Contao-Nutzer
    Registriert seit
    03.05.2020.
    Beiträge
    1

    Standard

    Habe ein ähnliches Problem und komme leider nicht weiter. Im Prinzip möchte ich nur das Downloads Content Element innerhalb eines Custom Elements nutzen.

    Code:
    Code:
    'multiSRC' => array(
    		            'inputType' => 'standardField',
    		           'eval' => array ( 'filesOnly' => true ),   
    		        ),
    Code:
    <?php
    $downloads = array_map('\StringUtil::binToUuid', deserialize($this->multiSRC, true));
    ?>
    
      <ul>
        <?php foreach ($downloads as $file): ?>
          <li class="download-element ext-<?= $file['extension'] ?>">
            <a href="<?= $file['href'] ?>" title="<?= $file['title'] ?>" type="<?= $file['mime'] ?>"><?= $file['link'] ?> <span class="size">(<?= $file['filesize'] ?>)</span></a>
          </li>
        <?php endforeach; ?>
      </ul>

    Und das kommt raus: …

    Code:
    <ul>
    <li class="download-element ext-4">
    <a href="4" title="4" type="4">4 <span class="size">(4)</span></a>
    </li>
    <li class="download-element ext-7">
    <a href="7" title="7" type="7">7 <span class="size">(7)</span></a>
    </li>
    <li class="download-element ext-8">
    <a href="8" title="8" type="8">8 <span class="size">(8)</span></a>
    </li>
    <li class="download-element ext-7">
    <a href="7" title="7" type="7">7 <span class="size">(7)</span></a>
    </li>
    <li class="download-element ext-4">
    <a href="4" title="4" type="4">4 <span class="size">(4)</span></a>
    </li>
    </ul>
    Könnte mir jemand einen Tip geben? Kann ich alternativ einfach das Downloads Element in meinem Custom Element verwenden? Danke!

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

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Hm,
    sehe gerade, das das Inhaltselement "Galerie" da auch nicht unterscheidet. Wenn ich hier zwei Fotos auswähle UND das Verzeichnis werden alle Fotos aus dem Verzeichnis herangezogen.
    War das nicht mal anders? Erwarten würde ich das dann NUR die beiden Fotos genutzt werden ...
    ich würde meinen, wenn Verzeichnis angeklickt, werden alle Dateien aus dem Verzeichnis ausgegeben - egal ob angeklickt oder nicht - man kann aber aus einem anderen verzeichnis zusätzlich noch einzelne weitere Dateien anklicken...

  14. #14
    Contao-Fan Avatar von bibib
    Registriert seit
    19.06.2009.
    Ort
    Linz, Oberösterreich
    Beiträge
    644
    Partner-ID
    8517

    Standard

    Ich hätte auch noch eine Anschlussfrage an das Thema: ich würde gerne die Bildauswahl auf einen bestimmten Pfad beschränken, damit der Kunde nicht mit der gesamten Dateiverwaltung überfordert wird. Wenn ich das richtig verstehe, gilt aber 'path' nur für den 'inputType' 'fileTree'?
    Ich hab trotzdem testweise den Pfad ergänzt:

    Code:
    'multiSRC' => array( 
          'inputType' => 'standardField', 
          'eval'      => array(
            'multiple'   => true, 
            'fieldType'  => 'checkbox', 
            'orderField' => 'orderSRC', 
            'files'      => true,
            'path'       => 'files/testbilder/test_01',
            'mandatory'  => false,
            'isGallery'  => true,
            'extensions' => \Config::get('validImageTypes')
          ),
        ),
    Nun wird der Pfad in der Dateiauswahl schon beschränkt, aber ich kann nur mehr die einzelnen Dateien und nicht mehr den Ordner auswählen. Wähle ich den Ordner, kommt eine Fehlermeldung (Sie können nur Dateien oder Ordner innerhalb von "files/testbilder/test_01" auswählen! - Hab ich ja eh gemacht ...)

    Gibt es eine Möglichkeit, auch mit dem 'inputType' 'standardField' den Pfad zu beschränken?

    -----------------------------------------------------------------------------------------------------------
    Edit: Offenbar hab ich den Pfad falsch angegeben, wenn ich die Ebene darüber angebe, also 'path' => 'files/testbilder', verschwindet die Fehlermeldung. Funktioniert scheinbar doch, aber ist das eine korrekte Lösung?
    Geändert von bibib (15.12.2020 um 07:37 Uhr)

  15. #15
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Ich hänge mich mal dran ...

    Versuche gerade, die Frontendausgabe der Bildergalerie zu steuern und nehme dafür das Galerietemplate als Vorlage. Die sieht dann (leicht modifiziert) so aus:
    HTML-Code:
    		<ul class="cols_3 itemscope itemtype="http://schema.org/ImageGallery">
    		  <?php foreach ($this->body as $class => $row): ?>
    		    <?php foreach ($row as $col): ?>
    		      <?php if ($col->addImage): ?>
    		        <li class="<?= $class ?> <?= $col->class ?>">
    		          <figure class="image_container"<?php if ($col->margin): ?> style="<?= $col->margin ?>"<?php endif; ?>>
    		            <?php if ($col->href): ?>
    		              <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>><?php $this->insert('picture_default', $col->picture); ?></a>
    		            <?php else: ?>
    		              <?php $this->insert('picture_default', $col->picture); ?>
    		            <?php endif; ?>
    		            <?php if ($col->caption): ?>
    		              <figcaption class="caption"><?= $col->caption ?></figcaption>
    		            <?php endif; ?>
    		          </figure>
    		        </li>
    		      <?php endif; ?>
    		    <?php endforeach; ?>
    		  <?php endforeach; ?>
    		</ul>
    Und der Code, den ich darin integrieren möchte, so:
    Code:
    		<?php $dataSorted = array_map('\StringUtil::binToUuid', deserialize($this->orderSRC, true)); 
    		foreach ( $dataSorted as $data ) {
    		    if ($image = $this->getImageObject($data, array('','', 22))) { // Hier die ID der verwendeten Bildgröße
    		        $this->insert('picture_default', $image->picture);
    		    } 
    		} ?>
    Aber wie bringe ich beides zusammen???
    Geändert von Lufine (11.02.2021 um 12:52 Uhr)

  16. #16
    Contao-Fan
    Registriert seit
    27.11.2009.
    Ort
    Bremen
    Beiträge
    463

    Standard

    Und gleich noch eine Frage hinterher: Kann ich da irgendwie die Option 'Großansicht/Neues Fenster' mit einbauen?

  17. #17
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Ich habe wie hier im Thread beschreiben den folgenden Code in meinem RSCE Ausgabe Template :
    PHP-Code:
    <?php
      $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue));  
     foreach ( 
    $dataSorted as $data ):

     if (
    $image $this->getImageObject($data, array('',''13))):
        
    $this->insert('picture_default'$image->picture);
     endif;
     endforeach 
    ?>
    Das klappt für eine "normale" Ausgabe mit mehreren Bilder

    Es funktioniert aber nicht! wenn im RSCE config Template
    Code:
    'inputType' => 'list',
    steht - ich möchte mehrere Boxen ausgeben - was auch klappt aber eben ohne Bildausgabe

    Im Ausagbe Template steht in etwa so etwas:
    PHP-Code:
      <?php foreach($this->boxes as $box): ?>

    <div class="slider">                                                       
      <?php
     $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($this->orderSRCtrue));  

    foreach ( 
    $dataSorted as $data ):

     if (
    $image $this->getImageObject($data, array('',''13))):
     
    $this->insert('picture_default'$image->picture);
     endif;
     endforeach 
    ?>
        </div> 
    <?php endforeach ?>
    Die Frage ist wie bekomme ich eine Ausgabe hin, wenn ich ein Element mit 'inputType' => 'list', anlege?

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

    Standard

    Sieh dir deinen Code nochmal genauer an. Du iterierst über $this->boxes, nimmst aber immer noch $this->orderSRC bspw. Das wäre ja dann eigentlich $box->orderSRC.
    » sponsor me via GitHub or PayPal or Revolut

  19. #19
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Das stimmt zwar, hatte ich aber schon geändert, was keinerlei Veränderung brachte

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

    Standard

    Wie gesagt, der aktuelle Code ist sicher falsch . Poste dein RSCE Template + Config File.
    » sponsor me via GitHub or PayPal or Revolut

  21. #21
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    rsce_teaserboxes_slider_config.php

    PHP-Code:
    <?php
    return array(
        
    'label' => array('SLIDER TEST'''),
        
    'types' => array('content'),
        
    /*'standardFields' => array('cssID'), */

        
    'fields' => array(
             
    'boxes' => array(
                
    'label' => array('Textboxen'''),
                
    'elementLabel' => '%s. Box',
                
    'inputType' => 'list',
                
    'minItems' => 1,
                
    /*'maxItems' => 4,*/
                
        
    'fields' => array(    
                    
    'multiSRC' => array(
                        
    'label' => array('Bild''Teaserbild'),
                        
    'inputType' => 'fileTree',
                        
    'eval' => array( 'tl_class' => 'clr',
                        
    'isGallery' => true,
                        
    'multiple' => true,
                        
    'fieldType' => 'checkbox',
                        
    'orderField' => 'orderSRC',
                        
    'files' => true,
                         
    'mandatory' => true,
                         
    'extensions' => \Config::get('validImageTypes') ),
                    ),

           
    'headline' => array(
                   
    'label' => array('Überschrift'''),
                   
    'eval' => array('mandatory'=>false,'tl_class' => 'clr'),
                   
    'inputType' => 'text'
                    ),                              
            
    'teasertext' => array(
                   
    'label' => array('Teaser Text''Text für den Teaser hier eingeben'),
                   
    'eval' => array('mandatory'=>false'rte' => 'tinyMCE''tl_class' => 'clr'),
                   
    'inputType' => 'textarea'
                    ),
            
    'link' => array(
                        
    'label' => array('Link Adresse'''),
                        
    'eval' => array('rgxp'=>'url''decodeEntities'=>true,'maxlength'=>250,'mandatory'=>false,'tl_class' => 'w50 clr'),
                        
    'inputType' => 'url',
                    ),
            
    'linktext' => array(
                   
    'label' => array('Link Text''Text für den Link - "mehr" kann überschrieben werden'),
                   
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                   
    'inputType' => 'text'
                   
    'default' => 'mehr',
                    ),                
             
    'link_target' => array(
                        
    'label' => $GLOBALS['TL_LANG']['MSC']['target'],
                        
    'inputType' => 'checkbox',
                        
    'eval' => array('tl_class' => 'w50 clr'),
                    ),
          
    'bgcolor' => array(
                    
    'label' => array('Hintergrundfarbe Textbereich''HG Farbe der Teaser-Textbox'),
                    
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                     
    'default' => 'area--gray',
                    
    'options' => array(
                    
    'area--gray' => 'Grau',
                    
    'area--white' => 'Weiß',                
                    ),
                    
    'inputType' => 'radio',
                  ),                                    
      
        ),
            ),
                ),
    );
    rsce_teaserboxes_slider.html5

    PHP-Code:
         <?php
        
    if (TL_MODE === 'BE') { 
         foreach (
    $this->boxes as $box)  
            echo 
    ''.$box->headline.'<br>';
            return;
        }
    ?>  
     <div class="teaser__box--full mb-5">
        <?php foreach($this->boxes as $box): ?>
     <div class="row teaser no-gutters"> 
     <div class="col-md-6 order-md-1 order-2">
     <div class="teaser-area d-flex justify-content-center align-items-center <?= $box->bgcolor ?>">
     <div class="teaser-text--inner">
         <?php if ($box->headline): ?><h2><?= $box->headline ?></h2><?php endif ?> 
         <?php if ($box->teasertext): ?><?= $box->teasertext ?><?php endif ?>
          <?php if ($box->link): ?> 
    <div class="teaser-area-link block">
          <a href="<?= $box->link ?>" title="<?= $box->linktext ?><?php if ($box->link_target): ?> target="_blank"<?php endif ?>><?= $box->linktext ?></a>        
    </div>
    <?php endif ?> 
     </div>
       </div>
        </div>
       <div class="col-md-6 order-md-2 order-1">
                      <div class="teaser-image h-100 h-100-img object-fit-cover">
                        <?php if ($box->link): ?><a href="<?= $box->link ?>" title="<?= $box->linktext ?><?php if ($box->link_target): ?> target="_blank"<?php endif ?>><?php endif ?>
                        
                       <div class="mpslider">                                                       
                                 <?php
                                $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($box->orderSRCtrue));  

                                foreach ( 
    $dataSorted as $data ):

                                    if (
    $image $this->getImageObject($data, array('',''13))):
                                        
    $this->insert('picture_default'$image->picture);
                                    endif;
                                endforeach 
    ?>
                                </div>                            
                                     <?php if ($box->link): ?></a><?php endif ?>                                   
                        </div>
                  </div>
           </div> 
     
    <?php endforeach ?> 
       </div>
    Nicht wundern über Sinn und Zweck, das Ganze ist noch im Aufbau aber Bilder müssten dennoch ausgegeben werden

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

    Standard

    Da hast du dir zu viel kopiert, ohne dir darüber Gedanken zu machen. orderSRC kannst du ohnehin nicht verwenden. Also 'orderField' => 'orderSRC', muss weg und in deinem Template nutzt du dann $box->multiSRC.
    » sponsor me via GitHub or PayPal or Revolut

  23. #23
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Leider klappt es trotzdem nicht. Ich habe es genau so gemacht

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

    Standard

    Du musst immer deinen Code posten. Einfach nur zu sagen "klappt nicht" reicht nicht. Außerdem würde ich dir empfehlen deinen Code korrekt zu formatieren, damit du Fehler besser sehen kannst.
    » sponsor me via GitHub or PayPal or Revolut

  25. #25
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Danke für Deine Geduld mit mir, da fehlen mir wohl noch einige Skills

    'orderField' => 'orderSRC', isr raus aus der config und im Template so wie Du geschrieben hattest, besser gesagt wie ich es verstanden habe und Template sieht so aus:


    PHP-Code:
         <?php
        
    if (TL_MODE === 'BE') { 
         foreach (
    $this->boxes as $box)  
            echo 
    ''.$box->headline.'<br>';
            return;
        }
    ?>  
     <div class="teaser__box--full mb-5">
        <?php foreach($this->boxes as $box): ?>
     <div class="row teaser no-gutters"> 
     <div class="col-md-6 order-md-1 order-2">
     <div class="teaser-area d-flex justify-content-center align-items-center <?= $box->bgcolor ?>">
     <div class="teaser-text--inner">
         <?php if ($box->headline): ?><h2><?= $box->headline ?></h2><?php endif ?> 
         <?php if ($box->teasertext): ?><?= $box->teasertext ?><?php endif ?>
          <?php if ($box->link): ?> 
    <div class="teaser-area-link block">
          <a href="<?= $box->link ?>" title="<?= $box->linktext ?><?php if ($box->link_target): ?> target="_blank"<?php endif ?>><?= $box->linktext ?></a>        
    </div>
    <?php endif ?> 
     </div>
       </div>
        </div>
    <div class="col-md-6 order-md-2 order-1">
         <div class="teaser-image h-100 h-100-img object-fit-cover">
         <?php if ($box->link): ?><a href="<?= $box->link ?>" title="<?= $box->linktext ?><?php if ($box->link_target): ?> target="_blank"<?php endif ?>><?php endif ?>
         <div class="mpslider">
                                   
         <?php
        $dataSorted 
    array_map('\StringUtil::binToUuid'deserialize($box->multiSRCtrue)); 
        foreach ( 
    $dataSorted as $data ):
            if (
    $image $this->getImageObject($data, array('',''13))):
            
    $this->insert('picture_default'$image->picture);
            endif;
        endforeach 
    ?>
         </div>                            
         <?php if ($box->link): ?></a><?php endif ?>                                   
     </div>
       </div>
           </div>  
     
    <?php endforeach ?> 
       </div>
    Geändert von Bennie (01.07.2022 um 16:17 Uhr)

  26. #26
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Ich habe nochmal etwas probiert, also mit $box->multiSRC bekomme ich keine Ausgabe hin

    Wenn ich das Ganze ohne die Liste mache kommt mit $this->orderSRC etwas raus natürlich nur wenn in der config auch 'orderField' => 'orderSRC' steht

    Da mache ich wohl etwas grundlegend falsch

  27. #27
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Sorry wenn ich es als NICHT Entwickler nochmal aufwärmem muss, keiner 'ne Idee?

    Wie gesagt alles was ich im Forum gefunden habe dazu bezieht sich immer auf $this->orderSRC, das funktioniert sofort außerhalb der foreach Schleife.
    Wie das in meinem Fall gehen soll ist mir leider nicht klar

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

    Standard

    @Bennie offensichtlich ist der Weg zur Lösung erklärungsbedürftiger als per Postings machbar - ggf. bringt Dich ein "1:1-Coaching" schneller ans Ziel => https://community.contao.org/de/foru...Auftr%C3%A4ge)

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
  •