Template: Bilder mit lightbox - Frage zur Bildbeschreibung

Gesperrt
Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Template: Bilder mit lightbox - Frage zur Bildbeschreibung

Beitrag von Jörn » Mo 24. Jan 2011, 23:06

Hallo,

ich möchte gerne das beim Template "Bilder mit lightbox" in der Vorschau als Bildbeschreibung der Medienname angezeigt wird. Wie stelle ich das an? Ich habe bei den Bildern immer einen Mediennamen hinterlegt, der wird aber nicht mit angezeigt, was mache ich falsch?

VG
Jörn

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von xmurrix » Mi 26. Jan 2011, 23:09

Hallo Jörn,

vermutlich kann keiner hier mit deiner Frage etwas anfangen. Das Template "Bilder mit lightbox" ist sehr wahrscheinlich kein Template aus dem Beispielmandanten, d. h. es basiert auf Module, die wir nicht erraten können.

Wenn dir geholfen werden soll, poste bitte die Modulbezeichnung/-version. Sollte das Modul hier im Forum vorhanden sein, die URL dazu angeben, falls nicht, die Moduleingabe/-Ausgabe posten (sofern der Code nicht allzu viel ist).

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Do 27. Jan 2011, 09:32

Hallo,

danke für Deine Antwort. Leider ist es so, das ich mich nur um die Inhalte kümmere. Ich habe keinen direkten Zugriff auf die Module oder andere Systemdateien. Ich poste hier mal den Link zu der betroffenen Seite, vielleicht könnt ihr aus der Erfahrung heraus sehen um welches Modul es sich handelt. Leider steht der ursprüngliche Ersteller der Seite nicht mehr zu unserer Unterstützung zur Verfügung.

VG
Jörn

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von idea-tec » Do 27. Jan 2011, 09:48

Jörn hat geschrieben:Leider ist es so, das ich mich nur um die Inhalte kümmere. Ich habe keinen direkten Zugriff auf die Module oder andere Systemdateien.
Öhm! <dummausderwäschegugg> Wer hat denn dann Zugriff auf die Datenbank, den Wevbspace, FTP-Zugang, Zugang ins Backend für evtl. Weiterentwicklungen, Service, Pflege, etc...?
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Do 27. Jan 2011, 09:54

:oops: hat der Kollege der das alles eingerichtet hat, der ist aber aus beruflichen Gründen nur noch sehr schwer erreichbar. Mal andersrum gefragt, Einrichtung und Pflege über das Backend ist also nicht möglich, nur per FTP, ja?

VG
Jörn

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von idea-tec » Do 27. Jan 2011, 10:09

Jörn hat geschrieben::oops: hat der Kollege der das alles eingerichtet hat, der ist aber aus beruflichen Gründen nur noch sehr schwer erreichbar. Mal andersrum gefragt, Einrichtung und Pflege über das Backend ist also nicht möglich, nur per FTP, ja?

VG
Jörn
Also, für Erweiterungen an Modulen, benötigt man die Rechte dazu. In der Regel hat eine Person die IMMER erreichbar ist, einen entsprechenden Administrationszugang.
Man muss hier trennen zwischen Redaktion und Administration (ink. Programmierung). Für letzteres ist in der Regel ein uneingeschränkter Zugriff auf Backend, Datenbank und Webspace zwingend erforderlich.

Pers. Meinung: Schwer erreichbar ist kein Argument, auch bei einem Verein nicht, auch nicht wenn es um ein Ehrenamt geht!
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Di 1. Feb 2011, 20:48

Hallo,

in der Zwischenzeit habe ich administrative Rechte für die Seite bekommen. Um das Problem noch einmal kurz zu beschreiben:

Ich habe einen vorhandenen Artikel aus 2009 genommen, habe ihn kopiert und dann nur den Pfad zu den Bildern in einem anderen Verzeichnis angepaßt. Danach noch den Content und die Beschreibung ein wenig angepaßt und als Artikel 2010 gespeichert. Alles ohne Admin Rechte. Kann es trotzdem sein das die Darstellung der Bildunterschrift in der Gallerie unterschiedlich wird?

Hier zum vergleichen der Artikel aus 2009 und hier der Artikel aus 2010

Hier das was als Info zum Modul steht:
JavaScript basierende Bildergalerie mit Titel und Beschreibung für Bilder. Thumbnails werden von System automatisch generiert. Als Basis hat mir die Bildergalerie von Timo A. Hummel aus der Standard Contenido Version 4.6.x und und Lightbox JS gedient.

Version : 1.2
Autor : Phillip Baumgärtner (http://www.ittool.de)
Erstellt am : 19.02.2007
Last Update : 09.03.2007

Version : 1.2.1
Autor : Christian Müller / GaMbIt (http://www.impigra.de)
Erstellt am : 15.03.2008

Changelog
1.1: - Beschreibungstext wurde gefixt. Danke Dalamar.
- Vorschaubilder haben nun eine relativen Pfad.
1.2: - Fehler bei ausgabe des Medientitels und Bildbeschreibung mit dem Code von cbrennec beseitigt.
1.2.1: - Zusätzlich zur Beschneidungsfunktion auch das Backend leicht angepasst.
Ich möchte das auf der 2010 Seite ebenfalls der "Medienname" als fette Bildunterschrift in der Gallerieansicht erscheint. Es wäre schön wenn mir jemand weitere Tips geben könnte. Danke schon mal im voraus

VG
Jörn

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Mi 2. Feb 2011, 20:21

ich komme einfach nicht dahinter wo das Problem ist. Bei den von mir angelegten Gallerien mommt beim "medianame" einfach ein Leerzeichen

Code: Alles auswählen

<div class="medianame"><font color="#00007F"><b>&nbsp;</b></font></div>
bei den Gallerien die nicht von mir angelegt wurden, mommt der Medienname richtig:

Code: Alles auswählen

<div class="medianame"><font color="#00007F"><b>Guangdong Inky</b></font></div>
Der Medienname ist natürlich bei den neuen Gallerien eingetragen. Sollte es nicht so sein, das wenn das Modul einmal funktioniert, das es in einem anderen Artikel, der auf die gleiche Art und Weise angelegt ist, dann auch funktioniert :? Ich bin im Moment etwas ratlos

VG
Jörn

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Mi 2. Feb 2011, 21:28

Das Problem scheint nicht beim Artikel, der Gallerie oder dem Template zu liegen. Ich habe eine von mir erstellte Gallerie Seite genommen, dort habe ich den Pfad zu einem Ordner geändert, bei dem die Bildunterschrift funktioniert hat. Nach dem speichern kommt der Medienname auf der neuen Seite korrekt als Bildunterschrift.

Umgekehrt, also alter Artikel mit neuem Bildverzeichnis funktioniert nicht, da kommen nur die drei Punkte. Was muß man denn bei der Erstellung eines neuen Bildverzeichnisses beachten, bzw. was kann man da falsch machen? Meine Bilder habe ich mit contenido hochgeladen. Macht das einen Unterschied zu upload mit FTP?

VG
Jörn

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Do 3. Feb 2011, 19:12

ich habe jetzt in der Ausgabe des Modules folgend Qodeschnipsel gefunden:

Code: Alles auswählen

        if( $media_name != "" && $link_description != "") {
            $link_description = $media_name.': '.$link_description;
        } elseif( $media_name != "" ) {
            $link_description = $link_description;
        } elseif( $description != "" ) {
            $link_description = $link_description;
            $media_name = "&nbsp;"; 
        }
könnte das mein Problem verursachen? Wie müßte ich den code anpassen, damit der Medienname ausgegeben wird? Was ist eigentlich $link_description :?

VG
Jörn

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von idea-tec » Do 3. Feb 2011, 19:29

so:

Code: Alles auswählen

            if( $media_name != "" && $link_description != "") {
                $link_description = $media_name.': '.$link_description;
            } elseif( $media_name != "" ) {
                $link_description = $media_name;
            } elseif( $link_description != "" ) {
                $link_description = $link_description;
                $media_name = "&nbsp;";
            }
oder direkt so

Code: Alles auswählen

$link_description = $media_name;
genau weiß ich es aber nicht, weil ich nicht sehe wo und wie die Variablen befüllt werden.
Im ersten Code scheint im elseif für media_name auch etwas nicht gepasst zu haben.
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » Do 3. Feb 2011, 19:47

Hallo Karsten,

ich habe beide Varianten ausprobiert, aber hat beides nichts verändert. Die komplette Ausgabe des Moduls sieht so aus:

Code: Alles auswählen

<?php

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

/* Gallery variables */
$bRecursive = false;

/* Input variables customized */
$iWidth_crop = "CMS_VALUE[7]";
$iHeight_crop = "CMS_VALUE[8]";
if ($iWidth_crop == 0) {
  $iWidth_crop = '';
}
if ($iHeight_crop == 0) {
  $iHeight_crop = '';
}
/* Cropping ? */
$iCrop = "CMS_VALUE[9]";

/* Input variables */
$iWidth = "CMS_VALUE[0]";
$iHeight = "CMS_VALUE[1]";
if ($iWidth == 0) {
  $iWidth = 300;
}
if ($iHeight == 0) {
  $iHeight = 300;
}

$iColumns = "CMS_VALUE[2]";
if ($iColumns == 0) {
  $iColumns = 2;
}

$iRows = "CMS_VALUE[3]";
if ($iRows == 0) {
  $iRows = 2;
}

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

$sort = "CMS_VALUE[5]";
if( $sort == "asc" ) {
    $sort = SORT_ASC;
} else {
    $sort = SORT_DESC;
}

$words = "CMS_VALUE[6]";

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

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

$iImagesPerPage = $iRows * $iColumns;

/* Read all gallery files */
$aGalleryFiles = scanDirectory($sPath, $bRecursive);
array_multisort($aGalleryFiles, $sort, SORT_STRING);

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;
    
    foreach ($aImagesToDisplay as $sImageToDisplay) {
        /* Do Scaling */

/* ### Customized - changes by GaMbIt ### */
/* Image scale */
$sScaledImage_cr = cApiImgScale($sImageToDisplay, $iWidth, $iHeight, false, false);
/* path */
$sScaledImage_cr = str_replace($cfgClient[$client]["path"]["htmlpath"],"",$sScaledImage_cr);
/* Image crop */
$sScaledImage = cApiImgScale($sScaledImage_cr, $iWidth_crop, $iHeight_crop, true, true);  
/* path */
$sScaledImage = str_replace($cfgClient[$client]["path"]["htmlpath"],"",$sScaledImage);
/* ### End custom changes by GaMbIt ### */

        
        $link = str_replace($cfgClient[$client]['path']['frontend'],$cfgClient['htmlpath'],$sImageToDisplay);
        
        $media_name = ig_getMedienName($sImageToDisplay);
        
        $link_description = ig_getImageDescription($sImageToDisplay);
        
        if ($words != "" || $words != 0) {
            # Cutting text but preserving words and entities
            if(strlen($link_description) > $words){
               $description = htmlentities(capiStrTrimAfterWord($link_description, $words)."...");
            } else {
               $description = "";
            }
        }
        
        if( $media_name != "" && $link_description != "") {
            $link_description = $media_name.': '.$link_description;
        } elseif( $media_name != "" ) {
            $link_description = $link_description;
        } elseif( $description != "" ) {
            $link_description = $link_description;
            $media_name = "&nbsp;"; 
        }
        
        $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", "MEDIANAME", $media_name);
        $oImageTpl->set("s", "DESCRIPTION", $description);
        $oImageTpl->set("s", "LINKDESCRIPTION", $link_description);
        
        $aRenderedImages[] = $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-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/lightbox-gallery_empty.html", true, false),$iEmptyCells);
        
        $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages) . $sEmptyCells);
        $oGalleryTpl->next();
    }
    
    $aLinks = array();
    
    if ($iCurrentPage > 1) {
        $oPreviousTpl = new Template;
        $oPreviousTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage - 1));
        $oPreviousTpl->set("s", "TITLE", mi18n("Zurück"));
        $aLinks[] = $oPreviousTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_link.html", true, false);
    }
    
    if (($iCurrentPage < $iPages) && $iCurrentPage) {
        $oNextTpl = new Template;
        $oNextTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage + 1));
        $oNextTpl->set("s", "TITLE", mi18n("Vor"));
        $aLinks[] = $oNextTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_link.html", true, false);
    }
    
    $oGalleryTpl->set("s", "NAVIGATION", implode("", $aLinks));
    
    $oGalleryTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery.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_getMedienName($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).'/';
        $danis = $dirname.$path_parts['basename'];
        $query = "SELECT value FROM ".$cfg["tab"]["properties"]." WHERE itemid = '".$dirname.$path_parts['basename']."' AND name = 'medianame'";
    }
    $db->query($query);
    if( $db->next_record() ) {
        return htmlspecialchars(urldecode($db->f("value")));
    } else {
        return '';
    }
}
?>
VG
Jörn

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von idea-tec » Do 3. Feb 2011, 20:30

Das kann irgendwie nicht funktionieren...

In Zeile 218 beginnt die Funktion "ig_getmedienName"
in dieser wird in Zeile 231 die "description" ausgelesen

Code: Alles auswählen

$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
und in Zeile 240 der Wert value aus den properties

Code: Alles auswählen

$query = "SELECT value FROM ".$cfg["tab"]["properties"]." WHERE itemid = '".$dirname.$path_parts['basename']."' AND name = 'medianame'";
Tu mal bitte folgendes:
a.) Zugangsdaten per PN
oder
b.) In Zeile 112 folgendes eingeben und eine der Ausgaben oder die ganze Ausgabe hier oder per PN posten/zusenden. Danke

Code: Alles auswählen

echo 'Medienname: |'.$media_name.'| - sImageToDisplay: '.$sImageToDisplay.'<br />';
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jörn
Beiträge: 20
Registriert: Sa 5. Sep 2009, 10:16
Kontaktdaten:

Re: Template: Bilder mit lightbox - Frage zur Bildbeschreibu

Beitrag von Jörn » So 6. Feb 2011, 20:14

wow, es funktioniert tadellos :D , sowohl bei den alten Gallerien als auch bei der einen die ich neu anglegt habe. Vielen Dank Karsten, das Du Deinen Sonntag geopfert hast um das zum laufen zu bringen.

VG
Jörn

Gesperrt