Lightbox-Bildergalerie
Lightbox => Bilder nicht gleichmässig verteilt
Hallo,
ich habe Lightbox 1.2 installiert und es hat auf Anhieb funktioniert.
Jetzt habe ich das Problem dass bei nicht ganz ausgefüllten Seiten
(15 Bilder bei einer 4x4 Matrix) alles sehr unschön ausgerichtet wird.
Wo ist das zu korrigieren.
Vielen Dank schon einmal !
Ralf
ich habe Lightbox 1.2 installiert und es hat auf Anhieb funktioniert.
Jetzt habe ich das Problem dass bei nicht ganz ausgefüllten Seiten
(15 Bilder bei einer 4x4 Matrix) alles sehr unschön ausgerichtet wird.
Wo ist das zu korrigieren.
Vielen Dank schon einmal !
Ralf
-
- Beiträge: 60
- Registriert: Do 4. Jan 2007, 17:10
- Kontaktdaten:
MehrMandantenFähigkeit
Hallo,
erstmal vorweg: Super gute Gallery, macht auf jeden Fall etwas her und ist leicht zu konfigurieren. Und vorallem auch sehr individuell zu gestalten.
Nun zum Thema: mehrere Mandanten mit Lightbox-Gallery
Problem:
Als ich einem zweiten Mandanten das Modul einbinden wollte, ist mir jedoch ein kleinere "Fehler" aufgefallen:
Bei dem Modul werden im Backend bei der Konfiguration nicht die richtigen Pfade aus dem Upload-Ordner des jeweiligen Mandanten angezeigt, sondern von mehreren bzw. einem anderen! Diese Pfade kann er selbstverständlich im Frontend nicht ausführen, da diese bei dem Mandanten evtl. garnicht vorhanden sind. => Fehlermeldung im Frontend
Problemlösung:
Darum sollte man das Modul (um es bei mehreren Mandanten innerhalb eines Contenidos verwenden zu können) wie folgt ändern:
In dem "Input"-Bereich des Moduls, Zeile 11:
um ergänzen, dies bewirkt das nur die Verzeichnisse des jeweils aktiven Mandanten angezeigt werden.
Das ganze sieht dann also komplett so aus:
Vielleicht hilft es ja dem ein oder anderen hier.
Viel Spaß und weiter so ....
Gruß
dlm-cm[/i]
erstmal vorweg: Super gute Gallery, macht auf jeden Fall etwas her und ist leicht zu konfigurieren. Und vorallem auch sehr individuell zu gestalten.
Nun zum Thema: mehrere Mandanten mit Lightbox-Gallery
Problem:
Als ich einem zweiten Mandanten das Modul einbinden wollte, ist mir jedoch ein kleinere "Fehler" aufgefallen:
Bei dem Modul werden im Backend bei der Konfiguration nicht die richtigen Pfade aus dem Upload-Ordner des jeweiligen Mandanten angezeigt, sondern von mehreren bzw. einem anderen! Diese Pfade kann er selbstverständlich im Frontend nicht ausführen, da diese bei dem Mandanten evtl. garnicht vorhanden sind. => Fehlermeldung im Frontend
Problemlösung:
Darum sollte man das Modul (um es bei mehreren Mandanten innerhalb eines Contenidos verwenden zu können) wie folgt ändern:
In dem "Input"-Bereich des Moduls, Zeile 11:
Code: Alles auswählen
$sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." ORDER BY dirname";
Code: Alles auswählen
WHERE idclient = ".$client."
Das ganze sieht dann also komplett so aus:
Code: Alles auswählen
$sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." WHERE idclient = ".$client." ORDER BY dirname";
Vielleicht hilft es ja dem ein oder anderen hier.
Viel Spaß und weiter so ....
Gruß
dlm-cm[/i]
HY
hab jetzt doch endlich wieder hinbekommen die Lightbox zum Lauf zu bringen. Is echt Top jetzt hab ich nur noch das Problem das die .gif datein nich angezeigt werden Woran kann das liegen !?
Die gif datein sind im upload/lightgallery drin so wie es doch eigentlich auch sein muss oder?
hab die css hier auch nochmal für euch falls ihr da was seht
Mir is eben noch was aufgefallen wenn man während des Draufguckens auf das Bild klickt blättert der nich nach vorne sondern nach hinten weiter
link zur Gallery: http://bbpolo.bb.ohost.de/cms/front_con ... ?idart=105
MFG Benny
hab jetzt doch endlich wieder hinbekommen die Lightbox zum Lauf zu bringen. Is echt Top jetzt hab ich nur noch das Problem das die .gif datein nich angezeigt werden Woran kann das liegen !?
Die gif datein sind im upload/lightgallery drin so wie es doch eigentlich auch sein muss oder?
hab die css hier auch nochmal für euch falls ihr da was seht
Mir is eben noch was aufgefallen wenn man während des Draufguckens auf das Bild klickt blättert der nich nach vorne sondern nach hinten weiter
link zur Gallery: http://bbpolo.bb.ohost.de/cms/front_con ... ?idart=105
Code: Alles auswählen
/* Lightbox */
#lightbox {
position: absolute;
top: 40px;
left: 0;
width: 100%;
/*z-index: 100;*/
z-index: 990;
text-align: center;
line-height: 0;
}
#lightbox a img { border: none; }
#outerImageContainer {
position: relative;
background-color: #fff;
width: 250px;
height: 250px;
margin: 0 auto;
}
#imageContainer {
padding: 10px;
}
#loading {
position: absolute;
top: 40%;
left: 0%;
height: 25%;
width: 100%;
text-align: center;
line-height: 0;
}
#hoverNav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
/*z-index: 10;*/
z-index: 970;
}
#imageContainer>#hoverNav { left: 0;}
#hoverNav a { outline: none;}
#prevLink, #nextLink {
width: 49%;
height: 100%;
background: transparent url (upload/lightgallery/blank.gif) no-repeat; /* Trick IE into showing hover */
display: block;
}
#prevLink { left: 0; float: left;}
#nextLink { right: 0; float: right;}
#prevLink:hover, #prevLink:visited:hover { background: url (upload/lightgallery/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url (upload/lightgallery/nextlabel.gif) right 15% no-repeat; }
#imageDataContainer {
font: 10px Verdana, Helvetica, sans-serif;
background-color: #fff;
margin: 0 auto;
line-height: 1.4em;
}
#imageData {
padding:0 10px;
}
#imageData #imageDetails{ width: 70%; float: left; text-align: left; }
#imageData #caption{ font-weight: bold; }
#imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em; }
#imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; }
#overlay {
position: absolute;
top: 0;
left: 0;
/*z-index: 90;*/
z-index: 980;
width: 100%;
height: 500px;
background-color: #000;
filter:alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
* html>body .clearfix {
display: inline-block;
width: 100%;
}
* html .clearfix {
/* Hides from IE-mac \*/
height: 1%;
/* End hide from IE-mac */
}
/* << */
@BIG-BEN
Allerdings ist deine Pfadangabe nicht ganz korrekt, probiere mal folgendes aus:
Änderungen sind lediglich die "../" vor dem "upload" bei den url-Angaben
Ich hoffe damit ist dein Problem behoben.
MfG
dlm-cm
Laut der Standardeinstellung, werden diese *.gif aus dem Verzeichnis "images/" geladen. Dies kannst du aber ändern, wie du es auch schon getan hast.Die gif datein sind im upload/lightgallery drin so wie es doch eigentlich auch sein muss oder?
Allerdings ist deine Pfadangabe nicht ganz korrekt, probiere mal folgendes aus:
Code: Alles auswählen
#prevLink, #nextLink {
width: 49%;
height: 100%;
background: transparent url (../upload/lightgallery/blank.gif) no-repeat; /* Trick IE into showing hover */
display: block;
}
#prevLink { left: 0; float: left;}
#nextLink { right: 0; float: right;}
#prevLink:hover, #prevLink:visited:hover { background: url (../upload/lightgallery/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url (../upload/lightgallery/nextlabel.gif) right 15% no-repeat; }
Ich hoffe damit ist dein Problem behoben.
MfG
dlm-cm
Hi,
also ich hab mir dein Prob jetzt mal genau auf deiner Seite angeschaut!
Und zwar habe ich mal geguckt wo der sich zum Beispiel das Gif für den CLOSE Button herholen will, dies will er aus dem Standardverzeichnis:
"http://bbpolo.bb.ohost.de/cms/images/closelabel.gif", nur du hast deine Gifs ja im Ordner upload/images/*.gif kann also nicht klappen.
Diese Daten müssen in der Skriptdatei "lightbox.js" geändert werden:
Hier musst du auch den richtigen Pfad angeben (upload/lightgallery/)
Dann sollte schon mal wieder der Close-Button und das Loading-Gif vorhanden sein.
Zu deiner CSS mit der überarbeiteten URL klappt es bei mir einwandfrei, vllt hast du den Ordner doch anders benannt ? (evtl. Groß- und Kleinschreibung beachten!)
Andere Möglichkeit wäre sonst alles so zu belassen und die Bilder in das Standardverzeichnis (../images/ *.gif ) zu packen und deine CSS wieder anzupassen. Also alle URLs mit folgendem Code ausstatten: nur jeweils die richtige Gif Bezeichnung halt.
Hoffe es klappt dann diesmal
MfG
dlm-cm
also ich hab mir dein Prob jetzt mal genau auf deiner Seite angeschaut!
Und zwar habe ich mal geguckt wo der sich zum Beispiel das Gif für den CLOSE Button herholen will, dies will er aus dem Standardverzeichnis:
"http://bbpolo.bb.ohost.de/cms/images/closelabel.gif", nur du hast deine Gifs ja im Ordner upload/images/*.gif kann also nicht klappen.
Diese Daten müssen in der Skriptdatei "lightbox.js" geändert werden:
Code: Alles auswählen
// Configuration
//
var fileLoadingImage = "images/loading.gif";
var fileBottomNavCloseImage = "images/closelabel.gif";
Dann sollte schon mal wieder der Close-Button und das Loading-Gif vorhanden sein.
Zu deiner CSS mit der überarbeiteten URL klappt es bei mir einwandfrei, vllt hast du den Ordner doch anders benannt ? (evtl. Groß- und Kleinschreibung beachten!)
Andere Möglichkeit wäre sonst alles so zu belassen und die Bilder in das Standardverzeichnis (../images/ *.gif ) zu packen und deine CSS wieder anzupassen. Also alle URLs mit folgendem Code ausstatten:
Code: Alles auswählen
../images/prevlabel.gif
Hoffe es klappt dann diesmal
MfG
dlm-cm
Hy
also erstmal DANKE für deine Hilfe aber es hat leider noch nix geholfen
Hab die gifs alle in images rein gemacht und die css wieder verändert
hat nix gebracht.
Dann hab ich die .js datei mal verändert:
hat aber auch nix gebracht (der ordner lightgallery mit inhalt is noch da )
Muss ich hier auch die links ändern in der .js?
Eigentlich nich oder is ja nur kommentar.
Was kann ich noch machen
MFG Benny
also erstmal DANKE für deine Hilfe aber es hat leider noch nix geholfen
Hab die gifs alle in images rein gemacht und die css wieder verändert
Code: Alles auswählen
{ background: url (../upload/images/prevlabel.gif) left 15% no-repeat; }
hat nix gebracht.
Dann hab ich die .js datei mal verändert:
Code: Alles auswählen
// Configuration
//
var fileLoadingImage = "../upload/lightgallery/loading.gif";
var fileBottomNavCloseImage = "../upload/lightgallery/closelabel.gif";
Muss ich hier auch die links ändern in der .js?
Code: Alles auswählen
// The rest of this code inserts html at the bottom of the page that looks similar to this:
//
// <div id="overlay"></div>
// <div id="lightbox">
// <div id="outerImageContainer">
// <div id="imageContainer">
// <img id="lightboxImage">
// <div style="" id="hoverNav">
// <a href="#" id="prevLink"></a>
// <a href="#" id="nextLink"></a>
// </div>
// <div id="loading">
// <a href="#" id="loadingLink">
// <img src="images/loading.gif">
// </a>
// </div>
// </div>
// </div>
// <div id="imageDataContainer">
// <div id="imageData">
// <div id="imageDetails">
// <span id="caption"></span>
// <span id="numberDisplay"></span>
// </div>
// <div id="bottomNav">
// <a href="#" id="bottomNavClose">
// <img src="images/close.gif">
// </a>
// </div>
// </div>
// </div>
// </div>
Was kann ich noch machen
MFG Benny
So war das auch nicht gemeint, du musst via FTP alle gif-dateien in das Verzeichnis "images" packen, dieses befindet sich NICHT im "upload" verzeichnis, sondern auf der gleichen Ebende wie das upload-Verzeichnis.Hab die gifs alle in images rein gemacht und die css wieder verändert
Code:Code: Alles auswählen
{ background: url (../upload/images/prevlabel.gif) left 15% no-repeat; }
hat nix gebracht.
Soll heißen der richtige Pfad wäre gewesen:
Code: Alles auswählen
{ background: url (../images/prevlabel.gif) left 15% no-repeat; }
Allerdings hast du noch eine Fehler in der .js gemacht, hier wird das "../" nicht benötigt.
Die "Links" in der .js musst du nicht anpassen, diese sind wirklich nur Kommentar, und werden aus dem nachfolgenden Quelltext gebildet und der holt sich die Bilderpfade aus der CSS.
Alle Pfadangaben sind so:
in der CSS:
"../upload/lightgallery/*.gif"
in der JS:
"upload/lightgallery/*.gif"
aber in Ordnung und der Fehler muss woanders liegen ...
In welchen Verzeichnis liegt deine Lighbox.js? Hast du Sie in das Verzeichnis: "js" geladen ?
Andere Frage ist, ist die CSS mit eingebunden in das Layout ?
hallo leute,
ich kapiere den genauen aufbau der eigentlichen lightbox noch nicht. das grundgerüst macht das template, klar. dann übernimmt die css einen teil und den rest die js-datei.
mein problem: ich habe das bild: closelabel.gif (66x22 px) ersetzt durch ein neues bild (88x22 px), da ich das wort 'close' durch das deutsche 'schließen' ersetzt habe. jetzt ragt das bild aber über den rechten lightboxrand hinaus. wo kann ich das neu konfigurieren?
weiterhin will ich auch dieses: 1 images of X durch eine deutsche meldung ersetzen und die schriftart ändern. schriftart wahrscheinlich wieder über css, aber wo steht dieses 'x images of y'?
gruss, V.
ich kapiere den genauen aufbau der eigentlichen lightbox noch nicht. das grundgerüst macht das template, klar. dann übernimmt die css einen teil und den rest die js-datei.
mein problem: ich habe das bild: closelabel.gif (66x22 px) ersetzt durch ein neues bild (88x22 px), da ich das wort 'close' durch das deutsche 'schließen' ersetzt habe. jetzt ragt das bild aber über den rechten lightboxrand hinaus. wo kann ich das neu konfigurieren?
weiterhin will ich auch dieses: 1 images of X durch eine deutsche meldung ersetzen und die schriftart ändern. schriftart wahrscheinlich wieder über css, aber wo steht dieses 'x images of y'?
gruss, V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.
Hallo@all,
Kann mir bitte jemand verraten was ich im Modulcode ändern muss damit die Bildbeschreibung nicht abgeschnitten wird?
Ich möchte gern die komplette Bildbeschreibung auf der Übersichtsseite haben. Erlaube ich mehr Zeichen darzustellen als vorhanden, zeigt er gar keine Beschreibung mehr an..
Thanx
Kann mir bitte jemand verraten was ich im Modulcode ändern muss damit die Bildbeschreibung nicht abgeschnitten wird?
Ich möchte gern die komplette Bildbeschreibung auf der Übersichtsseite haben. Erlaube ich mehr Zeichen darzustellen als vorhanden, zeigt er gar keine Beschreibung mehr an..
Thanx
cu
Sundriver
Sundriver
-
- Beiträge: 23
- Registriert: Di 16. Okt 2007, 13:43
- Kontaktdaten:
@ tommykoeln,
Hat sonst jemand einen Tipp?
Viele Grüße
Carsten
Konntest Du das Problem lösen? Ich versuche mich auch gerade daran mit dem gleichen Ergebnis.tommykoeln hat geschrieben: Nun möchte ich auf einer Seite mehrere Bildergalerien einbinden, das heißt auf einer Seite zum Beispiel 4 Lighbox-Gallery Module, die jeweils auf vier verschiedene Verzeichnisse zugreifen.
Leider taucht dabei ein Problem auf, das wie folgt lautet:
Code: Alles auswählen
Fatal error: Cannot redeclare ig_getimagedescription() (previously declared in /var/www/htdocs/www.xxx.xxxxx.de/xxxxx/cms/front_content.php(884) : eval()'d code:604) in /var/www/htdocs/www.xxxxx.de/xxxxx/cms/front_content.php(884) : eval()'d code on line 865
Hat sonst jemand einen Tipp?
Viele Grüße
Carsten
Lightbox Bilderausrichtung !
Hallo Leute,
habe mir die Lightbox installiert und Sie funktioniert auch wunderbar.
Hierfür schon mal vielen Dank für dieses super Modul.
Nun habe ich noch eine kleinigkeit. Und zwar möchte ich die Thumbnails
so ausrichten lassen das alle genau die gleiche Dimension haben.
So wie auf der Seite der Modulentwickler.
Kann mir dabei jemand behilflich sein.
Danke.
Gruss
habe mir die Lightbox installiert und Sie funktioniert auch wunderbar.
Hierfür schon mal vielen Dank für dieses super Modul.
Nun habe ich noch eine kleinigkeit. Und zwar möchte ich die Thumbnails
so ausrichten lassen das alle genau die gleiche Dimension haben.
So wie auf der Seite der Modulentwickler.
Kann mir dabei jemand behilflich sein.
Danke.
Gruss
Mei Coobi...
was hast Du für ein Glück
Ich habe die Lightbox Gallery ein bischen angepasst da in der "normalen" Version die Thumbnails nur skaliert werden und keine Möglichkeit besteht die skalierten auch noch zu beschneiden.
In meiner Anpassung hab ich die Skalierungfunktion belassen und zusätzlich eine Beschneidungsfunktion eingefügt die auch über das Backend konfigurierbar ist.
Die Bilder können jetzt nach der skalierung auf genau die Größe zugeschnitten werden damit alle Thumbnails die selbe Größe haben, völlig egal ob das Seitenverhältnis unterschiedlich ist.
Man sollte nur darauf achten dass die Skalierung nicht kleiner skaliert als die Beschneidung das Bild beschneiden will...
Input:
Output:
Ich schick dem Poster von diesem Modul mal die exportierte XML weil da auch noch die Beschreibungen in der Übersetzung enthalten ist.
was hast Du für ein Glück
Ich habe die Lightbox Gallery ein bischen angepasst da in der "normalen" Version die Thumbnails nur skaliert werden und keine Möglichkeit besteht die skalierten auch noch zu beschneiden.
In meiner Anpassung hab ich die Skalierungfunktion belassen und zusätzlich eine Beschneidungsfunktion eingefügt die auch über das Backend konfigurierbar ist.
Die Bilder können jetzt nach der skalierung auf genau die Größe zugeschnitten werden damit alle Thumbnails die selbe Größe haben, völlig egal ob das Seitenverhältnis unterschiedlich ist.
Man sollte nur darauf achten dass die Skalierung nicht kleiner skaliert als die Beschneidung das Bild beschneiden will...
Input:
Code: Alles auswählen
?>
<table>
<tr>
<td><?php echo mi18n("Spalten");?> x <?php echo mi18n("Zeilen");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[2]"; ?>" value="<?php echo "CMS_VALUE[2]"; ?>" style="width:40px;"> x <input type="text" name="<?php echo "CMS_VAR[3]"; ?>" value="<?php echo "CMS_VALUE[3]"; ?>" style="width:40px;"></td>
<td></td>
</tr><tr>
<td valign="top"><b><?php echo mi18n("Skalierung");?></b><br /><?php echo mi18n("Breite").' x '.mi18n("Höhe"); ?></td>
<td valign="top"><input type="text" name="<?php echo "CMS_VAR[0]"; ?>" value="<?php echo "CMS_VALUE[0]"; ?>" style="width:40px;"> x <input type="text" name="<?php echo "CMS_VAR[1]"; ?>" value="<?php echo "CMS_VALUE[1]"; ?>" style="width:40px;"></td>
<td valign="top"><div style="border:1px solid #999999; background-color:#EDDBEB; padding:3px;"><?php echo mi18n("Beschreibung_scale");?></div></td>
</tr>
<!-- Skalierung -->
<tr>
<td valign="top"><b><?php echo mi18n("Beschneidung");?></b><br /><?php echo mi18n("Breite").' x '.mi18n("Höhe"); ?></td>
<td valign="top"><input type="text" name="<?php echo "CMS_VAR[7]"; ?>" value="<?php echo "CMS_VALUE[7]"; ?>" style="width:40px;"> x <input type="text" name="<?php echo "CMS_VAR[8]"; ?>" value="<?php echo "CMS_VALUE[8]"; ?>" style="width:40px;"></td>
<td valign="top"><div style="border:1px solid #999999; background-color:#EDDBEB; padding:3px;"><?php echo mi18n("Beschreibung_crop");?></div></td>
</tr>
<!-- Ende Skalierung -->
<?php
$sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." ORDER BY dirname";
$db->query($sql);
echo '<tr><td>'.mi18n("Verzeichnis auswählen").'</td><td colspan="2">
<select name="CMS_VAR[4]" size="1" style="width: 320px">
<option value="">'.mi18n("Nichts ausgewählt").'</option>';
while ($db->next_record()) {
if ( stristr($db->f("dirname"),'CVS/') === FALSE ) {
if ($db->f("dirname")=="CMS_VALUE[4]") {
echo '<option value="'.$db->f("dirname").'" selected="selected">'.$db->f("dirname").'</option>';
} else {
echo '<option value="'.$db->f("dirname").'">'.$db->f("dirname").'</option>';
}
}
}
echo '</select></td></tr>';?>
<?php
$sort = "";
if("CMS_VALUE[5]" == "asc" || "CMS_VALUE[5]" == "") {
$asc = " checked";
} else {
$desc = " checked";
}
?>
<tr>
<td><?php echo mi18n("Sortierrichtung");?></td>
<td colspan="2">
<input type="radio" name="CMS_VAR[5]" value="asc"<?php echo $asc; ?>> <?php echo mi18n("Aufsteigend"); ?>
<input type="radio" name="CMS_VAR[5]" value="desc"<?php echo $desc; ?>> <?php echo mi18n("Absteigend"); ?>
</td>
</tr><tr>
<td><?php echo mi18n("Zeichenanzahl");?></td>
<td colspan="2"><input type="text" name="<?php echo "CMS_VAR[6]"; ?>" value="<?php echo "CMS_VALUE[6]"; ?>" style="width:40px;"></td>
</tr>
</table>
<?php
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 = " ";
}
$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 '';
}
}
?>