galerienavigation 1,2,3,4 ...

Gesperrt
muratelier
Beiträge: 19
Registriert: Mi 28. Mai 2008, 16:27
Kontaktdaten:

galerienavigation 1,2,3,4 ...

Beitrag von muratelier »

guten tag euch allen!

ich würde für eine galerie mit über 240 bildern eine navigation brauchen.
soll bedeuten:
wenn jetzt eine galerie x bilder auf y seiten hat, dann soll für den user zwischen "vor" und "zurück" auch eine möglichkeit bestehen, seiten direkt anzusteuern (z.b.: über nummern).
ihr kennt das sicher aus google, ebay...
war das jetzt halbwegs verständlich?

ich hab auch schon die suche eingesetzt, bin aber nach ca. 2 stunden intensiven forum-lesens nicht auf eine lösung gestoßen.

wäre nett, wenn ihr mir da einen tipp geben könntet.

glg und danke schon mal jetzt ...
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

Hallo,

das Modul "Picture_Gallery" macht das mit der Pagernavigation. Es ist schon bei der Installation von Contenido (mit Beispielmodulen) dabei.

[nachtrag]
Sehe gerade, dass wir hier im 4.6er Forum sind. Das Modul mit der Pagernavi gibt es in der Version 4.8.x.
[/nachtrag]

Gruß
xmurrrix
muratelier
Beiträge: 19
Registriert: Mi 28. Mai 2008, 16:27
Kontaktdaten:

Beitrag von muratelier »

okok,
danke für den hinweis...

funkt das dann auch in der 4.6er-version?

wie komme ich an das modul, wenn ich keine möglichkeit hab mir das schnell mal zu installieren und das modul herauszukopieren?

bitte nochmals um hilfe - bin verzweifelt...

glg und fettes danke...
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

funkt das dann auch in der 4.6er-version?
Denke schon, das Modul scheint nicht Funktionen zu verwenden, die nur in der 4.8 er Version vorkommen.
wie komme ich an das modul, wenn ich keine möglichkeit hab mir das schnell mal zu installieren und das modul herauszukopieren?
Habe den Modulexport und die Templates gezippt, kannst es unter http://rapidshare.com/files/118832729/C ... y.zip.html herunterladen.

Gruß
xmurrix
muratelier
Beiträge: 19
Registriert: Mi 28. Mai 2008, 16:27
Kontaktdaten:

Beitrag von muratelier »

ich danke dir herzlichst...
habs schon heruntergeladen.

werde das am wochenende mal ausprobieren!

hoffentlich klappt es auch...

nochmal meinen herzlichsten dank...

:D :D :D :D :D :D :D :D :D :D :D :D
muratelier
Beiträge: 19
Registriert: Mi 28. Mai 2008, 16:27
Kontaktdaten:

Beitrag von muratelier »

ich hab das jetzt mal ausprobiert und es funkt leider nicht!
:cry:
ich bekomme beim modul im bereich "Ausgabe" einen roten punkt.
da is also irgenwie der wurm drinnen...

kann es sein, dass durch das xml-file von xmurrix, das er mir dankenswerter weise geschickt hat, da noch irgendwelche sonderzeichen drinnen sind, die nicht passen? ich habs zwar bereinigt, aber ob ich alles erwischt hab, ist fraglich.

geschickt bekommen hab ich für das modul die eingabe und die ausgabe aus der 4.8er-version mit den dazugehörigen modul-templates.
ich will das ganze jetzt in die 4.6er-version einbauen.

vielleicht findet sich ja jemand, der da drüberschauen kann - ich bin bereits betriebsblind geworden und seh gar nix mehr...

bitte helft mir noch einmal - bin echt schon am durchdrehen!!!

Code: Alles auswählen

<?php


/***********************************************
* Bildergalerie Output
*
* Author      :     Timo A. Hummel
* Copyright   :     four for business AG
* Created     :     30-09-2005
* Modified    :     10-04-2008 by Bilal Arslan added new Bottom Navigation and change style
************************************************/

cInclude("includes", "functions.api.images.php");

/* Gallery variables */
$bRecursive= false;

/* mi18n variables */
$sSeeImage= mi18n("Bildvorschau");
$sDownImage= mi18n("Bild herunterladen");

$sPath= "CMS_VALUE[5]";
if ($sPath == '') {
    $sPath= $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "bildergalerie/";
} else {
    $sPath= $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "CMS_VALUE[5]";
}

$iRows= "CMS_VALUE[3]";

if ($iRows == 0) {
    $iRows= 2;
}

$iColumns= "CMS_VALUE[2]";

if ($iColumns == 0) {
    $iColumns= 2;
}

$start= $_REQUEST['start'];

if (isset ($start) && $start != "") {
    $iCurrentPage= $start;
} else {
    $iCurrentPage= 1;
    $start= 1;
}

$iWidth= "CMS_VALUE[0]";
$iHeight= "CMS_VALUE[1]";

if ($iWidth == 0) {
    $iWidth= 300;
}

if ($iHeight == 0) {
    $iHeight= 300;
}

$iDetailWidth= "CMS_VALUE[4]";

if ($iDetailWidth == 0) {
    $iDetailWidth= 300;
}

$aValidExtensions= array (
    "jpg",
    "jpeg",
    "gif",
    "png"
);

$iImagesPerPage= $iRows * $iColumns;

if ($_REQUEST['view'] == '') {
    /* Read all gallery files */
    $aGalleryFiles= scanDirectory($sPath, $bRecursive);

    if (is_array($aGalleryFiles)) {
        /* Filter out non-images */
        foreach ($aGalleryFiles as $key => $aGalleryFile) {
            $sExtension= strtolower(getFileExtension($aGalleryFile));

            if (!in_array($sExtension, $aValidExtensions)) {
                unset ($aGalleryFiles[$key]);
            }
        }

        /* Calculate effective variables */
        $iFileCount= count($aGalleryFiles);
        $iPages= ceil($iFileCount / $iImagesPerPage);

        $aImagesToDisplay= array_slice($aGalleryFiles, ($iCurrentPage -1) * $iImagesPerPage, $iImagesPerPage);

        $oImageTpl= new Template;
        $oGalleryTpl= new Template;
        $oEmptyImageTpl= new Template;

        $aRenderedImages= array ();

        $iRow= 0;
        $iImagesRendered= 0;
        $j= 1;
        foreach ($aImagesToDisplay as $sImageToDisplay) {

            $sDownloadImage= str_replace($cfgClient[$client]['path']['frontend'], '', $sImageToDisplay);

            /* Do Scaling */
            $sScaledImage= cApiImgScale($sImageToDisplay, $iWidth, $iHeight);

            $link= 'front_content.php?idcatart=' . $idcatart . '&amp;start=' . $_REQUEST['start'] . '&amp;view=' . urlencode(str_replace($cfgClient[$client]['path']['frontend'], '', $sImageToDisplay));

            $description= ig_getImageDescription($sImageToDisplay);
            if ($description == '') {
                $description= '&nbsp;';
            }

            $download_link= str_replace($cfgClient[$client]['path']['frontend'], $cfgClient[$client]['path']['htmlpath'], $sImageToDisplay);

            $download_size= ig_GetReadableFileSize($sImageToDisplay);

            $oImageTpl->reset();
            $oImageTpl->set("s", "FILE", $sScaledImage);
            $oImageTpl->set("s", "WIDTH", $iWidth);
            $oImageTpl->set("s", "HEIGHT", $iHeight);
            $oImageTpl->set("s", "LINK", $link);
            $oImageTpl->set("s", "DESCRIPTION", $description);
            $oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
            $oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
            $oImageTpl->set("s", "DOWNLOAD_CAPTION", mi18n("Bild herunterladen"));
            $oImageTpl->set("s", "PREVIEW_CAPTION", mi18n("Bildvorschau"));
            $oImageTpl->set("s", "LINK_DOWN", $sDownloadImage); // a href
            $oImageTpl->set("s", "LINKDESCRIPTION", '');
            $oImageTpl->set("s", "SEE_IMAGE", $sSeeImage);
            $oImageTpl->set("s", "DOWN_IMAGE", $sDownImage);
            $oImageTpl->set("s", "", $sDownImage);

            #style links rechts
            $sStyle= "";
            $sStyle2 = '';
            
            if (($j % 2) == 0) {
                $sStyle= 'text-align:right';
                $sStyle2 = 'padding-left:65px';
            } else {
                $sStyle= 'text-align:left';
                $sStyle2 = '';
            }
            $j++;
            $oImageTpl->set("s", "style", $sStyle);
            $oImageTpl->set("s", "style_2", $sStyle2);
            

            $aRenderedImages[]= $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_image.html", true, false);

            $iImagesRendered++;

            if ($iImagesRendered == $iColumns) {
                $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages));
                $oGalleryTpl->next();
                $iImagesRendered= 0;
                $aRenderedImages= array ();
            }
        }

        if (count($aRenderedImages) < $iColumns && count($aRenderedImages) > 0) {
            $iEmptyCells= $iColumns -count($aRenderedImages);

            $oEmptyImageTpl->set("s", "WIDTH", $iWidth);
            $oEmptyImageTpl->set("s", "HEIGHT", $iHeight);

            $sEmptyCells= str_repeat($oEmptyImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_empty.html", true, false), $iEmptyCells);

            $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages) . $sEmptyCells);
            $oGalleryTpl->next();
        }

        //      Begin Navigation Bottom
        $aLinks= array ();

        if ($iCurrentPage == "")
            $iCurrentPage= 1;
        $sBack= $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&amp;start=%s", $idcatart, $iCurrentPage -1);
        $sNext= $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&amp;start=%s", $idcatart, $iCurrentPage +1);

        for ($i= 1; $i <= $iPages; $i++) {

            if ($i == $iCurrentPage) {
                $aAllLinks[$i]= $i;
            } else {
                $aAllLinks[$i]= $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&amp;start=%s", $idcatart, $i);
            }

        }

        $sHtml= '<a href="%s" title="%s"> %s </a>'; // Template

        if ($iPages == 1) { // if pages count is = 1
            $oCurrenTpl= new Template;

            $oCurrenTpl->set("s", "Begin", '');
            $oCurrenTpl->set("s", "Body", '');
            $oCurrenTpl->set("s", "End", '');
            $aLinks[]= $oPreviousTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);
        }

        if ($iCurrentPage == 1 && $iPages > 1) { // current page=1

            $oTpl1= new Template;

            $sNextButton= sprintf($sHtml, $sNext, mi18n("vor"), mi18n("&nbsp;vor&nbsp;") . '<img src="images/link_pfeil_klein.gif">');
            $oTpl1->set("s", "Begin", '');

            foreach ($aAllLinks as $key => $value) {
                #echo '<br> value: '.$value;
                if (strlen($value) > 7) { // longer as url
                    $sNumber= sprintf($sHtml, $value, $key, $key);
                } else {
                    $sNumber= $key;
                }

                $oTpl1->set('d', 'Body', $sNumber);
                $oTpl1->next();
                $sNumber= "";
            }

            $oTpl1->set("s", "End", $sNextButton);
            $aLinks[]= $oTpl1->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);
        }

        if ($iCurrentPage > 1 && ($iPages - $iCurrentPage) != 0) { // body see all
            $oPreviousTpl= new Template;

            $sBackButton= sprintf($sHtml, $sBack, mi18n("zur&uuml;ck"), "<img src='images/link_pfeil_klein_links.gif'/>" . mi18n("&nbsp;zur&uuml;ck&nbsp;"));
            $sNextButton= sprintf($sHtml, $sNext, mi18n("vor"), mi18n("&nbsp;vor&nbsp;") . '<img src="images/link_pfeil_klein.gif">');

            $oPreviousTpl->set("s", "Begin", $sBackButton);

            foreach ($aAllLinks as $key => $value) {
                #filter current page
                if (strlen($value) > 7) { // longer as url
                    $sNumber= sprintf($sHtml, $value, $key, $key);
                } else {
                    $sNumber= $key;
                }

                $oPreviousTpl->set('d', 'Body', $sNumber);
                $oPreviousTpl->next();

            }

            $oPreviousTpl->set("s", "End", $sNextButton);

            $aLinks[]= $oPreviousTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);
        } else
            if ($iPages - $iCurrentPage == 0) { // this is end
                $oNextTpl= new Template;
                $oNextTpl->reset();
                $sBackButton= sprintf($sHtml, $sBack, mi18n("zur&uuml;ck"), "<img src='images/link_pfeil_klein_links.gif'/>" . mi18n("&nbsp;zur&uuml;ck&nbsp;"));
                $oNextTpl->set("s", "End", '');

                foreach ($aAllLinks as $key => $value) {
                    #filter current page
                    if (strlen($value) > 7) { // longer as url
                        $sNumber= sprintf($sHtml, $value, $key, $key);
                    } else {
                        $sNumber= $key;
                    }

                    $oNextTpl->set('d', 'Body', $sNumber);
                    $oNextTpl->next();
                }

                $oNextTpl->set("s", "Begin", $sBackButton);
                $aLinks[]= $oNextTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_link.html", true, false);

            }

        $oGalleryTpl->set("s", "NAVIGATION", implode("", $aLinks));
        $oGalleryTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery.html", false, false);
        $oGalleryTpl->reset(); // Navigation end
        unset ($aAllLinks);
    }
} else { // See only one Image
    $sImageToDisplay= $cfgClient[$client]['path']['frontend'] . $_REQUEST['view'];
    $sScaledImage= cApiImgScale($sImageToDisplay, $iDetailWidth, 1000);

    $description= ig_getImageDescription($sImageToDisplay);

    $download_link= str_replace($cfgClient[$client]['path']['frontend'], $cfgClient[$client]['path']['htmlpath'], $sImageToDisplay);

    $download_size= ig_GetReadableFileSize($sImageToDisplay);

    $oImageTpl= new Template;
    $oImageTpl->set("s", "IMG", $sScaledImage);
    $oImageTpl->set("s", "BACKLINK", 'front_content.php?idcat=' . $idcat . '&amp;idart=' . $idart . '&amp;start=' . $_REQUEST['start']);
    $oImageTpl->set("s", "BACKCAPTION", mi18n("&nbsp;zur&uuml;ck"));
    $oImageTpl->set("s", "DESCRIPTION", $description);
    $oImageTpl->set("s", "DOWNLOAD_LINK", $download_link);
    $oImageTpl->set("s", "DOWNLOAD_SIZE", $download_size);
    $oImageTpl->set("s", "DOWNLOAD_CAPTION", mi18n("Bild herunterladen&nbsp;"));

    $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/gallery_detail.html", false, false);
}

function ig_getImageDescription($idupl) {

    global $cfg, $cfgClient, $db, $client, $lang;

    $cApiClient= new cApiClient($client);
    $language_separator= $cApiClient->getProperty('language', 'separator');
    if ($language_separator == "") {
        //Sanity, if module used in client without set client setting
        $language_separator= "§§§";
        $cApiClient->setProperty('language', 'separator', $language_separator);
    }
    if (is_numeric($idupl)) {
        //ID is a number 
        $query= "SELECT description FROM " . $cfg["tab"]["upl"] . " WHERE idupl = " . $idupl;
    } else {
        //ID is a string
        $path_parts= pathinfo($idupl);
        $upload= $cfgClient[$client]['upl']['frontendpath'];
        $len= strlen($upload);
        $pos= strpos($idupl, $upload);
        $dirname= substr($path_parts['dirname'], $pos + $len) . '/';
        $query= "SELECT description FROM " . $cfg["tab"]["upl"] . " WHERE (dirname = '" . $dirname . "') AND (filename='" . $path_parts['basename'] . "') AND (filetype='" . $path_parts['extension'] . "')";
    }
    $db->query($query);
    if ($db->next_record()) {
        return htmlspecialchars(urldecode($db->f("description")));
    } else {
        return '';
    }
}

function ig_GetReadableFileSize($path) {
    $filesize= filesize($path);
    $unit= "bytes";

    if ($filesize > 1024) {
        $filesize= ($filesize / 1024);
        $unit= "kB";
    }
    if ($filesize > 1024) {
        $filesize= ($filesize / 1024);
        $unit= "MB";
    }
    if ($filesize > 1024) {
        $filesize= ($filesize / 1024);
        $unit= "GB";
    }
    if ($filesize > 1024) {
        $filesize= ($filesize / 1024);
        $unit= "TB";
    }

    $filesize= round($filesize, 0);
    return $filesize . " " . $unit;
}
?>
dann sag ich schon mal ganz lieb danke für eure bemühungen...
glg, muratelier
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Beitrag von xmurrix »

Da ist beim Import irgendwas schiefgegangen, vermutlich liegt es an deiner Contenidoversion, das zur Info.

Zu deinem Problem:
Überall im Code, wurde das &-Zeichen gegen die HTML-Entität & ersetzt, darum kriegst auch den roten Punkt. In solchen Fällen ist es nicht schlecht, sich die errorlog.txt im Verzeichnis /contenido/logs/ anzusehen.

Ersetze einfach alle & gegen &, dann sollte es passen.

Gruß
xmurrix
muratelier
Beiträge: 19
Registriert: Mi 28. Mai 2008, 16:27
Kontaktdaten:

Beitrag von muratelier »

hat alles super funktioniert!!!

nochmal meinen herzlichsten dank für die tolle hilfe ...

:D :D :D :D :D :D :D :D :D :D
Gesperrt