diff options
Diffstat (limited to 'mod/categories')
| -rw-r--r-- | mod/categories/actions/save.php | 19 | ||||
| -rw-r--r-- | mod/categories/activate.php | 11 | ||||
| -rw-r--r-- | mod/categories/deactivate.php | 6 | ||||
| -rw-r--r-- | mod/categories/languages/en.php | 2 | ||||
| -rw-r--r-- | mod/categories/manifest.xml | 8 | ||||
| -rw-r--r-- | mod/categories/pages/categories/listing.php (renamed from mod/categories/listing.php) | 11 | ||||
| -rw-r--r-- | mod/categories/start.php | 41 | ||||
| -rw-r--r-- | mod/categories/views/default/input/categories.php | 10 | ||||
| -rw-r--r-- | mod/categories/views/default/plugins/categories/settings.php (renamed from mod/categories/views/default/settings/categories/edit.php) | 9 |
9 files changed, 79 insertions, 38 deletions
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 @@ -<?php -/** - * Saves the available categories for the site - * - * @note The categories for an object are saved through an event handler: categories_save() - * - * @package ElggCategories - */ - -$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/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 @@ +<?php +/** + * Prompt the user to add categories after activating + */ + +//categories_admin_notice_no_categories +$site = get_config('site'); +if (!$site->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/deactivate.php b/mod/categories/deactivate.php new file mode 100644 index 000000000..e15e2c6e9 --- /dev/null +++ b/mod/categories/deactivate.php @@ -0,0 +1,6 @@ +<?php +/** + * Remove admin notice to populate categories. + */ + +elgg_delete_admin_notice('categories_admin_notice_no_categories'); diff --git a/mod/categories/languages/en.php b/mod/categories/languages/en.php index 1954ba8d9..422fe81a4 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! <a href=\"%s\">Add categories now.</a>", + 'categories:on_activate_reminder' => "Site-wide Categories won't work until you add categories. <a href=\"%s\">Add categories now.</a>", ); add_translation("en", $english);
\ No newline at end of file diff --git a/mod/categories/manifest.xml b/mod/categories/manifest.xml index 43df13d02..4a6bd0864 100644 --- a/mod/categories/manifest.xml +++ b/mod/categories/manifest.xml @@ -4,14 +4,14 @@ <author>Core developers</author> <version>1.8</version> <category>bundled</category> + <category>enhancement</category> <blurb>Add site-wide categories</blurb> <description>Site-wide Categories lets administrators define categories that users across the site can add content to.</description> <website>http://www.elgg.org/</website> <copyright>See COPYRIGHT.txt</copyright> - <license>GNU Public License version 2</license> + <license>GNU General Public License version 2</license> <requires> - <type>elgg_version</type> - <version>2010030101</version> + <type>elgg_release</type> + <version>1.8</version> </requires> - <admin_interface>advanced</admin_interface> </plugin_manifest> diff --git a/mod/categories/listing.php b/mod/categories/pages/categories/listing.php index abbcf6785..d51e6c19e 100644 --- a/mod/categories/listing.php +++ b/mod/categories/pages/categories/listing.php @@ -15,8 +15,8 @@ $type = get_input("type", 'object'); $params = array( 'metadata_name' => 'universal_categories', 'metadata_value' => $category, - 'types' => $type, - 'subtypes' => $subtype, + 'type' => $type, + 'subtype' => $subtype, 'owner_guid' => $owner_guid, 'limit' => $limit, 'full_view' => FALSE, @@ -29,6 +29,11 @@ $title = elgg_echo('categories:results', array($category)); $content = elgg_view_title($title); $content .= $objects; -$body = elgg_view_layout('two_column_left_sidebar', '', $content); +$body = elgg_view_layout('content', array( + 'content' => $content, + 'title' => $title, + 'filter' => '', + 'header' => '', +)); echo elgg_view_page($title, $body); diff --git a/mod/categories/start.php b/mod/categories/start.php index ff5b01efc..0aacf11e7 100644 --- a/mod/categories/start.php +++ b/mod/categories/start.php @@ -15,23 +15,24 @@ 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'); } /** - * Page handler - * + * Category page handler + * @return bool */ function categories_page_handler() { - include(dirname(__FILE__) . "/listing.php"); - return TRUE; + include(dirname(__FILE__) . "/pages/categories/listing.php"); + return true; } /** @@ -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..b543cde45 100644 --- a/mod/categories/views/default/input/categories.php +++ b/mod/categories/views/default/input/categories.php @@ -10,6 +10,12 @@ if (isset($vars['entity']) && $vars['entity'] instanceof ElggEntity) { $selected_categories = $vars['entity']->universal_categories; } + +// use sticky values if set +if (isset($vars['universal_categories_list'])) { + $selected_categories = $vars['universal_categories_list']; +} + $categories = elgg_get_site_entity()->categories; if (empty($categories)) { $categories = array(); @@ -23,6 +29,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;')); + ?> <div class="categories"> diff --git a/mod/categories/views/default/settings/categories/edit.php b/mod/categories/views/default/plugins/categories/settings.php index 583292e72..3802da95a 100644 --- a/mod/categories/views/default/settings/categories/edit.php +++ b/mod/categories/views/default/plugins/categories/settings.php @@ -14,8 +14,9 @@ if (empty($categories)) { } ?> -<p> - <?php echo elgg_echo('categories:explanation'); ?> -</p> +<div> + <p><?php echo elgg_echo('categories:explanation'); ?></p> <?php -echo elgg_view('input/tags', array('value' => $categories, 'name' => 'categories')); + echo elgg_view('input/tags', array('value' => $categories, 'name' => 'categories')); +?> +</div>
\ No newline at end of file |
