Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 21. Oktober 2011 22:09

frickel
hat von CMS/ms gehört
Ort: Münster
Registriert: 20. Mai 2011
Beiträge: 17

[GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Hallo,
ich habe mit dem Gallery-Modul mehrere Galerien erstellt und die Editoren sollen jetzt jeder Seite eine davon zuweisen können. Der normale Weg wäre wohl die Editoren einfache {Gallery dir="eine_bestimmte_gallery"} ins Main-Content-Felds schreiben zu lassen, aber die Galerie soll an einer Stelle außerhalb des Main-Contents angezeigt werden.

Daher würde ich gerne ein weiteren Content-Block anlegen so nach diesem Motto:

{Gallery dir="{content block="Galerie" oneline="true" default="default_gallery"}"}

was aber anscheinend zu sehr gefrickelt ist und nicht läuft, aber die Idee ist wohl klar...

Gibts da ne saubere Möglichkeit?

Was funtioniert ist wenn ich im Template nur {content block="Galerie" oneline="true"} angebe und
der Editor dann {Gallery dir="default_gallery"} ins Eingabefeld schreibt, aber dabei kann ich keinen vernünftigen
Default-Wert setzten... und ohne traue ichs dem Kunden nicht zu...

Gruß & Dank Frickel

Beitrag geändert von frickel (21. Oktober 2011 13:27)

Offline

#2 21. Oktober 2011 22:26

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

ist schon richtig so aber der kunde braucht dann ja nur das dir im content block angeben. also "default_gallery". den rest ({Gallery…}) schreibst du ins template.

Offline

#3 21. Oktober 2011 05:24

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Hier wäre AdvancedContent mit dem von mir geschriebenen Modul interessant:

function.getGalleryTree.php

<?php

/**
 * ------------------------------------------------------------------------
 * Liest alle Gallery Ordner aus und übergibt sie als Liste AdvancedContent
 * ------------------------------------------------------------------------
 * blattertech informatik, Lukas Blatter, lb@blattertech.ch
 * Twitter: @lukasblatter
 * Web: www.blattertech.ch
 * ------------------------------------------------------------------------
 * History:
 * 2011.08.20 - Lukas Blatter - Inital Release
 * 2011.12.02 - Lukas Blatter - Unterstützt nun auch die Auswahl von Unterordnern
 *                              mit subdir="/pfad/zum/ordner"
 *                              $config Aufruf an 1.10.x angepasst.
 * ------------------------------------------------------------------------
 * This program is distributed under the GNU General Public License, Version 2,
 * June 1991. Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin
 * St, Fifth Floor, Boston, MA 02110, USA
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * */

function smarty_cms_function_getGalleryTree($params, &$smarty)
{

    $config = cmsms()->GetConfig();
    $delimiter = "|";

    if (!function_exists("getGalleryTreeAsArray"))
    {
        function getGalleryTreeAsArray($path = '.', $ignore = array()) {
            $dirTree = array ();
            $dirTreeTemp = array ();
            $ignore[] = '.';
            $ignore[] = '..';
            $ignore[] = '.htaccess';
            $ignore[] = 'error_log';
            $ignore[] = 'cgi-bin';
            $ignore[] = '.DS_Store';
            $ignore[] = 'thumb';

            $config = cmsms()->GetConfig();

            if (strpos($path,$config['uploads_path']) === FALSE)
                $path = $config['uploads_path']."/".trim($path,"/");

            $dh = @opendir($path);

            while (false !== ($file = readdir($dh))) {

                if (!in_array($file, $ignore)) {
                    if (!is_dir("$path/$file")) {
                        $fileinfo=pathinfo($path."/".$file);
                                        if((strtolower($fileinfo['extension']) == "jpg"
                                         or  strtolower($fileinfo['extension']) == "jpeg"
                                         or strtolower($fileinfo['extension']) == "gif"
                                         or strtolower($fileinfo['extension']) == "png") and strpos($file,"thumb") === FALSE)
                        $dirTree["$path"][] = $file;

                    } else {

                        $dirTreeTemp = getGalleryTreeAsArray("$path/$file", $ignore);
                        if (is_array($dirTreeTemp))$dirTree = array_merge($dirTree, $dirTreeTemp);
                    }
                }
            }
            closedir($dh);

            return $dirTree;
        }
    }
 
     $subdir = "";
         if (isset($params['subdir'])) {
         $subdir = "/".trim($params['subdir'],"/");
     }



    $dirTree = getGalleryTreeAsArray('/images/Gallery'.$subdir);
    $gallerys = array();

    foreach ($dirTree as $k => $v) {
        $pfad = str_replace($config['uploads_path']."/images/Gallery/","",$k);
        $gallerys[$pfad] = $pfad." (".count($v)." Fotos)";
    }

    ksort($gallerys);

    $smarty->assign("galleryTreeArray",$gallerys);
    $smarty->assign("galleryTreeTitel",implode($delimiter, $gallerys));
    $smarty->assign("galleryTreePath",implode($delimiter, array_keys($gallerys)));

    if ($params['action'] == "url")
        return implode($delimiter, array_keys($gallerys));
    else
        return implode($delimiter, $gallerys);

}

Eingebaut wird das ganze wie folgt:

{* Dropdownfeld mit AdvancedContent erstellen *}
{AdvancedContent block="Gallery" label="Gallery"  block_type="dropdown" allow_none=true items="Keine Gallery|:::getGalleryTree :::" values="|:::getGalleryTree action='url':::" smarty=backend assign="gallerypath"}

{* Gallery anzeigen wenn eine Gallery ausgewählt wurde *}
{if $gallerypath != ""}{Gallery dir=$gallerypath}{/if}

Damit wird ein Dropdown erzeugt welches alle Gallerys anzeigt, welche du erfasst hast. Leere Gallery-Ordner werden nicht angezeigt.

In meinem Blog gibt es ein Bild dazu.

Beitrag geändert von nockenfell (21. Oktober 2011 05:41)


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#4 21. Oktober 2011 13:26

frickel
hat von CMS/ms gehört
Ort: Münster
Registriert: 20. Mai 2011
Beiträge: 17

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

nockenfell, das ist ja der Hammer!
Besten Dank fürs Teilen  big_smile

Gruß frickel

Offline

#5 12. März 2012 12:27

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

hm, ich bekomm bei der 10.3 diesen fehler hier:

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 92  Warning: implode() [function.implode]: Invalid arguments passed in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 96

Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#6 12. März 2012 12:38

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

leerraum schrieb:

hm, ich bekomm bei der 10.3 diesen fehler hier:

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 92  Warning: implode() [function.implode]: Invalid arguments passed in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 96

An 1.10.3 kann's nicht liegen. das funktioniert.
Sind deine Galerien auch im Pfad: /uploads/images/Gallery/... ?
So wird das im Plugin erwartet.

Offline

#7 12. März 2012 12:54

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 92  Warning: implode() [function.implode]: Invalid arguments passed in /home/www/web168/html/cmsms/plugins/function.getGalleryTree.php on line 96

Nimm mal das Plugin aus Nockenfells Blog. Das ist aktueller.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 12. März 2012 14:33

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

ok, jetzt geht's. Danke!


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#9 13. September 2012 14:40

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Muss das Thema hier noch mal aufnehmen.

Ich habe installiert:
Core 1.10.3
AC 0.9.4 BETA
Gallery: 1.5.3
function.getGalleryTree.php: 2011.12.02 (aus nockenfells Blog)

Folgendes Problem: Vor dem ersten Eintrag im Backend-Dropdown bekomme ich diese Meldung (also nix Spezifisches, was mit dem dem jeweiligen Galerieordner zu tun hätte):

Notice: Undefined index: action in /www/htdocs/w0084c90/relaunch/plugins/function.getGalleryTree.php on line 105

Die Galerie wird im Frontend fehlerfrei geladen. Wahrscheinlich ist die Notice also ein Eintrag, der nur durch die Formatierung im Backend in Verbindung mit der ersten Galerie angezeigt wird.
Sieht halt blöd aus für den Benutzer ...

Kann mir jemand helfen, die Meldung zu unterdrücken bzw. eine Lösung vorschlagen? Was ist da »falsch«?

Offline

#10 13. September 2012 15:47

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Hier die aktuellste Version. Bei der Abfrage des Parameter "action" hatte eine Abfrage gefehlt, ob dieser Parameter existiert.

function smarty_cms_function_getGalleryTree($params, &$smarty)
{

    $config = cmsms()->GetConfig();
    $delimiter = "|";

    if (!function_exists("tbGetGalleryTreeAsArray"))
    {
        function tbGetGalleryTreeAsArray($path = '.', $ignore = array()) {
            $dirTree = array ();
            $dirTreeTemp = array ();
            $ignore[] = '.';
            $ignore[] = '..';
            $ignore[] = '.htaccess';
            $ignore[] = 'error_log';
            $ignore[] = 'cgi-bin';
            $ignore[] = '.DS_Store';
            $ignore[] = 'thumb';

            $config = cmsms()->GetConfig();

            if (strpos($path,$config['uploads_path']) === FALSE)
                $path = $config['uploads_path']."/".trim($path,"/");

            $dh = @opendir($path);

            while (false !== ($file = readdir($dh))) {

                if (!in_array($file, $ignore)) {
                    if (!is_dir("$path/$file")) {
                        $fileinfo=pathinfo($path."/".$file);
                                        if((strtolower($fileinfo['extension']) == "jpg"
                                         or  strtolower($fileinfo['extension']) == "jpeg"
                                         or strtolower($fileinfo['extension']) == "gif"
                                         or strtolower($fileinfo['extension']) == "png") and strpos($file,"thumb") === FALSE)
                        $dirTree["$path"][] = $file;

                    } else {

                        $dirTreeTemp = tbGetGalleryTreeAsArray("$path/$file", $ignore);
                        if (is_array($dirTreeTemp))$dirTree = array_merge($dirTree, $dirTreeTemp);
                    }
                }
            }
            closedir($dh);

            return $dirTree;
        }
    }
 
	 $subdir = "";
		 if (isset($params['subdir'])) {
		 $subdir = "/".trim($params['subdir'],"/");
	 }



    $dirTree = tbGetGalleryTreeAsArray('/images/Gallery'.$subdir);
    $gallerys = array();

    foreach ($dirTree as $k => $v) {
        $pfad = str_replace($config['uploads_path']."/images/Gallery/","",$k);
        $gallerys[$pfad] = $pfad." (".count($v)." Fotos)";
    }

    ksort($gallerys);

    $gkeys = array_keys($gallery);

    $smarty->assign("tbGalleryTreeArray",$gallerys);
    $smarty->assign("tbGalleryTreeTitel",implode($delimiter, $gallerys));
    $smarty->assign("tbGalleryTreePath",implode($delimiter, $gkeys));


    if (isset($params['action']) and $params['action'] == "url")
        return implode($delimiter, array_keys($gallerys));
    else
        return implode($delimiter, $gallerys);

}

[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#11 13. September 2012 20:01

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Danke, nockenfell, für die schnelle Hilfe!

Habe noch in der Zeile

[== smarty ==]
$gkeys = array_keys($gallery);

ein s an gallery gehängt. Bei meinen Smarty-Kenntnissen ist das ein Zufallsfund. Aber egal, denn jetzt läuft's wie geschmiert.

Offline

#12 13. September 2012 20:36

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Danke für den Hinweis


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#13 21. September 2012 17:44

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Und doch noch ne Frage:

Gibt es eine Lösung für den Fall, dass ich mehrere Galerien auf einer Seite anzeigen möchte und deshalb block_type="select_multiple" setze? Momentan werden mehrere Galerien in einem Pfad verwurstet:

Das Verzeichnis &bdquo;Gallery/test_galerie|lux_la_rue&ldquo; existiert nicht. Bitte &uuml;berpr&uuml;fen Sie die eingegebenen Parameter.

Die Galerien test_galerie und lux_la_rue sind aber beide gleichgeordnet (also Unterordner von) Gallery.

Und das habe ich im Template stehen:

[== smarty ==]
{AdvancedContent block="Gallery" label="Galerien auswählen" block_type="select_multiple" sortable="true" size="4" allow_none=true items="auf dieser Seite keine Galerie anzeigen|:::getGalleryTree :::" values="|:::getGalleryTree action='url':::" smarty=true assign="gallerypath"}

Aufruf:

[== smarty ==]
{if $gallerypath != ""}{Gallery dir=$gallerypath}{/if}

Offline

#14 21. September 2012 21:10

otter24
kennt CMS/ms
Ort: Hamburg
Registriert: 12. Januar 2011
Beiträge: 339

Re: [GELÖST] (Gallery-Modul) bestimmte Gallery auswählen

Und das würde nicht mit dem Gallery_Picker Plugin gehen,  das man im Tiny MCE aktivieren kann?
Das funktioniert auf jeden Fall auch mit AC, man hat halt immer den Tiny am Start, was zugegebner Maßen die berühmten Kanonen auf die Spatzen sind, um nur eine Galerie auszuwählen, aber es funktioniert.

Oder hab ich da was nicht ganz verstanden...


Ich bin war  kein Klugscheißer, ich weiß wusste es wirklich nicht besser.

Offline