diff --git a/ext/approval/main.php b/ext/approval/main.php index 496ea73e..48f067a6 100644 --- a/ext/approval/main.php +++ b/ext/approval/main.php @@ -41,6 +41,11 @@ class Approval extends Extension } } + public function onSetupBuilding(SetupBuildingEvent $event) + { + $this->theme->display_admin_block($event); + } + public function onAdminBuilding(AdminBuildingEvent $event) { $this->theme->display_admin_form(); @@ -98,21 +103,23 @@ class Approval extends Extension const SEARCH_REGEXP = "/^approved:(yes|no)/"; public function onSearchTermParse(SearchTermParseEvent $event) { - global $user, $database; + global $user, $database, $config; - $matches = []; + if($config->get_bool(ApprovalConfig::IMAGES)) { + $matches = []; - if (is_null($event->term) && $this->no_approval_query($event->context)) { - $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y "))); - } - - - if (preg_match(self::SEARCH_REGEXP, strtolower($event->term), $matches)) { - if ($user->can(Permissions::APPROVE_IMAGE)&&$matches[1]=="no") { - $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_N "))); - } else { + if (is_null($event->term) && $this->no_approval_query($event->context)) { $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y "))); } + + + if (preg_match(self::SEARCH_REGEXP, strtolower($event->term), $matches)) { + if ($user->can(Permissions::APPROVE_IMAGE) && $matches[1] == "no") { + $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_N "))); + } else { + $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y "))); + } + } } } @@ -151,17 +158,17 @@ class Approval extends Extension } public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) { - global $user; - if ($event->image->approved===false && $user->can(Permissions::APPROVE_IMAGE)) { + global $user, $config; + if ($event->image->approved===false && $user->can(Permissions::APPROVE_IMAGE) && $config->get_bool(ApprovalConfig::IMAGES)) { $event->add_part($this->theme->get_image_admin_html($event->image->id)); } } public function onBulkActionBlockBuilding(BulkActionBlockBuildingEvent $event) { - global $user; + global $user, $config; - if ($user->can(Permissions::APPROVE_IMAGE)&&in_array("approved:no", $event->search_terms)) { + if ($user->can(Permissions::APPROVE_IMAGE)&&in_array("approved:no", $event->search_terms)&& $config->get_bool(ApprovalConfig::IMAGES)) { $event->add_action("bulk_approve_image", "Approve", "a"); } } diff --git a/ext/approval/theme.php b/ext/approval/theme.php index bb55a646..5c807f8c 100644 --- a/ext/approval/theme.php +++ b/ext/approval/theme.php @@ -29,9 +29,17 @@ class ApprovalTheme extends Themelet '; } + public function display_admin_block(SetupBuildingEvent $event) + { + $sb = new SetupBlock("Approval"); + $sb->add_bool_option(ApprovalConfig::IMAGES, "Images: "); + $event->panel->add_block($sb); + } + public function display_admin_form() { global $page; + $html = make_form(make_link("admin/approval"), "POST"); $html .= "
"; $html .= "";