option to merge tags in the event of hash collision
git-svn-id: file:///home/shish/svn/shimmie2/trunk@712 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
parent
5ebc559595
commit
0effe70b6f
@ -16,6 +16,7 @@ class ImageIO extends Extension {
|
||||
$config->set_default_string('image_ilink', '$base/image/$id.$ext');
|
||||
$config->set_default_string('image_tlink', '$base/thumb/$id.jpg');
|
||||
$config->set_default_string('image_tip', '$tags // $size // $filesize');
|
||||
$config->set_default_string('upload_collision_handler', 'error');
|
||||
}
|
||||
|
||||
if(is_a($event, 'PageRequestEvent')) {
|
||||
@ -48,6 +49,7 @@ class ImageIO extends Extension {
|
||||
$sb->add_text_option("image_ilink", "Image link: ");
|
||||
$sb->add_text_option("image_tlink", "<br>Thumbnail link: ");
|
||||
$sb->add_text_option("image_tip", "<br>Image tooltip: ");
|
||||
$sb->add_choice_option("upload_collision_handler", array('Error'=>'error', 'Merge'=>'merge'), "<br>Upload collision handler: ");
|
||||
$event->panel->add_block($sb);
|
||||
|
||||
$thumbers = array();
|
||||
@ -72,11 +74,6 @@ class ImageIO extends Extension {
|
||||
}
|
||||
// }}}
|
||||
// add image {{{
|
||||
private function is_dupe($hash) {
|
||||
global $database;
|
||||
return $database->db->GetRow("SELECT * FROM images WHERE hash=?", array($hash));
|
||||
}
|
||||
|
||||
private function add_image($image) {
|
||||
global $page;
|
||||
global $user;
|
||||
@ -101,10 +98,17 @@ class ImageIO extends Extension {
|
||||
*/
|
||||
$existing = $database->get_image_by_hash($image->hash);
|
||||
if(!is_null($existing)) {
|
||||
$handler = $config->get_string("upload_collision_handler");
|
||||
if($handler == "merge") {
|
||||
send_event(new TagSetEvent($existing->id, array_merge($image->get_tag_array(), $existing->get_tag_array())));
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
$error = "Image <a href='".make_link("post/view/{$existing->id}")."'>{$existing->id}</a> ".
|
||||
"already has hash {$image->hash}:<p>".Themelet::build_thumb_html($existing);
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
|
||||
// actually insert the info
|
||||
$database->Execute(
|
||||
|
Loading…
x
Reference in New Issue
Block a user