mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-08-22 23:05:18 -04:00
Add the 'Internet Address' field to all items, along with proper
validation for the fields.
This commit is contained in:
@@ -168,15 +168,27 @@ class Albums_Controller extends Items_Controller {
|
||||
|
||||
$form = album::get_edit_form($album);
|
||||
if ($valid = $form->validate()) {
|
||||
// Make sure that there's not a conflict
|
||||
if ($album->id != 1 &&
|
||||
Database::instance()
|
||||
$form->edit_item->dirname->value != $album->name ||
|
||||
$form->edit_item->slug->value != $album->slug) {
|
||||
// Make sure that there's not a conflict
|
||||
$row = Database::instance()
|
||||
->select(array("name", "slug"))
|
||||
->from("items")
|
||||
->where("parent_id", $album->parent_id)
|
||||
->where("id <>", $album->id)
|
||||
->open_paren()
|
||||
->where("name", $form->edit_item->dirname->value)
|
||||
->count_records()) {
|
||||
$form->edit_item->dirname->add_error("conflict", 1);
|
||||
->orwhere("slug", $form->edit_item->slug->value)
|
||||
->close_paren()
|
||||
->get()
|
||||
->current();
|
||||
if ($row->name == $form->edit_item->dirname->value) {
|
||||
$form->edit_item->dirname->add_error("name_conflict", 1);
|
||||
}
|
||||
if ($row->slug == $form->edit_item->slug->value) {
|
||||
$form->edit_item->slug->add_error("slug_conflict", 1);
|
||||
}
|
||||
$valid = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,14 +72,26 @@ class Movies_Controller extends Items_Controller {
|
||||
|
||||
$form = photo::get_edit_form($photo);
|
||||
if ($valid = $form->validate()) {
|
||||
// Make sure that there's not a conflict
|
||||
if (Database::instance()
|
||||
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
|
||||
$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)
|
||||
->count_records()) {
|
||||
$form->edit_item->filename->add_error("conflict", 1);
|
||||
->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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,18 +62,29 @@ class Photos_Controller extends Items_Controller {
|
||||
access::required("edit", $photo);
|
||||
|
||||
$form = photo::get_edit_form($photo);
|
||||
$valid = $form->validate();
|
||||
if ($valid = $form->validate()) {
|
||||
if ($form->edit_item->filename->value != $photo->name) {
|
||||
// Make sure that there's not a conflict
|
||||
if (Database::instance()
|
||||
->from("items")
|
||||
->where("parent_id", $photo->parent_id)
|
||||
->where("id <>", $photo->id)
|
||||
->where("name", $form->edit_item->filename->value)
|
||||
->count_records()) {
|
||||
$form->edit_item->filename->add_error("conflict", 1);
|
||||
$valid = false;
|
||||
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
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -97,10 +97,14 @@ class album_Core {
|
||||
->label(t("Add an album to %album_title", array("album_title" => $parent->title)));
|
||||
$group->input("title")->label(t("Title"));
|
||||
$group->textarea("description")->label(t("Description"));
|
||||
$group->input("name")->label(t("Directory Name"))
|
||||
$group->input("name")->label(t("Directory name"))
|
||||
->callback("item::validate_no_slashes")
|
||||
->error_messages("no_slashes", t("The directory name can't contain the \"/\" character"));
|
||||
$group->input("slug")->label(t("Internet Address"));
|
||||
$group->input("slug")->label(t("Internet Address"))
|
||||
->callback("item::validate_url_safe")
|
||||
->error_messages(
|
||||
"not_url_safe",
|
||||
t("The internet address should contain only letters, numbers, hyphens and underscores"));
|
||||
$group->hidden("type")->value("album");
|
||||
$group->submit("")->value(t("Create"));
|
||||
$form->add_rules_from(ORM::factory("item"));
|
||||
@@ -119,11 +123,18 @@ class album_Core {
|
||||
if ($parent->id != 1) {
|
||||
$group->input("dirname")->label(t("Directory Name"))->value($parent->name)
|
||||
->rules("required")
|
||||
->error_messages("name_conflict", t("There is already a photo or album with this name"))
|
||||
->callback("item::validate_no_slashes")
|
||||
->error_messages("no_slashes", t("The directory name can't contain a \"/\""))
|
||||
->callback("item::validate_no_trailing_period")
|
||||
->error_messages("no_trailing_period", t("The directory name can't end in \".\""));
|
||||
$group->input("slug")->label(t("Internet Address"))->value($parent->slug);
|
||||
$group->input("slug")->label(t("Internet Address"))->value($parent->slug)
|
||||
->error_messages(
|
||||
"slug_conflict", t("There is already a photo or album with this internet address"))
|
||||
->callback("item::validate_url_safe")
|
||||
->error_messages(
|
||||
"not_url_safe",
|
||||
t("The internet address should contain only letters, numbers, hyphens and underscores"));
|
||||
}
|
||||
|
||||
$sort_order = $group->group("sort_order", array("id" => "gAlbumSortOrder"))
|
||||
|
||||
@@ -144,7 +144,11 @@ class photo_Core {
|
||||
$group->input("title")->label(t("Title"));
|
||||
$group->textarea("description")->label(t("Description"));
|
||||
$group->input("name")->label(t("Filename"));
|
||||
$group->input("slug")->label(t("Internet Address"))->value($photo->slug);
|
||||
$group->input("slug")->label(t("Internet Address"))->value($photo->slug)
|
||||
->callback("item::validate_url_safe")
|
||||
->error_messages(
|
||||
"not_url_safe",
|
||||
t("The internet address should contain only letters, numbers, hyphens and underscores"));
|
||||
$group->upload("file")->label(t("File"))->rules("required|allow[jpg,png,gif,flv,mp4]");
|
||||
$group->hidden("type")->value("photo");
|
||||
$group->submit("")->value(t("Upload"));
|
||||
@@ -159,12 +163,18 @@ class photo_Core {
|
||||
$group->input("title")->label(t("Title"))->value($photo->title);
|
||||
$group->textarea("description")->label(t("Description"))->value($photo->description);
|
||||
$group->input("filename")->label(t("Filename"))->value($photo->name)
|
||||
->error_messages("conflict", t("There is already a file with this name"))
|
||||
->error_messages("name_conflict", t("There is already a photo or album with this name"))
|
||||
->callback("item::validate_no_slashes")
|
||||
->error_messages("no_slashes", t("The photo name can't contain a \"/\""))
|
||||
->callback("item::validate_no_trailing_period")
|
||||
->error_messages("no_trailing_period", t("The photo name can't end in \".\""));
|
||||
$group->input("slug")->label(t("Internet Address"))->value($photo->slug);
|
||||
$group->input("slug")->label(t("Internet Address"))->value($photo->slug)
|
||||
->callback("item::validate_url_safe")
|
||||
->error_messages(
|
||||
"slug_conflict", t("There is already a photo or album with this internet address"))
|
||||
->error_messages(
|
||||
"not_url_safe",
|
||||
t("The internet address should contain only letters, numbers, hyphens and underscores"));
|
||||
|
||||
module::event("item_edit_form", $photo, $form);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user