Fullscreen PHP Slideshow for Free Use 
8.10.15, 10:34 - Dies und Das, Linux
have you ever wanted to add a really simple fullscreen slideshow to your homepage?

no javascript, no jquery - just plain php and css magic

just copy the content of the block to an index.php file, modify the pathes in lines 6 and 8 as well as the bodytext and upload this file to a directory that will be the gallery.

my examples are available here: http://www.wiwi.uni-frankfurt.de/~andreas/blog/images/
or here http://netzherpes.de/deauville/?img=28

<?php
/*
PHP image slideshow - auto version - PHP5
*/
// set the absolute path to the directory containing the images
define ('IMGDIR', '/var/www/netzherpes.de/www/deauville/images/');
// same but for www
define ('WEBIMGDIR', '/deauville/images/');
// set session name for slideshow "cookie"
define ('SS_SESSNAME', 'slideshow_sess');
// global error variable
$err = '';
// start img session
session_name(SS_SESSNAME);
session_start();
// init slideshow class
$ss = new slideshow($err);
if (($err = $ss->init()) != '')
{
header('HTTP/1.1 500 Internal Server Error');
echo $err;
exit();
}
// get image files from directory
$ss->get_images();
// set variables, done.
list($curr, $caption, $first, $prev, $next, $last) = $ss->run();
/*
slideshow class, can be used stand-alone
*/
class slideshow
{
private $files_arr = NULL;
private $err = NULL;

public function __construct(&$err)
{
$this->files_arr = array();
$this->err = $err;
}
public function init()
{
// run actions only if img array session var is empty
// check if image directory exists
if (!$this->dir_exists())
{
return 'Error retrieving images, missing directory';
}
return '';
}
public function get_images()
{
// run actions only if img array session var is empty
if (isset($_SESSION['imgarr']))
{
$this->files_arr = $_SESSION['imgarr'];
}
else
{
if ($dh = opendir(IMGDIR))
{
while (false !== ($file = readdir($dh)))
{
if (preg_match('/^.*\.(JPG|jpg|jpeg|gif|png)$/i', $file))
{
$this->files_arr[] = $file;
}
}
closedir($dh);
}
$_SESSION['imgarr'] = $this->files_arr;
}
}
public function run()
{
$curr = 1;
$last = count($this->files_arr);
if (isset($_GET['img']))
{
if (preg_match('/^[0-9]+$/', $_GET['img'])) $curr = (int) $_GET['img'];
if ($curr <= 0 || $curr > $last) $curr = 1;
}
if ($curr <= 1)
{
$prev = $curr;
$next = $curr + 1;
}
else if ($curr >= $last)
{
$prev = $last - 1;
$next = $first;
}
else
{
$prev = $curr - 1;
$next = $curr + 1;
}
// line below sets the caption name...
$caption = str_replace('-', ' ', $this->files_arr[$curr - 1]);
$caption = str_replace('_', ' ', $caption);
$caption = preg_replace('/\.(JPG|jpe?g|gif|png)$/i', '', $caption);
$caption = ucfirst($caption);
return array($this->files_arr[$curr - 1], $caption, 1, $prev, $next, $last);
}
private function dir_exists()
{
return file_exists(IMGDIR);
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BLABLALA Title </title>
<meta name="description" lang="de" content="This is a collection of pictures"/>
<meta name="author" content="web doktor netzherpes.de">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="refresh" content="17; URL=?img=<?=$next;?>">

<style>
html { height: 100%;
}
body
{
background: url(<?=WEBIMGDIR;?><?=$curr;?>) no-repeat;
text-align: center;
color: #777777;
display: block;
-webkit-background-size: contain;
-moz-background-size: contain;
background-size: contain;
background-color: #000000;
background-position: center;
text-align: center;
margin: 0px;
margin-left: auto;
margin-right: auto;
min-height: 100%;

}
#footer {
position: absolute;
bottom: 0;
}

a:hover {
text-decoration: none;
color: #666644;
}
a {
text-decoration: none;
color: #666644;
}

</style>
</head>
<body>
<a href="http://netzherpes.de/blog">(c) netzherpes.de </a> - press F11 for fullscreen. save a pic by saving the backgroundimage.<br><a href="?img=<?=$prev;?>">prev</a> - <a href="?img=<?=$next;?>">next</a>

<div id="footer">(c) netzherpes.de</div>
</body>
</html>


copy paste, done!

this is a heavily modified script from http://www.phpsnaps.com/snaps/view/php- ... show-auto/

have fun webdoktor!

Kommentare

Kommentar hinzufügen
nocomments