Hej hej
Har ett problem med ett bild galleri, kan i stort sett ingentingen i php därför behöver jag hjälp, jag behöver ha en lösning så bilderna som kommer i galleriet har popup funktion ....
I asp hade det inte vart några problem men får inte till det i med php...nån som har lust att hjälpa?
Koden är lång så kommer kanske 3 inlägg :)
<?
// +----------------------------------------------------------------------+
// | Easy Image Photo Gallery Script 1.3 |
// +----------------------------------------------------------------------+
// | Copyright (c) 2005 www.php4script.com |
// +----------------------------------------------------------------------+
// | Author: www.php4script.com <support@php4script.com> |
// +----------------------------------------------------------------------+
/******************************* CONFIGURATION ********************************/
/* CSS settings
To configure the look of the links and texts define the following classes in the your CSS file:
`nav` for the navigation links
`nav_current` for the current page digit
`copy` for the `www.php4script.com` link and `Powered by` text
`description` for the description if used
*/
/* sort mode: available values:
0 - sort by name asc
1 - sort by name desc
2 - sort by file time asc
3 - sort by file time desc
4 - sort by file size asc
5 - sort by file size desc
*/
define(SORT_MODE, 0);
// read JPEG files (1 - yes, 0 - no)
define('READ_JPG', 1);
// read GIF files (1 - yes, 0 - no)
define('READ_GIF', 1);
// read PNG files (1 - yes, 0 - no)
define('READ_PNG', 1);
// hide the `IPGS 1.3` link (1 - hide, 0 - show)
define('HIDE_COPY', 0);
// header file
// if you need to use a header file you can specify a path to that file
define('HEADER_FILE', 'header.htm');
// footer file
// if you need to use a footer file you can specify a path to that file
define('FOOTER_FILE', 'footer.htm');
// culculate image size (1 - culculate 0 - not calculate)
define('CULC_IMAGE_SIZE', 1);
/*
If you want to have a some titles/descriptions for your photos just create
a description.txt file at the same folder where script lacated
Fromat of description.txt file is: file_name::some_text
example:
photo1.jpg::My first photo
photo2.gif::My second photo
*/
// name of description file
define('DESCRIPTION_FILENAME', 'description.txt');
/************************ DO NOT EDIT ANY CODE BELOW *************************/
error_reporting(0);
// pagenav
define ("PAGENAV_PERPAGE",15);
define ("PAGENAV_TOTALRECS",355);
define ("PAGENAV_MINPAGES",6);
define ("PAGENAV_MAXPAGES",10);
define ("PAGENAV_CURRPAGEOFFSET",-1);
define ("PAGENAV_PERSET",10);
define ("PHOTOS_PER_PAGE", 1);
$p = split('/', $_SERVER['SCRIPT_FILENAME']);
$script_name = $p[count($p)-1];
$path = str_replace($script_name, '', $_SERVER['SCRIPT_FILENAME']);
$allowed_ext = array();
if(READ_JPG == 1) {
array_push($allowed_ext, 'jpg');
}
if(READ_GIF == 1) {
array_push($allowed_ext, 'gif');
}
if(READ_PNG == 1) {
array_push($allowed_ext, 'png');
}
$path = './';
$dir = dir($path);
if(empty($_GET['start'])) $_GET['start'] = 1;
$c0 = array(60,98,114,62,60,100,105,118,32,97,108,105,103,110,61,34,99,101,110,116,101,114,34,32,115,116,121,108,101,61,34,102,111,110,116,45,102,97,109,105,108,121,58,118,101,114,100,97,110,97,59,102,111,110,116,45,115,105,122,101,58,56,112,120,59,99,111,108,111,114,58,115,105,108,118,101,114,59,34,62,60,97,32,116,105,116,108,101,61,34,69,97,115,121,32,73,109,97,103,101,32,80,104,111,116,111,32,71,97,108,108,101,114,121,32,83,99,114,105,112,116,46,32,80,111,119,101,114,101,100,32,98,121,32,104,116,116,112,58,47,47,119,119,119,46,112,104,112,52,115,99,114,105,112,116,46,99,111,109,34,32,115,116,121,108,101,61,34,102,111,110,116,45,102,97,109,105,108,121,58,118,101,114,100,97,110,97,59,102,111,110,116,45,115,105,122,101,58,56,112,120,59,99,111,108,111,114,58,115,105,108,118,101,114,59,34,32,99,108,97,115,115,61,34,99,111,112,121,95,108,105,110,107,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,112,104,112,52,115,99,114,105,112,116,46,99,111,109,47,63,105,100,61,49,34,62,60,115,112,97,110,32,99,108,97,115,115,61,34,99,111,112,121,34,62,80,104,111,116,111,32,71,97,108,108,101,114,121,32,83,99,114,105,112,116,32,118,49,46,51,60,47,115,112,97,110,62,60,47,97,62,60,47,100,105,118,62);
$c1 = array(60,97,32,116,105,116,108,101,61,34,69,97,115,121,32,73,109,97,103,101,32,80,104,111,116,111,32,71,97,108,108,101,114,121,32,83,99,114,105,112,116,46,32,80,111,119,101,114,101,100,32,98,121,32,104,116,116,112,58,47,47,119,119,119,46,112,104,112,52,115,99,114,105,112,116,46,99,111,109,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,112,104,112,52,115,99,114,105,112,116,46,99,111,109,47,63,105,100,61,49,34,62,60,105,109,103,32,97,108,116,61,34,69,97,115,121,32,73,109,97,103,101,32,80,104,111,116,111,32,71,97,108,108,101,114,121,32,83,99,114,105,112,116,46,32,80,111,119,101,114,101,100,32,98,121,32,104,116,116,112,58,47,47,119,119,119,46,112,104,112,52,115,99,114,105,112,116,46,99,111,109,34,32,98,111,114,100,101,114,61,34,48,34,32,119,105,100,116,104,61,34,49,34,32,104,101,105,103,104,116,61,34,49,34,32,115,114,99,61,34,95,95,115,112,97,99,101,114,46,103,105,102,34,62,60,47,97,62);
$total_size = 0;
while ($file = $dir->read()) {
// if(array_sum($c) != 16284) break;
if (($file != '.') && ($file != 'CVS') && ($file != '..')) {
$file_size = filesize($path . $file);
$ext = file_ext($file);
if(!is_dir($path . $file) && isset($ext) && in_array($ext, $allowed_ext)) {
$images[] = array('name' => $file,
'last_modified' => filemtime($path . $file),
'size' => $file_size,
);
}
}
}
// sort order
$sort_mode = array(
0 => 'cmp_name_asc',
1 => 'cmp_name_desc',
2 => 'cmp_time_asc',
3 => 'cmp_time_desc',
4 => 'cmp_size_asc',
5 => 'cmp_size_desc',
);
uasort($images, $sort_mode[SORT_MODE]);
foreach($images as $_i => $_d) {
$new_images[] = $_d;
}
$images = $new_images;
// end: sort order
if(count($images) <= 0) {
echo 'No images found';
exit;
}
$filename = $images[$_GET['start']-1]['name'];
$description = read_description();
if(file_exists($path . $filename)) {
$imgsize_str = ' ';
if(CULC_IMAGE_SIZE == 1) {
$imgsize = getimagesize($path . $filename);
$imgsize_str .= $imgsize[3];
}
if(isset($description[$filename])) {
$descr = $description[$filename];
$alt = trim($description[$filename]);
} else {
$alt = $filename;
}
$image = '<img alt="' . $alt . '" src="' . $filename . '"' . $imgsize_str . '>';
} else {
$image = 'Image not found';
}
$nav = nav(count($images));
$image_html = '<tr><td align="center">' . $image . '</td></tr>';
$descr_html = '';
if(isset($descr)) {
$descr_html = '<tr><td align="center" class="description">' . $descr . '</td></tr>';
}
$nav_html = '<tr><td align="center">' . $nav . '</td></tr>';
$output = '<table align="center">' . $nav_html . $image_html . $descr_html . '</table>';
if(file_exists(HEADER_FILE)) {
echo implode('', file(HEADER_FILE));
}
echo $output;
$count = count(${'c'.HIDE_COPY});
print "\n\n\n";
for($i=0; $i < $count; $i++) {
echo chr(${'c'.HIDE_COPY}[$i]);
}
print "\n\n\n";
if(file_exists(FOOTER_FILE)) {
echo implode('', file(FOOTER_FILE));
}
function file_ext($file) {
$extension = split("[.]", $file);
$ext_file = $extension[count($extension)-1];
return strtolower($ext_file);
}
function nav($total_rows) {
$pagenav = new PageNavigator_ManualScroll($_GET['start'], PHOTOS_PER_PAGE, $total_rows, PAGENAV_PERSET, array('from'=>'start'));
$pagenav->parametersNot = array('start');
$pagenav->autoLoadFromQuery();
$pagenav->getRange($pagenav->getCurrentPage(), $firstrec, $lastrec);
return $pagenav->render();
}
function read_description() {
global $path;
$data = array();
$d = array();
if(file_exists($path . DESCRIPTION_FILENAME)) {
$data = file($path . DESCRIPTION_FILENAME);
}
$num = count($data);
if($num > 0) {
for($i=0; $i < $num; $i++) {
list($file, $descr) = split('::', $data[$i]);
$d[$file] = $descr;
}
}
return $d;
}
class PageNavigator
{
/**
* Number of the current page.
*
* @var integer
* @access private
*/
var $current_page;
/**
* Number of records per one page.
*
* @var integer
* @access private
*/
var $records_per_page;
/**
* Total records in the data set.
*
* @var integer
* @access private
*/
var $total_records = 0;
/**
* Processed query string.
*
* @var integer
* @access private
*/
var $processed_query;