Last active
August 8, 2018 09:57
-
-
Save 01-Scripts/712454 to your computer and use it in GitHub Desktop.
PHP-Funktion um Bilder aus einer 01Gallery V2-Bildergalerie an anderer Stelle auszugeben http://www.01-scripts.de
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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