Blame | Last modification | View Log | Download
<?php/*************************Coppermine Photo Gallery************************Copyright (c) 2003-2005 Coppermine Dev Teamv1.1 originaly written by Gregory DEMARThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 CONFIGURATIONif (!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 limitif ($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 outputprint '<!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();?>