PHP-Funktion um Bilder aus einer 01Gallery V2-Bildergalerie an anderer Stelle auszugeben http://www.01-scripts.de
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> | |
<?PHP | |
//Beispiel-Datei zur Nutzung von echo_galpics.php | |
include_once("echo_galpics.php"); | |
/* Bilder ausgeben: | |
Binden Sie auf der PHP-Seite, auf der Sie Bilder aus Ihrer Galerie ausgeben | |
möchten diese Datei EINMALIG per PHP folgendermaßen ein: | |
<?PHP include_once("ihr-pfad/echo_galpics.php"); ?> | |
Anschließend können Sie in dieser PHP-Datei mit folgendem Befehl die Bilder ausgeben: | |
<?PHP | |
echo echo_pics($galid,$anzahl,$order,$zielurl,$echo_title=true,$modul="01gallery",$add_param2url=true,$cssclass=""); | |
?> | |
Für die Parameter können Sie folgendes einsetzen: | |
$galid ID der Galerie, aus der die Bilder ausgegeben werden sollen. (Zahl ohne Anführungszeichen; 0: Alle Galerien (außer Galerien, die mit einem Passwort geschützt oder versteckt sind.) werden berücksichtigt) | |
$anzahl Anzahl an Bildern, die ausgegeben werden sollen (Zahl ohne Anführungszeichen) | |
$order Sortierreihenfolge Folgende Werte sind möglich (Text-String mit Anführungszeichen): | |
"rand" // Zufällige Reihenfolge | |
"new" // Neuste Bilder zuerst | |
"old" // Älteste Bilder zuerst | |
"order_up" // Angegebene Reihenfolge aufsteigend | |
"order_down" // Angegebene Reihenfolge absteigend | |
$zielurl Ziel-URL Ihrer Galerie, auf die verlinkt werden soll (Text-String mit Anführungszeichen) | |
$echo_title true/false // Bild-Titel mit ausgeben ? (True/False ohne Anführungszeichen) | |
*optionale Parameter: | |
$modul Standardmäßig mit "01gallery" vorbelegt. Sollte Ihr Modul anders heißen, bitte umbennen! | |
$add_param2url true/false // Verlinkt standardmäßig automatisch zu der Galerie, aus der das Bild stammt | |
$cssclass Text-String für ein CSS-Präfix, um verschiedene CSS-Klassen bei der Ausgabe zu erhalten (Text-String mit Anführungszeichen) | |
Ein Aufruf kann dann z.B. so aussehen: | |
echo echo_pics(1,5,"rand","http://www.01-scripts.de",true); | |
Es können nach dem ersten Include-Befehl beliebig oft (auch verschiedene Galerien) | |
über diese Funktion aufgerufen werden. | |
Auch an verschiedenen Stellen. | |
*/ | |
?> | |
<head> | |
<title>Beispiel-Datei zur Nutzung von echo_galpics.php</title> | |
<!-- Beispiel-CSS-Code zur Formatierung der Ausgabe --> | |
<!-- | |
// VERTIKALE AUSGABE DER THUMBNAILS: | |
<style type="text/css"> | |
ul.gal_pics { | |
list-style-type:none; | |
margin-left:-40px; | |
} | |
li.gal_pics { | |
margin:0; | |
padding:3px; | |
} | |
ul.gal_pics li.gal_pics .small { | |
font-size:10px; | |
} | |
</style> | |
--> | |
<!-- | |
// HORIZONTALE AUSGABE | |
<style type="text/css"> | |
ul.gal_pics { | |
list-style-type:none; | |
} | |
li.gal_pics { | |
margin:0; | |
padding:3px; | |
float:left; | |
} | |
ul.gal_pics li.gal_pics .small { | |
font-size:10px; | |
} | |
</style> | |
--> | |
</head> | |
<body> | |
<h1>Hier einmal Bilder ausgeben:</h1> | |
<?PHP echo echo_pics(1,5,"rand","http://www.01-scripts.de",false); ?> | |
<h1>Und hier nochmal Bilder aus einer anderen Galerie</h1> | |
<?PHP echo echo_pics(2,5,"new","http://www.01-scripts.de",false); ?> | |
</body> | |
</html> |
<?PHP | |
/* | |
01-Gallery V2 - Copyright 2003-2018 by Michael Lorer - 01-Scripts.de | |
Lizenz: Creative-Commons: Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland | |
Weitere Lizenzinformationen unter: http://www.01-scripts.de/lizenz.php | |
Modul: 01gallery | |
Dateiinfo: Ausgabe von X Bildern aus dem 01-Galleryscript | |
.GIF-Dateien werden hier nicht untersützt. | |
*/ | |
// MySQL-Zugangsdaten | |
$mysql['user'] = "user"; // MySQL-Username | |
$mysql['passw'] = ""; // MySQL-Passwort | |
$mysql['host'] = "localhost"; // MySQL-Host | |
$mysql['database'] = ""; // MySQL-Datenbank | |
$mysql['instnr'] = "1"; // Installationsnummer des 01ACP | |
$pfad_01scripts = "01scripts"; // Absoluter (inkl. http:// ) oder relativer Pfad zum Verzeichnis 01scripts | |
/* Bilder ausgeben: | |
Binden Sie auf der PHP-Seite, auf der Sie Bilder aus Ihrer Galerie ausgeben | |
möchten diese Datei EINMALIG per PHP folgendermaßen ein: | |
<?PHP include_once("ihr-pfad/echo_galpics.php"); ?> | |
Anschließend können Sie in dieser PHP-Datei mit folgendem Befehl die Bilder ausgeben: | |
<?PHP | |
echo echo_pics($galid,$anzahl,$order,$zielurl,$echo_title=true,$modul="01gallery",$add_param2url=true,$cssclass=""); | |
?> | |
Für die Parameter können Sie folgendes einsetzen: | |
$galid ID der Galerie, aus der die Bilder ausgegeben werden sollen. (Zahl ohne Anführungszeichen; 0: Alle Galerien (außer Galerien, die mit einem Passwort geschützt oder versteckt sind.) werden berücksichtigt) | |
$anzahl Anzahl an Bildern, die ausgegeben werden sollen (Zahl ohne Anführungszeichen) | |
$order Sortierreihenfolge Folgende Werte sind möglich (Text-String mit Anführungszeichen): | |
"rand" // Zufällige Reihenfolge | |
"new" // Neuste Bilder zuerst | |
"old" // Älteste Bilder zuerst | |
"order_up" // Angegebene Reihenfolge aufsteigend | |
"order_down" // Angegebene Reihenfolge absteigend | |
$zielurl Ziel-URL Ihrer Galerie, auf die verlinkt werden soll (Text-String mit Anführungszeichen) | |
$echo_title true/false // Bild-Titel mit ausgeben ? (True/False ohne Anführungszeichen) | |
*optionale Parameter: | |
$modul Standardmäßig mit "01gallery" vorbelegt. Sollte Ihr Modul anders heißen, bitte umbennen! | |
$add_param2url true/false // Verlinkt standardmäßig automatisch zu der Galerie, aus der das Bild stammt | |
$cssclass Text-String für ein CSS-Präfix, um verschiedene CSS-Klassen bei der Ausgabe zu erhalten (Text-String mit Anführungszeichen) | |
Ein Aufruf kann dann z.B. so aussehen: | |
echo echo_pics(10,5,"rand","http://www.01-scripts.de",true); | |
Es können nach dem ersten Include-Befehl beliebig oft (auch verschiedene Galerien) | |
über diese Funktion aufgerufen werden. | |
Auch an verschiedenen Stellen. | |
*/ | |
/* Verbindung zur MySQL-Datenbank aufbauen */ | |
$mysqli = new mysqli($mysql['host'], $mysql['user'], $mysql['passw'], $mysql['database']); | |
if ($mysqli->connect_errno) { | |
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; | |
} | |
function echo_pics($galid,$anzahl,$order,$zielurl,$echo_title=true,$modul="01gallery",$add_param2url=true,$cssclass=""){ | |
global $mysqli,$pfad_01scripts,$mysql; | |
$mysql_tables['module'] = "01_".$mysql['instnr']."_module"; | |
// Parameter überprüfen, sonst abbrechen | |
if(!is_numeric($anzahl)) return "Fehler: Anzahl ist keine Nummer!"; | |
if(empty($order)) $order = "random"; | |
// Alle Bilder unabhängig von der GalerieID anzeigen? | |
if(!is_numeric($galid) || $galid == 0 || empty($galid)) $wgalid = ""; | |
else $wgalid = " WHERE galid = '".$mysqli->escape_string($galid)."' "; | |
$list = $mysqli->query("SELECT nr FROM ".$mysql_tables['module']." WHERE idname = '".$mysqli->escape_string($modul)."' LIMIT 1",$db); | |
while($row = $list->fetch_assoc()){ | |
$mysql_tables['gallery'] = "01_".$mysql['instnr']."_".$row['nr']."_galerien"; | |
$mysql_tables['pics'] = "01_".$mysql['instnr']."_".$row['nr']."_pictures"; | |
} | |
// Bilder aus DB holen | |
if(isset($mysql_tables['gallery'])){ | |
switch($order){ | |
case "new": | |
$orderby = "pictimestamp DESC"; | |
break; | |
case "old": | |
$orderby = "pictimestamp ASC"; | |
break; | |
case "order_up": | |
$orderby = "sortorder ASC"; | |
break; | |
case "order_down": | |
$orderby = "sortorder DESC"; | |
break; | |
default: | |
$orderby = "RAND()"; | |
break; | |
} | |
$c = 0; | |
$return = "<ul class=\"".$cssclass."gal_pics\">\n"; | |
$list = $mysqli->query("SELECT id,galid,filename,title FROM ".$mysql_tables['pics'].$wgalid." ORDER BY ".$orderby.""); | |
while($row = $list->fetch_assoc()){ | |
$listgal = $mysqli->query("SELECT galpassword,hide FROM ".$mysql_tables['gallery']." WHERE id = '".$mysqli->escape_string($row['galid'])."' LIMIT 1"); | |
$statrow = $listgal->fetch_assoc(); | |
$galdir = $pfad_01scripts."/01module/".$modul."/galerien/gal_".$row['galid']; | |
// Dürfen Bilder aus dieser Galerie ausgegeben werden? (hide?, galpassword?) | |
if(!check_galpw_and_hide_rec($row['galid'],$mysql_tables['gallery']) && $galid == 0) | |
continue; | |
elseif(!empty($statrow['galpassword'])){ | |
$galdir .= "_".substr(md5($mysql['instnr'].$row['galid'].$statrow['galpassword']),0,10); | |
} | |
$split = explode('.',$row['filename']); | |
$filename = $split[0]; | |
if(isset($split[1])) $endung = $split[1]; | |
else $endung = ""; | |
// Link zusammenstellen | |
if(strchr($zielurl,"?") && $add_param2url) | |
$zielurl_new = $zielurl."&galid=".$row['galid']; | |
elseif($add_param2url) | |
$zielurl_new = $zielurl."?galid=".$row['galid']; | |
else | |
$zielurl_new = $zielurl; | |
// Titel ausgeben? | |
if($echo_title) $addtitle = "<br /><span class=\"".$cssclass."small\">".stripslashes($row['title'])."</span>"; | |
else $addtitle = ""; | |
// Bilder ausgeben | |
if($endung != "gif") | |
$return .= "<li class=\"".$cssclass."gal_pics\"><a href=\"".$zielurl_new."\"><img src=\"".$galdir."/".$filename."_tb.".$endung."\" alt=\"".stripslashes($row['title'])."\" title=\"".stripslashes($row['title'])."\" /></a>".$addtitle."</li>\n"; | |
$c++; | |
if($c == $anzahl) | |
break; | |
} | |
$return .= "</ul>"; | |
return $return; | |
} | |
else return "Fehler: Modul ".$modul." nicht gefunden. Bitte überprüfen Sie Ihre Eingaben!"; | |
} | |
/* Funktion überprüft, ob eine ggf. übergeordnete Galerie ein Passwort hat oder versteckt ist | |
Wenn dies der Fall ist gibt die Funktion FALSE zurück | |
Andernfalls TRUE (= Bilder dieser Galerie können und dürfen ausgegeben werden) */ | |
function check_galpw_and_hide_rec($galid,$galtable){ | |
global $mysqli; | |
$listgal = $mysqli->query("SELECT subof,galpassword,hide FROM ".$galtable." WHERE id = '".$mysqli->escape_string($galid)."' LIMIT 1"); | |
$statrow = $listgal->fetch_assoc(); | |
if($statrow['hide'] == 1 || !empty($statrow['galpassword'])) | |
return FALSE; | |
elseif($statrow['subof'] != 0) | |
return check_galpw_and_hide_rec($statrow['subof'],$galtable); | |
else | |
return TRUE; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment