0,0 → 1,454 |
<?php |
/************************* |
Coppermine Photo Gallery |
************************ |
Copyright (c) 2003-2005 Coppermine Dev Team |
v1.1 originaly written by Gregory DEMAR |
|
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
******************************************** |
Coppermine version: 1.3.3 |
$Source: /cvsroot/coppermine/stable/util.php,v $ |
$Revision: 1.13 $ |
$Author: gaugau $ |
$Date: 2005/04/19 03:17:11 $ |
**********************************************/ |
|
define('IN_COPPERMINE', true); |
define('UTIL_PHP', true); |
|
require('include/init.inc.php'); |
require('include/picmgmt.inc.php'); |
|
pageheader($lang_util_php['title']); |
|
// USER CONFIGURATION |
// Default number of pictures to process at a time when rebuilding thumbs or normals: |
$defpicnum = 45; |
// END USER CONFIGURATION |
|
if (!GALLERY_ADMIN_MODE) die('Access denied'); |
|
global $albumtbl, $picturetbl, $categorytbl, $usertbl, $lang_util_php; |
$albumtbl = $CONFIG['TABLE_PREFIX'] . 'albums'; |
$picturetbl = $CONFIG['TABLE_PREFIX'] . 'pictures'; |
$categorytbl = $CONFIG['TABLE_PREFIX'] . 'categories'; |
$usertbl = $CONFIG['TABLE_PREFIX'] . 'users'; |
|
// initialize vars |
$startpic = ''; |
$action = ""; |
$action = $_POST['action']; |
|
|
MYSQL_CONNECT($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']) or die("can't connect to mysql server"); |
MYSQL_SELECT_DB($CONFIG['dbname']); |
|
function my_flush() |
{ |
print str_repeat(" ", 4096); // force a flush |
} |
|
function filenametotitle($delete) |
{ |
$albumid = $_POST['albumid']; |
$parsemode = $_POST['parsemode']; |
global $picturetbl, $lang_util_php; |
|
$query = "SELECT * FROM $picturetbl WHERE aid = '$albumid'"; |
$result = db_query($query); |
$num = mysql_numrows($result); |
|
$i = 0; |
while ($i < $num) { |
$filename = mysql_result($result, $i, "filename"); |
$pid = mysql_result($result, $i, "pid"); |
// ////////////////////////////////////////// |
// ADD YOUR OWN PARSEMODES HERE // |
// ///////////////////////////////////////// |
$pattern = "/(\d+)(.)(\d+)(.)(\d+)(.)(\d+)(.)(\d+)(.)(\d+)(.+)/"; |
|
if ($delete == '0') { |
if ($parsemode == 0) { |
// REMOVE .JPG AND REPLACE _ WITH [ ] |
$filename = substr($filename, 0, -4); |
$newtitle = str_replace("_", " ", $filename); |
} else if ($parsemode == 1) { |
// CHANGE 2003_11_23_13_20_20.jpg TO 23/11/2003 13:20 |
$newtitle = str_replace("%20", " ", $filename); |
$replacement = "$5/$3/$1 $7:$9"; |
$newtitle = preg_replace($pattern, $replacement, $filename); |
} else if ($parsemode == 2) { |
// CHANGE 2003_11_23_13_20_20.jpg TO 11/23/2003 13:20 |
$newtitle = str_replace("%20", " ", $filename); |
$replacement = "$3/$5/$1 $7:$9"; |
$newtitle = preg_replace($pattern, $replacement, $filename); |
} else if ($parsemode == 3) { |
// CHANGE 2003_11_23_13_20_20.jpg TO 13:20 |
$newtitle = str_replace("%20", " ", $filename); |
$replacement = "$7:$9"; |
$newtitle = preg_replace($pattern, $replacement, $filename); |
} |
} else { |
$newtitle = ''; |
} |
|
print $lang_util_php['file'] . ': '.$filename.' ' . $lang_util_php['title_set_to'] . ':'. $newtitle.'<br />'; |
my_flush(); |
|
$query = "UPDATE $picturetbl SET title='$newtitle' WHERE pid='$pid' "; |
db_query($query); |
|
++$i; |
} |
} |
|
function filloptions() |
{ |
global $albumtbl, $picturetbl, $categorytbl, $usertbl, $lang_util_php; |
|
$query = "SELECT aid, category, IF(user_name IS NOT NULL, CONCAT('(', user_name, ') ',title), CONCAT(' - ', title)) AS title " . "FROM $albumtbl AS a " . "LEFT JOIN $usertbl AS u ON category = (" . FIRST_USER_CAT . " + user_id) " . "ORDER BY category, title"; |
$result = db_query($query); |
// $num=mysql_numrows($result); |
echo '<select size="1" name="albumid">'; |
|
while ($row = mysql_fetch_array($result)) { |
$sql = "SELECT name FROM $categorytbl WHERE cid = " . $row["category"]; |
$result2 = db_query($sql); |
$row2 = mysql_fetch_array($result2); |
|
print "<option value=\"" . $row["aid"] . "\">" . $row2["name"] . $row["title"] . "</option>\n"; |
} |
|
print '</select> (3)'; |
print ' <input type="submit" value="'.$lang_util_php['submit_form'].'" class="button" /> (4)'; |
print '</form>'; |
} |
|
function updatethumbs() |
{ |
global $picturetbl, $CONFIG, $lang_util_php; |
$phpself = $_SERVER['PHP_SELF']; |
$albumid = $_POST['albumid']; |
$updatetype = $_POST['updatetype']; |
$numpics = $_POST['numpics']; |
$startpic = 0; |
$startpic = $_POST['startpic']; |
|
$query = "SELECT * FROM $picturetbl WHERE aid = '$albumid'"; |
$result = db_query($query); |
$totalpics = mysql_numrows($result); |
|
if ($startpic == 0) { |
// 0 - numpics |
$num = $totalpics; |
// Over picture limit |
if ($totalpics > $numpics) $num = $startpic + $numpics; |
} else { |
// startpic - numpics |
$num = $startpic + $numpics; |
if ($num > $totalpics) $num = $totalpics; |
} |
|
$i = $startpic; |
while ($i < $num) { |
$image = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . mysql_result($result, $i, "filename"); |
|
if ($updatetype == 0 || $updatetype == 2) { |
$thumb = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . $CONFIG['thumb_pfx'] . mysql_result($result, $i, "filename"); |
|
if (resize_image($image, $thumb, $CONFIG['thumb_width'], $CONFIG['thumb_method'], $CONFIG['thumb_use'])) { |
print $thumb .' '. $lang_util_php['updated_succesfully'] . '!<br />'; |
my_flush(); |
} else { |
print $lang_util_php['error_create'] . ':$thumb<br />'; |
my_flush(); |
} |
} |
|
if ($updatetype == 1 || $updatetype == 2) { |
$normal = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . $CONFIG['normal_pfx'] . mysql_result($result, $i, "filename"); |
|
$imagesize = getimagesize($image); |
if (max($imagesize[0], $imagesize[1]) > $CONFIG['picture_width'] && $CONFIG['make_intermediate']) { |
if (resize_image($image, $normal, $CONFIG['picture_width'], $CONFIG['thumb_method'], $CONFIG['thumb_use'])) { |
print $normal . $lang_util_php['updated_succesfully'] . '!<br />'; |
my_flush(); |
} else { |
print $lang_util_php['error_create'] . ':$normal<br />'; |
my_flush(); |
} |
} |
} |
|
++$i; |
} |
$startpic = $i; |
|
if ($startpic < $totalpics) { |
|
?> |
<form action="<?php echo $phpself; ?>" method="post"> |
<input type="hidden" name="action" value="continuethumbs" /> |
<input type="hidden" name="numpics" value="<?php echo $numpics?>" /> |
<input type="hidden" name="startpic" value="<?php echo $startpic?>" /> |
<input type="hidden" name="updatetype" value="<?php echo $updatetype?>" /> |
<input type="hidden" name="albumid" value="<?php echo $albumid?>" /> |
<input type="submit" value="<?php print $lang_util_php['continue']; |
?>" class="button" /></form> |
<?php |
} |
} |
|
function deleteorig() |
{ |
global $picturetbl, $CONFIG, $lang_util_php; |
$albumid = $_POST['albumid']; |
|
$query = "SELECT * FROM $picturetbl WHERE aid = '$albumid'"; |
$result = db_query($query); |
$num = mysql_numrows($result); |
|
$i = 0; |
while ($i < $num) { |
$pid = mysql_result($result, $i, "pid"); |
$image = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . mysql_result($result, $i, "filename"); |
$normal = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . $CONFIG['normal_pfx'] . mysql_result($result, $i, "filename"); |
$thumb = $CONFIG['fullpath'] . mysql_result($result, $i, "filepath") . $CONFIG['thumb_pfx'] . mysql_result($result, $i, "filename"); |
|
if (file_exists($normal)) { |
unlink($image); |
$test = rename($normal, $image); |
if ($test == true) { |
$imagesize = getimagesize($image); |
$image_filesize = filesize($image); |
$total_filesize = $image_filesize + filesize($thumb); |
|
$query = "UPDATE $picturetbl SET filesize='$image_filesize' WHERE pid='$pid' "; |
db_query($query); |
|
$query = "UPDATE $picturetbl SET total_filesize='$total_filesize' WHERE pid='$pid' "; |
db_query($query); |
|
$query = "UPDATE $picturetbl SET pwidth='{$imagesize[0]}' WHERE pid='$pid' "; |
db_query($query); |
|
$query = "UPDATE $picturetbl SET pheight='{$imagesize[1]}' WHERE pid='$pid' "; |
db_query($query); |
printf($lang_util_php['main_success'], $normal); |
print '!<br>'; |
} else { |
printf($lang_util_php['error_rename'], $normal, $image); |
} |
} else { |
printf($lang_util_php['error_not_found'], $normal); |
print '<br>'; |
} |
|
++$i; |
} |
} |
|
function deleteorphans() |
{ |
global $picturetbl, $CONFIG, $lang_util_php; |
$phpself = $_SERVER['PHP_SELF']; |
$del = $_POST['del']; |
$single = $_POST['single']; |
$count = 0; |
|
if ($single) { |
$delone = db_query("DELETE FROM {$CONFIG['TABLE_COMMENTS']} WHERE msg_id=$single") or die ("failed to delete msgs - " . mysql_error()); |
} |
|
$result = db_query("SELECT pid,msg_id,msg_body FROM {$CONFIG['TABLE_COMMENTS']} WHERE 1"); |
|
while ($row = mysql_fetch_array($result)) { |
$pid = $row['pid']; |
$msg_id = $row['msg_id']; |
$msg_body = $row['msg_body']; |
$result2 = db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE pid=$pid"); |
if (!mysql_num_rows($result2)) { |
if ($del == "all") |
{ |
$Deletions = db_query("DELETE FROM {$CONFIG['TABLE_COMMENTS']} WHERE msg_id=$msg_id") or die ("failed to delete msgs - " . mysql_error()); |
} else { |
$count++; |
?> |
<form action="<?php echo $phpself;?>" method="post"> |
<input type="hidden" name="action" value="delorphans" /> |
<input type="hidden" name="single" value="<?php echo $msg_id; ?>" /> |
<?php echo $lang_util_php['comment'].' "'.$msg_body.'" '.$lang_util_php['nonexist'].' '.$pid; ?> |
<input type="submit" value="<?php print $lang_util_php['delete'];?>" class="button" /></form> |
<?php |
} |
} |
|
} |
|
echo '<br>'.$count.' '.$lang_util_php['orphan_comment'].'<br><br>'; |
if ($count>=1) { |
?> |
<form action="<?php echo $phpself;?>" method="post"> |
<input type="hidden" name="action" value="delorphans" /> |
<input type="hidden" name="del" value="all" /> |
Delete all orphans? |
<input type="submit" value="<?php print $lang_util_php['delete_all'];?>" class="button" /></form> |
<?php |
} |
} |
|
|
$phpself = $_SERVER['PHP_SELF']; |
// start output |
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<title>' . $lang_util_php['title'] . '</title> |
</head> |
<style type="text/css"> |
.labelradio { cursor : hand;} |
/*.accesskey {text-decoration:underline}*/ |
</style> |
<body>'; |
|
if ($action == 'thumbs') { |
global $picturetbl, $CONFIG; |
|
print '<a href="' . $phpself . '">' . $lang_util_php['back'] . '</a><br />'; |
print '<h2>' . $lang_util_php['thumbs_wait'] . '</h2>'; |
|
updatethumbs(); |
|
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else if ($action == 'continuethumbs') { |
print '<a href="' . $phpself . '">' . $lang_util_php['back'] . '</a><br />'; |
print '<h2>' . $lang_util_php['thumbs_continue_wait'] . '</h2>'; |
|
updatethumbs(); |
|
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else if ($action == 'title') { |
echo '<a href="' . $phpself . '">' . $lang_util_php['back'] . '</a><br />'; |
print '<h2>' . $lang_util_php['titles_wait'] . '</h2>'; |
|
filenametotitle(0); |
|
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else if ($action == 'deltit') { |
print '<a href="' . $phpself . '">' . $lang_util_php['back'] . '</a><br />'; |
print '<h2>' . $lang_util_php['delete_wait'] . '</h2>'; |
|
filenametotitle(1); |
|
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else if ($action == 'delnorm') { |
print '<a href="' . $phpself . '">' . $lang_util_php['back'] . '</a><br />'; |
print '<h2>' . $lang_util_php['replace_wait'] . '</h2>'; |
|
deleteorig(); |
|
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else if ($action == 'delorphans') { |
deleteorphans(); |
echo '<br /><a href="' . $phpself . '">' . $lang_util_php['back'] . '</a>'; |
} else { |
starttable('100%'); |
|
print '<tr><td>'; |
starttable('100%', $lang_util_php['title'] . ' (util.mod)', 2); |
print '<tr><td class="tablef"><b>'; |
print $lang_util_php['what_it_does'] . '</b>: |
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:square"> |
<li>' . $lang_util_php['what_update_titles'] . '</li> |
<li>' . $lang_util_php['what_delete_title'] . '</li> |
<li>' . $lang_util_php['what_rebuild'] . '</li> |
<li>' . $lang_util_php['what_delete_originals'] . '</li> |
</ul></td> |
<td class="tableb"><b> |
' . $lang_util_php['instruction'] . '</b>: |
<br /> |
(1) ' . $lang_util_php['instruction_action'] . '<br /> |
(2) ' . $lang_util_php['instruction_parameter'] . '<br /> |
(3) ' . $lang_util_php['instruction_album'] . '<br /> |
(4) '; |
printf($lang_util_php['instruction_press'], $lang_util_php['submit_form']); |
print ' |
'; |
|
print '</td></tr>'; |
endtable(); |
print '<br /> |
<form action="' . $phpself . '" method="post"> |
'; |
|
starttable('100%', '<input type="radio" name="action" checked="checked" value="thumbs" id="thumbs" class="nobg" /><label for="thumbs" accesskey="t" class="labelradio">' . $lang_util_php['update'] . '</label> (1)'); |
print ' |
<tr><td> |
' . $lang_util_php['update_what'] . ' (2):<br /> |
<input type="radio" name="updatetype" value="0" id="thumb" class="nobg" /><label for="thumb" accesskey="t" class="labelradio">' . $lang_util_php['update_thumb'] . '</label><br /> |
<input type="radio" name="updatetype" value="1" id="resized" class="nobg" /><label for="resized" accesskey="r" class="labelradio">' . $lang_util_php['update_pic'] . '</label><br /> |
<input type="radio" name="updatetype" value="2" checked="checked" id="all" class="nobg" /><label for="all" accesskey="a" class="labelradio">' . $lang_util_php['update_both'] . '</label><br /> |
' . $lang_util_php['update_number'] . ' |
<input type="text" name="numpics" value="' . $defpicnum . '" size="5" /><br /> |
' . $lang_util_php['update_option'] . '<br /><br /> |
</td></tr>'; |
endtable(); |
|
print '<br />'; |
|
starttable('100%', '<input type="radio" name="action" value="title" id="title" class="nobg" /><label for="title" accesskey="F" class="labelradio">' . $lang_util_php['filename_title'] . '</label> (1)'); |
print ' |
<tr><td> |
' . $lang_util_php['filename_how'] . ' (2):<br /> |
<input type="radio" name="parsemode" checked="checked" value="0" id="remove" class="nobg" /><label for="remove" accesskey="s" class="labelradio">' . $lang_util_php['filename_remove'] . '</label><br /> |
<input type="radio" name="parsemode" value="1" id="euro" class="nobg" /><label for="euro" accesskey="e" class="labelradio">' . $lang_util_php['filename_euro'] . '</label><br /> |
<input type="radio" name="parsemode" value="2" id="us" class="nobg" /><label for="us" accesskey="u" class="labelradio">' . $lang_util_php['filename_us'] . '</label><br /> |
<input type="radio" name="parsemode" value="3" id="hour" class="nobg" /><label for="hour" accesskey="h" class="labelradio">' . $lang_util_php['filename_time'] . '</label><br /><br /> |
</td></tr>'; |
endtable(); |
|
print '<br />'; |
|
starttable('100%', '<input type="radio" name="action" value="deltit" id="deltit" class="nobg" /><label for="deltit" accesskey="D" class="labelradio">' . $lang_util_php['delete_title'] . '</label> (1)'); |
endtable(); |
print '<br />'; |
|
starttable('100%', '<input type="radio" name="action" value="delorphans" id="delorphans" class="nobg" /><label for="delorphans" accesskey="O" class="labelradio">' . $lang_util_php['delete_orphans'] . '</label> (1)'); |
endtable(); |
print '<br />'; |
|
starttable('100%', '<input type="radio" name="action" value="delnorm" id="delnorm" class="nobg" /><label for="delnorm" accesskey="e" class="labelradio">' . $lang_util_php['delete_original'] . '</label> (1)'); |
endtable(); |
print '<br />'; |
|
starttable('100%', '<a href="phpinfo.php">' . $lang_util_php['phpinfo'] . '</a> (1)'); |
endtable(); |
print '<br />'; |
|
starttable('100%', '<a href="update.php">' . $lang_util_php['update_db'] . '</a> (1)'); |
print '<tr><td>'.$lang_util_php['update_db_explanation'].'</td></tr>'; |
endtable(); |
print '<br />'; |
|
print ' <br />'; |
|
print '<h2>'.$lang_util_php['select_album'].'</h2>'; |
|
if (defined('UDB_INTEGRATION')) { |
udb_util_filloptions(); |
} else { |
filloptions(); |
} |
|
} |
print '</td></tr>'; |
endtable(); |
echo 'Util.mod 1.4 - Created by David Alberg Holm'; |
pagefooter(); |
ob_end_flush(); |
|
?> |