- bug 600: Page not found after a strong rating revise (and extended to most cases when the image is not in the requested section)

git-svn-id: http://piwigo.org/svn/trunk@2430 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
rvelices
2008-07-12 00:33:12 +00:00
parent e2ee204c12
commit 2c08827ea0
2 changed files with 81 additions and 38 deletions
+5 -34
View File
@@ -93,6 +93,10 @@ if (script_basename() == 'picture') // basename without file extention
if ( is_numeric($token) )
{
$page['image_id'] = $token;
if ($page['image_id']==0)
{
bad_request('invalid picture identifier');
}
}
else
{
@@ -525,40 +529,7 @@ if (isset($page['chronology_field']))
if (script_basename() == 'picture'
and !isset($page['image_id']) )
{
if ( !empty($page['items']) )
{
$query = '
SELECT id,file
FROM '.IMAGES_TABLE .'
WHERE file LIKE "' . $page['image_file'] . '.%" ESCAPE "|"';
if ( count($page['items']) < 500)
{// for very large item sets do not add IN - because slow
$query .= '
AND id IN ('.implode(',',$page['items']).')
LIMIT 0,1';
}
$result = pwg_query($query);
switch (mysql_num_rows($result))
{
case 0: break;
case 1:
list($page['image_id'], $page['image_file']) = mysql_fetch_row($result);
break;
default: // more than 1 file name match
while ($row = mysql_fetch_row($result) )
{
if ( in_array($row[0], $page['items']) )
{
list($page['image_id'], $page['image_file']) = $row;
break;
}
}
}
}
if ( !isset($page['image_id']) )
{
$page['image_id'] = -1; // will fail in picture.php
}
$page['image_id'] = 0; // more work in picture.php
}
// add meta robots noindex, nofollow to avoid unnecesary robot crawls