diff options
Diffstat (limited to 'modules/gallery/controllers/photos.php')
-rw-r--r-- | modules/gallery/controllers/photos.php | 41 |
1 files changed, 16 insertions, 25 deletions
diff --git a/modules/gallery/controllers/photos.php b/modules/gallery/controllers/photos.php index ba4cfb83..455ac25c 100644 --- a/modules/gallery/controllers/photos.php +++ b/modules/gallery/controllers/photos.php @@ -76,42 +76,33 @@ class Photos_Controller extends Items_Controller { if ($form->edit_item->filename->value != $photo->name || $form->edit_item->slug->value != $photo->slug) { // Make sure that there's not a name or slug conflict - if ($row = Database::instance() - ->select(array("name", "slug")) - ->from("items") - ->where("parent_id", $photo->parent_id) - ->where("id <>", $photo->id) - ->open_paren() - ->where("name", $form->edit_item->filename->value) - ->orwhere("slug", $form->edit_item->slug->value) - ->close_paren() - ->get() - ->current()) { - if ($row->name == $form->edit_item->filename->value) { - $form->edit_item->filename->add_error("name_conflict", 1); - } - if ($row->slug == $form->edit_item->slug->value) { - $form->edit_item->slug->add_error("slug_conflict", 1); - } - $valid = false; + $errors = item::check_for_conflicts( + $photo, $form->edit_item->filename->value, $form->edit_item->slug->value); + + if (!empty($errors["name_conflict"])) { + $form->edit_item->filename->add_error("name_conflict", 1); + } + if (!empty($errors["slug_conflict"])) { + $form->edit_item->slug->add_error("slug_conflict", 1); } + $valid = empty($errors); } } if ($valid) { $watching_album = $photo->url() != ($location = parse_url(request::referrer(), PHP_URL_PATH)); - $photo->title = $form->edit_item->title->value; - $photo->description = $form->edit_item->description->value; - $photo->slug = $form->edit_item->slug->value; - $photo->rename($form->edit_item->filename->value); - $photo->save(); + $new_values = array("title" => $form->edit_item->title->value, + "description" => $form->edit_item->description->value, + "name" => $form->edit_item->filename->value, + "slug" => $form->edit_item->slug->value); + item::update($photo, $new_values); + module::event("item_edit_form_completed", $photo, $form); log::success("content", "Updated photo", "<a href=\"{$photo->url()}\">view</a>"); message::success( - t("Saved photo %photo_title", - array("photo_title" => html::purify($photo->title)))); + t("Saved photo %photo_title", array("photo_title" => html::purify($photo->title)))); print json_encode( array("result" => "success", |