aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/admin.php331
1 files changed, 163 insertions, 168 deletions
diff --git a/engine/lib/admin.php b/engine/lib/admin.php
index f09167bfa..0c687e255 100644
--- a/engine/lib/admin.php
+++ b/engine/lib/admin.php
@@ -1,177 +1,172 @@
<?php
- /**
- * Elgg admin functions.
- * Functions for adding and manipulating options on the admin panel.
- *
- * @package Elgg
- * @subpackage Core
-
- * @author Curverider Ltd
-
- * @link http://elgg.org/
- */
-
-
- /**
- * Register an admin page with the admin panel.
- * This function extends the view "admin/main" with the provided view. This view should provide a description
- * and either a control or a link to.
- *
- * Usage:
- * - To add a control to the main admin panel then extend admin/main
- * - To add a control to a new page create a page which renders a view admin/subpage (where subpage is your new page -
- * nb. some pages already exist that you can extend), extend the main view to point to it, and add controls to your
- * new view.
- *
- * At the moment this is essentially a wrapper around extend_view.
- *
- * @param string $new_admin_view The view associated with the control you're adding
- * @param string $view The view to extend, by default this is 'admin/main'.
- * @param int $priority Optional priority to govern the appearance in the list.
- */
- function extend_elgg_admin_page( $new_admin_view, $view = 'admin/main', $priority = 500)
- {
- return extend_view($view, $new_admin_view, $priority);
- }
-
- /**
- * Initialise the admin page.
- */
- function admin_init()
- {
- // Add plugin main menu option (last)
- extend_elgg_admin_page('admin/main_opt/statistics', 'admin/main');
- extend_elgg_admin_page('admin/main_opt/site', 'admin/main');
- extend_elgg_admin_page('admin/main_opt/user', 'admin/main');
- extend_elgg_admin_page('admin/main_opt/plugins', 'admin/main', 999); // Always last
-
- register_action('admin/user/ban', false, "", true);
- register_action('admin/user/unban', false, "", true);
- register_action('admin/user/delete', false, "", true);
- register_action('admin/user/resetpassword', false, "", true);
- register_action('admin/user/makeadmin', false, "", true);
- register_action('admin/user/removeadmin', false, "", true);
-
- // Register some actions
- register_action('admin/site/update_basic', false, "", true); // Register basic site admin action
-
- // Page handler
- register_page_handler('admin','admin_settings_page_handler');
-
- if (isadminloggedin()) {
- global $is_admin;
- $is_admin = true;
- }
-
- }
-
- function admin_pagesetup() {
-
- if (get_context() == 'admin') {
-
- global $CONFIG;
- add_submenu_item(elgg_echo('admin:statistics'), $CONFIG->wwwroot . 'pg/admin/statistics/');
- add_submenu_item(elgg_echo('admin:site'), $CONFIG->wwwroot . 'pg/admin/site/');
- add_submenu_item(elgg_echo('admin:user'), $CONFIG->wwwroot . 'pg/admin/user/');
- add_submenu_item(elgg_echo('admin:plugins'), $CONFIG->wwwroot . 'pg/admin/plugins/');
-
- }
-
+/**
+ * Elgg admin functions.
+ * Functions for adding and manipulating options on the admin panel.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+
+/**
+ * Register an admin page with the admin panel.
+ * This function extends the view "admin/main" with the provided view. This view should provide a description
+ * and either a control or a link to.
+ *
+ * Usage:
+ * - To add a control to the main admin panel then extend admin/main
+ * - To add a control to a new page create a page which renders a view admin/subpage
+ * (where subpage is your new page -
+ * nb. some pages already exist that you can extend), extend the main view to point to it,
+ * and add controls to your new view.
+ *
+ * At the moment this is essentially a wrapper around extend_view.
+ *
+ * @param string $new_admin_view The view associated with the control you're adding
+ * @param string $view The view to extend, by default this is 'admin/main'.
+ * @param int $priority Optional priority to govern the appearance in the list.
+ */
+function extend_elgg_admin_page( $new_admin_view, $view = 'admin/main', $priority = 500) {
+ return extend_view($view, $new_admin_view, $priority);
+}
+
+/**
+ * Initialise the admin page.
+ */
+function admin_init() {
+ // Add plugin main menu option (last)
+ extend_elgg_admin_page('admin/main_opt/statistics', 'admin/main');
+ extend_elgg_admin_page('admin/main_opt/site', 'admin/main');
+ extend_elgg_admin_page('admin/main_opt/user', 'admin/main');
+ extend_elgg_admin_page('admin/main_opt/plugins', 'admin/main', 999); // Always last
+
+ register_action('admin/user/ban', false, "", true);
+ register_action('admin/user/unban', false, "", true);
+ register_action('admin/user/delete', false, "", true);
+ register_action('admin/user/resetpassword', false, "", true);
+ register_action('admin/user/makeadmin', false, "", true);
+ register_action('admin/user/removeadmin', false, "", true);
+
+ // Register some actions
+ register_action('admin/site/update_basic', false, "", true); // Register basic site admin action
+
+ // Page handler
+ register_page_handler('admin','admin_settings_page_handler');
+
+ if (isadminloggedin()) {
+ global $is_admin;
+ $is_admin = true;
}
-
- function admin_settings_page_handler($page)
- {
+}
+
+/**
+ * Add submenu items for admin page.
+ *
+ * @return unknown_type
+ */
+function admin_pagesetup() {
+ if (get_context() == 'admin') {
global $CONFIG;
-
- $path = $CONFIG->path . "admin/index.php";
-
- if ($page[0])
- {
- switch ($page[0])
- {
- case 'user' : $path = $CONFIG->path . "admin/user.php"; break;
- case 'statistics' : $path = $CONFIG->path . "admin/statistics.php"; break;
- case 'plugins' : $path = $CONFIG->path . "admin/plugins.php"; break;
- case 'site' : $path = $CONFIG->path . "admin/site.php"; break;
- }
- }
-
- if ($page[1])
- set_input('username', $page[1]);
-
- include($path);
+
+ add_submenu_item(elgg_echo('admin:statistics'), $CONFIG->wwwroot . 'pg/admin/statistics/');
+ add_submenu_item(elgg_echo('admin:site'), $CONFIG->wwwroot . 'pg/admin/site/');
+ add_submenu_item(elgg_echo('admin:user'), $CONFIG->wwwroot . 'pg/admin/user/');
+ add_submenu_item(elgg_echo('admin:plugins'), $CONFIG->wwwroot . 'pg/admin/plugins/');
}
-
-
- /**
- * Admin permissions system
- *
- * @return true|null True if the current user is an admin.
- */
- function admin_permissions($hook, $type, $returnval, $params) {
-
- if (is_array($params) && !empty($params['user']) && $params['user'] instanceof ElggUser) {
- $admin = $params['user']->admin;
- if ($admin) {
- return true;
- }
+}
+
+/**
+ * Handle admin pages.
+ *
+ * @param $page
+ * @return unknown_type
+ */
+function admin_settings_page_handler($page) {
+ global $CONFIG;
+
+ $path = $CONFIG->path . "admin/index.php";
+
+ if ($page[0]) {
+ switch ($page[0]) {
+ case 'user' : $path = $CONFIG->path . "admin/user.php"; break;
+ case 'statistics' : $path = $CONFIG->path . "admin/statistics.php"; break;
+ case 'plugins' : $path = $CONFIG->path . "admin/plugins.php"; break;
+ case 'site' : $path = $CONFIG->path . "admin/site.php"; break;
}
-
}
-
- /**
- * Write a persistent message to the administrator's notification window.
- *
- * Currently this writes a message to the admin store, we may want to come up with another way at some point.
- *
- * @param string $subject Subject of the message
- * @param string $message Body of the message
- */
- function send_admin_message($subject, $message)
- {
- $subject = sanitise_string($subject);
- $message = sanitise_string($message);
-
- if (($subject) && ($message))
- {
- $admin_message = new ElggObject();
- $admin_message->subtype = 'admin_message';
- $admin_message->access_id = ACCESS_PUBLIC;
- $admin_message->title = $subject;
- $admin_message->description = $message;
-
- return $admin_message->save();
- }
-
- return false;
+
+ if ($page[1]) {
+ set_input('username', $page[1]);
}
-
- /**
- * List all admin messages.
- *
- * @param int $limit Limit
- */
- function list_admin_messages($limit = 10)
- {
- return list_entities('object','admin_message',0,$limit);
+
+ include($path);
+}
+
+
+/**
+ * Admin permissions system
+ *
+ * @return true|null True if the current user is an admin.
+ */
+function admin_permissions($hook, $type, $returnval, $params) {
+ if (is_array($params) && !empty($params['user']) && $params['user'] instanceof ElggUser) {
+
+ $admin = $params['user']->admin;
+ if ($admin) {
+ return true;
+ }
}
-
- /**
- * Remove an admin message.
- *
- * @param int $guid The
- */
- function clear_admin_message($guid)
- {
- return delete_entity($guid);
+}
+
+/**
+ * Write a persistent message to the administrator's notification window.
+ *
+ * Currently this writes a message to the admin store, we may want to come up with another way at some point.
+ *
+ * @param string $subject Subject of the message
+ * @param string $message Body of the message
+ */
+function send_admin_message($subject, $message) {
+ $subject = sanitise_string($subject);
+ $message = sanitise_string($message);
+
+ if (($subject) && ($message)) {
+ $admin_message = new ElggObject();
+ $admin_message->subtype = 'admin_message';
+ $admin_message->access_id = ACCESS_PUBLIC;
+ $admin_message->title = $subject;
+ $admin_message->description = $message;
+
+ return $admin_message->save();
}
-
- /// Register init functions
- register_elgg_event_handler('init','system','admin_init');
- register_elgg_event_handler('pagesetup','system','admin_pagesetup');
-
- // Register a plugin hook for permissions
- register_plugin_hook('permissions_check','all','admin_permissions');
- register_plugin_hook('container_permissions_check','all','admin_permissions');
-
-?>
+
+ return false;
+}
+
+/**
+ * List all admin messages.
+ *
+ * @param int $limit Limit
+ */
+function list_admin_messages($limit = 10) {
+ return list_entities('object', 'admin_message', 0, $limit);
+}
+
+/**
+ * Remove an admin message.
+ *
+ * @param int $guid The
+ */
+function clear_admin_message($guid) {
+ return delete_entity($guid);
+}
+
+/// Register init functions
+register_elgg_event_handler('init','system','admin_init');
+register_elgg_event_handler('pagesetup','system','admin_pagesetup');
+
+// Register a plugin hook for permissions
+register_plugin_hook('permissions_check','all','admin_permissions');
+register_plugin_hook('container_permissions_check','all','admin_permissions'); \ No newline at end of file