Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: [ERLEDIGT] Sortable Image Gallery / Bildergallerie im DCA?

  1. #1
    Gesperrt
    Registriert seit
    02.11.2012.
    Beiträge
    52

    Standard [ERLEDIGT] Sortable Image Gallery / Bildergallerie im DCA?

    Hi Leute,

    gibt es die Möglichkeit im DCA von seinem eigenen Modul eine sortable Imagegallery zu nutzen?
    Also Dateiauswahl von Bildern von denen man die Reihenfolge per Drag&Drop ändern kann oder bin ich gezwungen auf den MCW auszuwichen? Die Dateien umzubenennen, wonach er ja scheinbar standardmäßig sortiert, ist keine Option.

    Danke schonmal!
    Geändert von qf_rigo (24.03.2016 um 11:32 Uhr)

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    also ich hab grad in den core geschaut (tl_content => gallery), müsste das doch einfach möglich sein. Schau dir einfach das Feld multiSRC an. Im eval hast du den Parameter 'orderField'=>'orderSRC'. Dann brauchst du noch dieses Feld (ist in der tl_content) direkt danach. ggf. musst du noch den Parameter isGallery=true im eval setzen.

    Also müsste mit Boardmitteln möglich sein
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Gesperrt
    Registriert seit
    02.11.2012.
    Beiträge
    52

    Standard

    PHP-Code:
    'objekt_galerie' => array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_qfOM_objekte']['objekt_galerie'],
        
    'inputType'               => 'fileTree',
        
    'eval'                    => array(
                                        
    'mandatory'=>true,
                                        
    'multiple' => true,
                                        
    'files'=>true,
                                        
    'fieldType'=>'checkbox',
                                        
    'filesOnly'=>true,
                                        
    'orderField'=>'orderSRC',
                                        
    'isGallery'=>true
                                    
    ),
                                    
    'exclude' => true,
        
    'sql'                     => "blob NULL",
    ),
    'orderSRC' => array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_content']['orderSRC'],
        
    'sql'                     => "blob NULL"
    ), 
    Klappt super

    und dazu noch im Modul den OrderCase nicht vergessen damit das Feld auch greift. Cheers!

    PHP-Code:
                        // Add the image
                        
    $images[$objSubfiles->path] = array
                        (
                            
    'id'        => $objSubfiles->id,
                            
    'uuid'      => $objSubfiles->uuid,
                            
    'name'      => $objFile->basename,
                            
    'singleSRC' => $objSubfiles->path,
                            
    'alt'       => $arrMeta['title'],
                            
    'imageUrl'  => $arrMeta['link'],
                            
    'caption'   => $arrMeta['caption']
                        );

                    if (
    $this->orderSRC != '')
                    {
                        
    $tmp deserialize($this->orderSRC);

                        if (!empty(
    $tmp) && is_array($tmp))
                        {
                            
    // Remove all values
                            
    $arrOrder array_map(function(){}, array_flip($tmp));

                            
    // Move the matching elements to their position in $arrOrder
                            
    foreach ($images as $k=>$v)
                            {
                                if (
    array_key_exists($v['uuid'], $arrOrder))
                                {
                                    
    $arrOrder[$v['uuid']] = $v;
                                    unset(
    $images[$k]);
                                }
                            }

                            
    // Append the left-over images at the end
                            
    if (!empty($images))
                            {
                                
    $arrOrder array_merge($arrOrderarray_values($images));
                            }

                            
    // Remove empty (unreplaced) entries
                            
    $images array_values(array_filter($arrOrder));
                            unset(
    $arrOrder);
                        }
                    }
    $images array_values($images); 

  4. #4
    Contao-Nutzer
    Registriert seit
    28.08.2017.
    Beiträge
    19

    Standard

    Zitat Zitat von qf_rigo Beitrag anzeigen
    PHP-Code:
    'objekt_galerie' => array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_qfOM_objekte']['objekt_galerie'],
        
    'inputType'               => 'fileTree',
        
    'eval'                    => array(
                                        
    'mandatory'=>true,
                                        
    'multiple' => true,
                                        
    'files'=>true,
                                        
    'fieldType'=>'checkbox',
                                        
    'filesOnly'=>true,
                                        
    'orderField'=>'orderSRC',
                                        
    'isGallery'=>true
                                    
    ),
                                    
    'exclude' => true,
        
    'sql'                     => "blob NULL",
    ),
    'orderSRC' => array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_content']['orderSRC'],
        
    'sql'                     => "blob NULL"
    ), 
    Klappt super

    und dazu noch im Modul den OrderCase nicht vergessen damit das Feld auch greift. Cheers!

    PHP-Code:
                        // Add the image
                        
    $images[$objSubfiles->path] = array
                        (
                            
    'id'        => $objSubfiles->id,
                            
    'uuid'      => $objSubfiles->uuid,
                            
    'name'      => $objFile->basename,
                            
    'singleSRC' => $objSubfiles->path,
                            
    'alt'       => $arrMeta['title'],
                            
    'imageUrl'  => $arrMeta['link'],
                            
    'caption'   => $arrMeta['caption']
                        );

                    if (
    $this->orderSRC != '')
                    {
                        
    $tmp deserialize($this->orderSRC);

                        if (!empty(
    $tmp) && is_array($tmp))
                        {
                            
    // Remove all values
                            
    $arrOrder array_map(function(){}, array_flip($tmp));

                            
    // Move the matching elements to their position in $arrOrder
                            
    foreach ($images as $k=>$v)
                            {
                                if (
    array_key_exists($v['uuid'], $arrOrder))
                                {
                                    
    $arrOrder[$v['uuid']] = $v;
                                    unset(
    $images[$k]);
                                }
                            }

                            
    // Append the left-over images at the end
                            
    if (!empty($images))
                            {
                                
    $arrOrder array_merge($arrOrderarray_values($images));
                            }

                            
    // Remove empty (unreplaced) entries
                            
    $images array_values(array_filter($arrOrder));
                            unset(
    $arrOrder);
                        }
                    }
    $images array_values($images); 

    Mit dem unteren Code kann ich die Bilder leider nicht auslesen. Wo ist der Bezug zu dem array "objekt_galerie"? Hier werden ja die Bilder gewählt. Im Template bräuchte ich doch dann ein Loop (for each o.ä.) der die Bilder ausgibt.

    Wäre nett wenn jemand helfen könnte.
    VG

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
  •