From 2dace654a99396ab674f50829046ed703d3a36be Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Wed, 24 Aug 2011 15:22:49 -0700 Subject: Refs #3746. Updated categories for 1.8. Still some deprecation notices, but functional. --- mod/categories/actions/save.php | 19 ------------- mod/categories/activate.php | 11 ++++++++ mod/categories/languages/en.php | 2 +- mod/categories/start.php | 33 ++++++++++++++++++++-- mod/categories/views/default/input/categories.php | 4 +++ .../views/default/plugins/categories/settings.php | 22 +++++++++++++++ .../views/default/settings/categories/edit.php | 22 --------------- 7 files changed, 68 insertions(+), 45 deletions(-) delete mode 100644 mod/categories/actions/save.php create mode 100644 mod/categories/activate.php create mode 100644 mod/categories/views/default/plugins/categories/settings.php delete mode 100644 mod/categories/views/default/settings/categories/edit.php (limited to 'mod/categories') diff --git a/mod/categories/actions/save.php b/mod/categories/actions/save.php deleted file mode 100644 index 26222a030..000000000 --- a/mod/categories/actions/save.php +++ /dev/null @@ -1,19 +0,0 @@ -categories = $categories; -system_message(elgg_echo("categories:save:success")); - -elgg_delete_admin_notice('categories_admin_notice_no_categories'); - -forward(REFERER); \ No newline at end of file diff --git a/mod/categories/activate.php b/mod/categories/activate.php new file mode 100644 index 000000000..80159d089 --- /dev/null +++ b/mod/categories/activate.php @@ -0,0 +1,11 @@ +categories) { + $message = elgg_echo('categories:on_activate_reminder', array(elgg_normalize_url('admin/plugin_settings/categories'))); + elgg_add_admin_notice('categories_admin_notice_no_categories', $message); +} \ No newline at end of file diff --git a/mod/categories/languages/en.php b/mod/categories/languages/en.php index 1954ba8d9..eaa65b13e 100644 --- a/mod/categories/languages/en.php +++ b/mod/categories/languages/en.php @@ -9,7 +9,7 @@ $english = array( 'categories:explanation' => 'To set some predefined site-wide categories that will be used throughout your system, enter them below, separated with commas. Compatible tools will then display them when the user creates or edits content.', 'categories:save:success' => 'Site categories were successfully saved.', 'categories:results' => "Results for the site category: %s", - 'categories:on_enable_reminder' => "You haven't added any categories yet! Add categories now.", + 'categories:on_activate_reminder' => "Site-wide Cateogires won't work until you add categories. Add categories now.", ); add_translation("en", $english); \ No newline at end of file diff --git a/mod/categories/start.php b/mod/categories/start.php index ff5b01efc..2ccea0d70 100644 --- a/mod/categories/start.php +++ b/mod/categories/start.php @@ -15,13 +15,14 @@ function categories_init() { elgg_extend_view('css/elgg', 'categories/css'); - $action_base = elgg_get_plugins_path() . 'categories/actions'; - elgg_register_action('settings/categories/save', "$action_base/save.php", 'admin'); - elgg_register_page_handler('categories', 'categories_page_handler'); elgg_register_event_handler('update', 'all', 'categories_save'); elgg_register_event_handler('create', 'all', 'categories_save'); + + // To keep the category plugins in the settings area and because we have to do special stuff, + // handle saving ourself. + elgg_register_plugin_hook_handler('action', 'plugins/settings/save', 'categories_save_site_categories'); } @@ -54,3 +55,29 @@ function categories_save($event, $object_type, $object) { } return TRUE; } + +/** + * Saves the site categories. + * + * @param type $hook + * @param type $type + * @param type $value + * @param type $params + */ +function categories_save_site_categories($hook, $type, $value, $params) { + $plugin_id = get_input('plugin_id'); + if ($plugin_id != 'categories') { + return $value; + } + + $categories = get_input('categories'); + $categories = string_to_tag_array($categories); + + $site = elgg_get_site_entity(); + $site->categories = $categories; + system_message(elgg_echo("categories:save:success")); + + elgg_delete_admin_notice('categories_admin_notice_no_categories'); + + forward(REFERER); +} \ No newline at end of file diff --git a/mod/categories/views/default/input/categories.php b/mod/categories/views/default/input/categories.php index 1f71dc0b4..75960d257 100644 --- a/mod/categories/views/default/input/categories.php +++ b/mod/categories/views/default/input/categories.php @@ -23,6 +23,10 @@ if (!empty($categories)) { $categories = array($categories); } + // checkboxes want Label => value, so in our case we need category => category + $categories = array_flip($categories); + array_walk($categories, create_function('&$v, $k', '$v = $k;')); + ?>
diff --git a/mod/categories/views/default/plugins/categories/settings.php b/mod/categories/views/default/plugins/categories/settings.php new file mode 100644 index 000000000..3802da95a --- /dev/null +++ b/mod/categories/views/default/plugins/categories/settings.php @@ -0,0 +1,22 @@ +categories; + +if (empty($categories)) { + $categories = array(); +} + +?> +
+

+ $categories, 'name' => 'categories')); +?> +
\ No newline at end of file diff --git a/mod/categories/views/default/settings/categories/edit.php b/mod/categories/views/default/settings/categories/edit.php deleted file mode 100644 index 3802da95a..000000000 --- a/mod/categories/views/default/settings/categories/edit.php +++ /dev/null @@ -1,22 +0,0 @@ -categories; - -if (empty($categories)) { - $categories = array(); -} - -?> -
-

- $categories, 'name' => 'categories')); -?> -
\ No newline at end of file -- cgit v1.2.3