aboutsummaryrefslogtreecommitdiffstats
path: root/tools/create_listing_file.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tools/create_listing_file.php46
1 files changed, 22 insertions, 24 deletions
diff --git a/tools/create_listing_file.php b/tools/create_listing_file.php
index fb3786f11..112b4ff14 100644
--- a/tools/create_listing_file.php
+++ b/tools/create_listing_file.php
@@ -82,13 +82,13 @@ $conf['use_iptc_mapping'] = array(
function get_iptc_data($filename, $map)
{
$result = array();
-
+
// Read IPTC data
$iptc = array();
-
+
$imginfo = array();
getimagesize($filename, $imginfo);
-
+
if (isset($imginfo['APP13']))
{
$iptc = iptcparse($imginfo['APP13']);
@@ -135,7 +135,7 @@ function clean_iptc_value($value)
}
// remove binary nulls
$value = str_replace(chr(0x00), ' ', $value);
-
+
return htmlentities($value);
}
@@ -145,7 +145,7 @@ function get_sync_iptc_data($file)
$map = $conf['use_iptc_mapping'];
$datefields = array('date_creation', 'date_available');
-
+
$iptc = get_iptc_data($file, $map);
foreach ($iptc as $pwg_key => $value)
@@ -161,10 +161,8 @@ function get_sync_iptc_data($file)
if (isset($iptc['keywords']))
{
- // keywords separator is the comma, nothing else. Allowed characters in
- // keywords : [A-Za-z0-9], "-" and "_". All other characters will be
- // considered as separators
- $iptc['keywords'] = preg_replace('/[^\w-]+/', ',', $iptc['keywords']);
+ // official keywords separator is the comma
+ $iptc['keywords'] = preg_replace('/[.;]/', ',', $iptc['keywords']);
$iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']);
}
@@ -242,7 +240,7 @@ function get_thumb_files($dir)
global $conf;
$prefix_length = strlen($conf['prefix_thumbnail']);
-
+
$thumbnails = array();
if ($opendir = @opendir($dir.'/thumbnail'))
{
@@ -349,7 +347,7 @@ function get_dirs($basedir, $indent, $level)
$dirs.= get_dirs($basedir.'/'.$fs_dir, $indent.' ', $level + 1);
$dirs.= "\n".$indent.'</dir'.$level.'>';
}
- return $dirs;
+ return $dirs;
}
// get_extension returns the part of the string after the last "."
@@ -369,7 +367,7 @@ function get_filename_wo_extension($filename)
function get_pictures($dir, $indent)
{
global $conf, $page;
-
+
// fs means FileSystem : $fs_files contains files in the filesystem found
// in $dir that can be managed by PhpWebGallery (see get_pwg_files
// function), $fs_thumbnails contains thumbnails, $fs_representatives
@@ -383,14 +381,14 @@ function get_pictures($dir, $indent)
$print_dir = preg_replace('/^\.\//', '', $dir);
$print_dir = preg_replace('/\/*$/', '/', $print_dir);
-
+
foreach ($fs_files as $fs_file)
{
$element = array();
$element['file'] = $fs_file;
$element['path'] = $page['url'].$print_dir.$fs_file;
$element['filesize'] = floor(filesize($dir.'/'.$fs_file) / 1024);
-
+
$file_wo_ext = get_filename_wo_extension($fs_file);
foreach ($conf['picture_ext'] as $ext)
@@ -408,7 +406,7 @@ function get_pictures($dir, $indent)
}
// 2 cases : the element is a picture or not. Indeed, for a picture
- // thumbnail is mandatory, high is optional and for non picture element,
+ // thumbnail is mandatory, high is optional and for non picture element,
// thumbnail and representative is optionnal
if (in_array(get_extension($fs_file), $conf['picture_ext']))
{
@@ -420,7 +418,7 @@ function get_pictures($dir, $indent)
$element['width'] = $image_size[0];
$element['height'] = $image_size[1];
}
-
+
if ( in_array($fs_file, $fs_highs) )
{
$element['has_high'] = 'true';
@@ -464,7 +462,7 @@ function get_pictures($dir, $indent)
}
}
}
-
+
array_push($elements, $element);
}
else
@@ -492,7 +490,7 @@ function get_pictures($dir, $indent)
break;
}
}
-
+
array_push($elements, $element);
}
}
@@ -537,11 +535,11 @@ switch ($page['action'])
case 'generate' :
{
$start = get_moment();
-
+
$listing = '<informations';
$listing.= ' generation_date="'.date('Y-m-d').'"';
$listing.= ' phpwg_version="'.htmlentities($conf{'version'}).'"';
-
+
$attrs=array();
if ($conf['use_iptc'])
{
@@ -552,16 +550,16 @@ switch ($page['action'])
$attrs = array_merge($attrs, array_keys($conf['use_exif_mapping']) );
}
$listing.= ' metadata="'.implode(',',array_unique($attrs)).'"';
-
+
$end = strrpos($_SERVER['PHP_SELF'], '/') + 1;
$local_folder = substr($_SERVER['PHP_SELF'], 0, $end);
$page['url'] = 'http://'.$_SERVER['HTTP_HOST'].$local_folder;
-
+
$listing.= ' url="'.$page['url'].'"';
$listing.= '/>'."\n";
-
+
$listing.= get_dirs('.', '', 0);
-
+
if ($fp = @fopen("./listing.xml","w"))
{
fwrite($fp, $listing);