]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Merged 18_new_admin branch to trunk.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 5 May 2010 19:14:48 +0000 (19:14 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 5 May 2010 19:14:48 +0000 (19:14 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5977 36083f99-b078-4883-b0ff-0f9b5a30f544

95 files changed:
actions/admin/plugins/disable.php
actions/admin/plugins/disableall.php
actions/admin/plugins/enable.php
actions/admin/plugins/enableall.php
actions/admin/plugins/reorder.php
actions/admin/plugins/simple_update_states.php [new file with mode: 0644]
actions/admin/site/update_advanced.php [new file with mode: 0644]
actions/admin/site/update_basic.php
actions/login.php
actions/plugins/settings/save.php
actions/register.php
actions/systemsettings/install.php
admin/index.php
admin/menu_items.php [deleted file]
admin/plugins.php [deleted file]
admin/site.php [deleted file]
admin/statistics.php [deleted file]
admin/user.php [deleted file]
engine/lib/actions.php
engine/lib/admin.php
engine/lib/plugins.php
engine/lib/sessions.php
languages/en.php
mod/blog/manifest.xml
mod/blog/views/default/blog/forms/edit.php
mod/bookmarks/manifest.xml
mod/captcha/manifest.xml
mod/categories/actions/save.php
mod/categories/languages/en.php
mod/categories/manifest.xml
mod/categories/start.php
mod/categories/views/default/categories/css.php
mod/categories/views/default/categories/settings.php [deleted file]
mod/categories/views/default/categories/settingsform.php [deleted file]
mod/categories/views/default/settings/categories/edit.php [moved from mod/categories/settings.php with 50% similarity]
mod/crontrigger/manifest.xml
mod/custom_index/manifest.xml
mod/defaultwidgets/manifest.xml
mod/diagnostics/manifest.xml
mod/ecml/manifest.xml
mod/ecml/start.php
mod/ecml/views/default/settings/ecml/edit.php [moved from mod/ecml/views/default/ecml/admin/ecml_admin.php with 92% similarity]
mod/embed/manifest.xml
mod/externalpages/manifest.xml
mod/file/manifest.xml
mod/friends/manifest.xml
mod/garbagecollector/manifest.xml
mod/groups/manifest.xml
mod/htmlawed/manifest.xml
mod/invitefriends/manifest.xml
mod/logbrowser/manifest.xml
mod/logrotate/manifest.xml
mod/members/manifest.xml
mod/messageboard/manifest.xml
mod/messages/manifest.xml
mod/notifications/manifest.xml
mod/pages/manifest.xml
mod/profile/manifest.xml
mod/reportedcontent/manifest.xml
mod/riverdashboard/manifest.xml
mod/search/manifest.xml
mod/sitepages/manifest.xml
mod/tagcloud/manifest.xml
mod/thewire/manifest.xml
mod/tinymce/manifest.xml
mod/twitter/manifest.xml
mod/uservalidationbyemail/manifest.xml
mod/walledgarden/manifest.xml
mod/zaudio/manifest.xml
views/default/admin/appearance/menu_items.php [moved from views/default/admin/menu_items.php with 97% similarity]
views/default/admin/components/admin_page_layout.php [new file with mode: 0644]
views/default/admin/components/plugin.php [moved from views/default/admin/plugins_opt/plugin.php with 94% similarity]
views/default/admin/components/plugin_settings.php [new file with mode: 0644]
views/default/admin/components/sidemenu.php [new file with mode: 0644]
views/default/admin/main.php [deleted file]
views/default/admin/main_opt/plugins.php [deleted file]
views/default/admin/main_opt/site.php [deleted file]
views/default/admin/main_opt/statistics.php [deleted file]
views/default/admin/main_opt/user.php [deleted file]
views/default/admin/overview.php [moved from views/default/admin/statistics_opt/basic.php with 53% similarity]
views/default/admin/overview/numentities.php [moved from views/default/admin/statistics.php with 89% similarity]
views/default/admin/overview/online.php [moved from views/default/admin/statistics_opt/online.php with 99% similarity]
views/default/admin/plugins/advanced.php [moved from views/default/admin/plugins.php with 54% similarity]
views/default/admin/plugins/simple.php [new file with mode: 0644]
views/default/admin/site.php [deleted file]
views/default/admin/site/advanced.php [new file with mode: 0644]
views/default/admin/site/basic.php [new file with mode: 0644]
views/default/admin/statistics_opt/numentities.php [deleted file]
views/default/admin/user.php [deleted file]
views/default/admin/user_opt/adduser.php [deleted file]
views/default/admin/users/add.php [new file with mode: 0644]
views/default/admin/users/find.php [moved from views/default/admin/user_opt/search.php with 98% similarity]
views/default/admin/users/online.php [new file with mode: 0644]
views/default/css.php
views/default/object/admin_notice.php [new file with mode: 0644]

index d5042e2bf271e13e12290205ddd76fe83306ef99..ac80d46e39dfe966e906bfa628917418f66f2e40 100644 (file)
@@ -21,6 +21,7 @@ foreach ($plugin as $p) {
        // Disable
        if (disable_plugin($p)) {
                system_message(sprintf(elgg_echo('admin:plugins:disable:yes'), $p));
+               elgg_delete_admin_notice('first_installation_plugin_reminder');
        } else {
                register_error(sprintf(elgg_echo('admin:plugins:disable:no'), $p));
        }
@@ -30,4 +31,3 @@ elgg_view_regenerate_simplecache();
 elgg_filepath_cache_reset();
 
 forward($_SERVER['HTTP_REFERER']);
-exit;
index 70a945ee451e645fce096949272b9a527fdbdaf2..80553e9d1af2c7cd1f1c979af6ad40c882e0b99d 100644 (file)
@@ -16,6 +16,7 @@ $plugins = get_installed_plugins();
 foreach ($plugins as $p => $data) {
        // Disable
        if (disable_plugin($p)) {
+               elgg_delete_admin_notice('first_installation_plugin_reminder');
                system_message(sprintf(elgg_echo('admin:plugins:disable:yes'), $p));
        } else {
                register_error(sprintf(elgg_echo('admin:plugins:disable:no'), $p));
@@ -26,4 +27,3 @@ elgg_view_regenerate_simplecache();
 elgg_filepath_cache_reset();
 
 forward($_SERVER['HTTP_REFERER']);
-exit;
index b5286336b8ec40f50b8077d3e39dc5044a740daa..053fbc556d64ddd6dc5eb01bbcaf2446ccabe343 100644 (file)
@@ -11,8 +11,8 @@
 // block non-admin users
 admin_gatekeeper();
 
-// Get the plugin
 $plugin = get_input('plugin');
+
 if (!is_array($plugin)) {
        $plugin = array($plugin);
 }
@@ -20,6 +20,7 @@ if (!is_array($plugin)) {
 foreach ($plugin as $p) {
        // Disable
        if (enable_plugin($p)) {
+               elgg_delete_admin_notice('first_installation_plugin_reminder');
                system_message(sprintf(elgg_echo('admin:plugins:enable:yes'), $p));
        } else {
                register_error(sprintf(elgg_echo('admin:plugins:enable:no'), $p));
@@ -29,5 +30,4 @@ foreach ($plugin as $p) {
 elgg_view_regenerate_simplecache();
 elgg_filepath_cache_reset();
 
-forward($_SERVER['HTTP_REFERER']);
-exit;
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file
index ea4b48f9531a429e0700e99801a1d751e21d3560..d1758a4b3e7bc80b3a9e25c39c0b7927be70d118 100644 (file)
@@ -16,6 +16,7 @@ $plugins = get_installed_plugins();
 foreach ($plugins as $p => $data) {
        // Enable
        if (enable_plugin($p)) {
+               elgg_delete_admin_notice('first_installation_plugin_reminder');
                system_message(sprintf(elgg_echo('admin:plugins:enable:yes'), $p));
        } else {
                register_error(sprintf(elgg_echo('admin:plugins:enable:no'), $p));
@@ -26,5 +27,4 @@ foreach ($plugins as $p => $data) {
 elgg_view_regenerate_simplecache();
 elgg_filepath_cache_reset();
 
-forward($_SERVER['HTTP_REFERER']);
-exit;
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file
index 6050a585fccb721a080a6e7dd4d12d7c86b857d9..6423dc14c5b20ac703654f33f123068443d4a85e 100644 (file)
@@ -13,8 +13,8 @@ admin_gatekeeper();
 
 // Get the plugin
 $mod = get_input('plugin');
-$mod = str_replace('.','',$mod);
-$mod = str_replace('/','',$mod);
+$mod = str_replace('.', '', $mod);
+$mod = str_replace('/', '', $mod);
 
 // Get the new order
 $order = (int) get_input('order');
@@ -35,6 +35,7 @@ if ($key = array_search($mod, $plugins)) {
 
 // Disable
 if (regenerate_plugin_list($plugins)) {
+       elgg_delete_admin_notice('first_installation_plugin_reminder');
        system_message(sprintf(elgg_echo('admin:plugins:reorder:yes'), $plugin));
 } else {
        register_error(sprintf(elgg_echo('admin:plugins:reorder:no'), $plugin));
diff --git a/actions/admin/plugins/simple_update_states.php b/actions/admin/plugins/simple_update_states.php
new file mode 100644 (file)
index 0000000..197f183
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Elgg administration simple plugin bulk enable / disable
+ *
+ * Shows an alphabetical list of "simple" plugins.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$installed_plugins = get_installed_plugins();
+$enabled_plugins = get_input('enabled_plugins', array());
+
+$success = TRUE;
+
+foreach ($installed_plugins as $plugin => $info) {
+       // this is only for simple plugins.
+       if (!isset($info['manifest']['admin_interface']) || $info['manifest']['admin_interface'] != 'simple') {
+               continue;
+       }
+
+       $plugin_enabled = is_plugin_enabled($plugin);
+
+       // only effect changes to plugins not already in that state.
+       if ($plugin_enabled && !in_array($plugin, $enabled_plugins)) {
+               $success = $success && disable_plugin($plugin);
+       } elseif (!$plugin_enabled && in_array($plugin, $enabled_plugins)) {
+               $success = $success && enable_plugin($plugin);
+       }
+}
+
+if ($success) {
+       elgg_delete_admin_notice('first_installation_plugin_reminder');
+       system_message(elgg_echo('admin:plugins:simple_simple_success'));
+} else {
+       register_error(elgg_echo('admins:plugins:simple_simple_fail'));
+}
+
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file
diff --git a/actions/admin/site/update_advanced.php b/actions/admin/site/update_advanced.php
new file mode 100644 (file)
index 0000000..c9b78c2
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Elgg update site action
+ *
+ * This is an update version of the sitesettings/install action
+ * which is used by the admin panel to modify basic settings.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+admin_gatekeeper();
+
+if (datalist_get('default_site')) {
+       $site = get_entity(datalist_get('default_site'));
+       if (!($site instanceof ElggSite)) {
+               throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
+       }
+
+       $site->url = get_input('wwwroot');
+
+       datalist_set('path', sanitise_filepath(get_input('path')));
+       datalist_set('dataroot', sanitise_filepath(get_input('dataroot')));
+
+       if (get_input('simplecache_enabled')) {
+               elgg_view_enable_simplecache();
+       } else {
+               elgg_view_disable_simplecache();
+       }
+
+       if (get_input('viewpath_cache_enabled')) {
+               elgg_enable_filepath_cache();
+       } else {
+               elgg_disable_filepath_cache();
+       }
+
+       set_config('default_access', get_input('default_access', ACCESS_PRIVATE), $site->getGUID());
+
+       $user_default_access = (get_input('allow_user_default_access')) ? 1 : 0;
+       set_config('allow_user_default_access', $user_default_access, $site->getGUID());
+
+       set_config('view', get_input('view'), $site->getGUID());
+
+       $debug = get_input('debug');
+       if ($debug) {
+               set_config('debug', $debug, $site->getGUID());
+       } else {
+               unset_config('debug', $site->getGUID());
+       }
+
+       $https_login = get_input('https_login');
+       if ($https_login) {
+               set_config('https_login', 1, $site->getGUID());
+       } else {
+               unset_config('https_login', $site->getGUID());
+       }
+
+       $api = get_input('api');
+       if ($api) {
+               unset_config('disable_api', $site->getGUID());
+       } else {
+               set_config('disable_api', 'disabled', $site->getGUID());
+       }
+
+       if ($site->save()) {
+               system_message(elgg_echo("admin:configuration:success"));
+       } else {
+               register_error(elgg_echo("admin:configuration:fail"));
+       }
+
+       forward($_SERVER['HTTP_REFERER']);
+}
\ No newline at end of file
index d9fa8f36769a60ff588476a235d9c7f374f7a35b..5914ab0b543a84b89672b8f11c3987a023bd91c7 100644 (file)
  * @link http://elgg.org/
  */
 
-global $CONFIG;
-
-// block non-admin users
 admin_gatekeeper();
 
-if (get_input('settings') == 'go') {
-       if (datalist_get('default_site')) {
-               $site = get_entity(datalist_get('default_site'));
-               if (!($site instanceof ElggSite)) {
-                       throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
-               }
-
-               $site->description = get_input('sitedescription');
-               $site->name = get_input('sitename');
-               $site->email = get_input('siteemail');
-               $site->url = get_input('wwwroot');
-
-               datalist_set('path',sanitise_filepath(get_input('path')));
-               datalist_set('dataroot',sanitise_filepath(get_input('dataroot')));
-               if (get_input('simplecache_enabled')) {
-                       elgg_view_enable_simplecache();
-               } else {
-                       elgg_view_disable_simplecache();
-               }
-               if (get_input('viewpath_cache_enabled')) {
-                       elgg_enable_filepath_cache();
-               } else {
-                       elgg_disable_filepath_cache();
-               }
-
-               set_config('language', get_input('language'), $site->getGUID());
-
-               set_config('default_access', get_input('default_access'), $site->getGUID());
-
-               if (get_input('allow_user_default_access')) {
-                       set_config('allow_user_default_access', 1, $site->getGUID());
-               } else {
-                       set_config('allow_user_default_access', 0, $site->getGUID());
-               }
-
-               set_config('view', get_input('view'), $site->getGUID());
-
-               $debug = get_input('debug');
-               if ($debug) {
-                       set_config('debug', $debug, $site->getGUID());
-               } else {
-                       unset_config('debug', $site->getGUID());
-               }
-
-               $https_login = get_input('https_login');
-               if ($https_login) {
-                       set_config('https_login', 1, $site->getGUID());
-               } else {
-                       unset_config('https_login', $site->getGUID());
-               }
-
-               $usage = get_input('usage');
-               if ($usage) {
-                       unset_config('ping_home', $site->getGUID());
-               } else {
-                       set_config('ping_home', 'disabled', $site->getGUID());
-               }
+if (datalist_get('default_site')) {
+       $site = get_entity(datalist_get('default_site'));
+       if (!($site instanceof ElggSite)) {
+               throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
+       }
 
-               $api = get_input('api');
-               if ($api) {
-                       unset_config('disable_api', $site->getGUID());
-               } else {
-                       set_config('disable_api', 'disabled', $site->getGUID());
-               }
+       $site->description = get_input('sitedescription');
+       $site->name = get_input('sitename');
+       $site->email = get_input('siteemail');
+       $site->save();
 
-               if ($site->save()) {
-                       system_message(elgg_echo("admin:configuration:success"));
-               } else {
-                       register_error(elgg_echo("admin:configuration:fail"));
-               }
+       set_config('language', get_input('language'), $site->getGUID());
 
-               forward($_SERVER['HTTP_REFERER']);
-               exit;
-       }
-}
+       forward($_SERVER['HTTP_REFERER']);
+       exit;
+}
\ No newline at end of file
index fed45fbc571e88e5791406abd9de0809f0d3941f..ef6b0b8984f08a22a2f6a2cfb7ee585c429176c6 100644 (file)
@@ -35,12 +35,7 @@ if ($result) {
                unset($_SESSION['last_forward_from']);
                forward($forward_url);
        } else {
-               if ((isadminloggedin()) && (!datalist_get('first_admin_login'))) {
-                       system_message(elgg_echo('firstadminlogininstructions'));
-                       datalist_set('first_admin_login', time());
-
-                       forward('pg/admin/plugins');
-               } else if (get_input('returntoreferer')) {
+               if (get_input('returntoreferer')) {
                        forward($_SERVER['HTTP_REFERER']);
                } else {
                        // forward to index for front page overrides.
index bbbb6a367d0d09935b1173b5f132ed5398706713..6aa47b60ef592dae2ce2cb5aef494feb0675793b 100644 (file)
 
 $params = get_input('params');
 $plugin = get_input('plugin');
+if (!$plugin_info = load_plugin_manifest($plugin)) {
+       register_error(sprintf(elgg_echo('plugins:settings:save:fail'), $plugin));
+       forward($_SERVER['HTTP_REFERER']);
+}
+
+$plugin_name = $plugin_info['name'];
 
-gatekeeper();
+admin_gatekeeper();
 
 $result = false;
 
-foreach ($params as $k => $v) {
-       // Save
-       $result = set_plugin_setting($k, $v, $plugin);
+$options = array(
+       'plugin' => $plugin,
+       'manifest' => $plugin_info,
+       'settings' => $params
+);
 
-       // Error?
-       if (!$result) {
-               register_error(sprintf(elgg_echo('plugins:settings:save:fail'), $plugin));
-               forward($_SERVER['HTTP_REFERER']);
-               exit;
+// allow a plugin to override the save action for their settings
+if (elgg_action_exist("settings/$plugin/save")) {
+       action("settings/$plugin/save");
+} else {
+       foreach ($params as $k => $v) {
+               if (!$result = set_plugin_setting($k, $v, $plugin)) {
+                       register_error(sprintf(elgg_echo('plugins:settings:save:fail'), $plugin_name));
+                       forward($_SERVER['HTTP_REFERER']);
+                       exit;
+               }
        }
 }
 
-system_message(sprintf(elgg_echo('plugins:settings:save:ok'), $plugin));
+system_message(sprintf(elgg_echo('plugins:settings:save:ok'), $plugin_name));
 forward($_SERVER['HTTP_REFERER']);
+//
+//$trigger = trigger_plugin_hook('plugin:save_settings', $plugin, $options, NULL);
+//if ($trigger === NULL) {
+//     foreach ($params as $k => $v) {
+//             if (!$result = set_plugin_setting($k, $v, $plugin)) {
+//                     register_error(sprintf(elgg_echo('plugins:settings:save:fail'), $plugin_name));
+//                     forward($_SERVER['HTTP_REFERER']);
+//                     exit;
+//             }
+//     }
+//} elseif ($trigger === FALSE) {
+//     register_error(sprintf(elgg_echo('plugins:settings:save:fail'), $plugin_name));
+//     forward($_SERVER['HTTP_REFERER']);
+//}
+//
+//system_message(sprintf(elgg_echo('plugins:settings:save:ok'), $plugin_name));
+//forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file
index efbc3def3bf3553c2bbf5077fcba43e3031619b8..081a4e4542b2bcb1bd74f479684b6475dbc01bd4 100644 (file)
@@ -53,7 +53,21 @@ if (!$CONFIG->disable_registration) {
                        system_message(sprintf(elgg_echo("registerok"),$CONFIG->sitename));
 
                        // Forward on success, assume everything else is an error...
-                       forward();
+                       // If just registered admin user, login the user in and forward to the
+                       // plugins simple settings page.
+                       if (!datalist_get('first_admin_login')) {
+                               login($new_user);
+                               // remove the "you've registered!" system_message();
+                               $_SESSION['msg']['messages'] = array();
+
+                               // remind users to enable / disable desired tools
+                               elgg_add_admin_notice('first_installation_plugin_reminder', elgg_echo('firstadminlogininstructions'));
+
+                               datalist_set('first_admin_login', time());
+                               forward('pg/admin/plugins/simple');
+                       } else {
+                               forward();
+                       }
                } else {
                        register_error(elgg_echo("registerbad"));
                }
index 18440c62d8912b24d49a5959de34a277723eeb06..589e3a06ca403b27d4b45f114af483bc43506f19 100644 (file)
  * @link http://elgg.org/
  */
 
+global $CONFIG;
 define('INSTALLING', TRUE);
-elgg_set_viewtype('failsafe'); // Set failsafe again incase we get an exception thrown
+
+// Set failsafe again in case we get an exception thrown
+elgg_set_viewtype('failsafe');
 
 if (is_installed()) {
        forward();
@@ -43,7 +46,6 @@ if (get_input('settings') == 'go') {
                $site->name = get_input('sitename');
                $site->url = $url;
                $site->description = get_input('sitedescription');
-               $site->email = get_input('siteemail');
                $site->access_id = ACCESS_PUBLIC;
                $guid = $site->save();
 
@@ -51,6 +53,12 @@ if (get_input('settings') == 'go') {
                        throw new InstallationException(sprintf(elgg_echo('InstallationException:CantCreateSite'), get_input('sitename'), get_input('wwwroot')));
                }
 
+               $site->email = get_input('siteemail');
+
+               // this is needed to grab plugins
+               $CONFIG->site_guid = $guid;
+               $CONFIG->site = $site;
+
                datalist_set('installed',time());
                datalist_set('path', $path);
                datalist_set('dataroot', $dataroot);
@@ -94,16 +102,18 @@ if (get_input('settings') == 'go') {
                                enable_plugin(trim($plugin), $site->getGUID());
                        }
                } else {
-                       enable_plugin('profile', $site->getGUID());
-                       enable_plugin('logbrowser', $site->getGUID());
-                       enable_plugin('diagnostics', $site->getGUID());
-                       enable_plugin('uservalidationbyemail', $site->getGUID());
-                       enable_plugin('htmlawed', $site->getGUID());
-                       enable_plugin('search', $site->getGUID());
+                       // activate plugins with manifest.xml: elgg_install_state = enabled
+                       $plugins = get_plugin_list();
+                       foreach ($plugins as $plugin) {
+                               if ($manifest = load_plugin_manifest($plugin)) {
+                                       if (isset($manifest['elgg_install_state']) && $manifest['elgg_install_state'] == 'enabled') {
+                                               enable_plugin($plugin);
+                                       }
+                               }
+                       }
                }
 
                // reset the views path in case of installing over an old data dir.
-               // @todo should this warn / error first?
                $dataroot = datalist_get('dataroot');
                $cache = new ElggFileCache($dataroot);
                $cache->delete('view_paths');
index 4ee1902135f843467e4872bdcd6f307bfb1ffd59..1d41306b6c9725cc9c75c729aa7e7f757b6973d6 100644 (file)
@@ -13,4 +13,4 @@ require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
 
 // Make sure only valid admin users can see this
 admin_gatekeeper();
-forward('pg/admin/statistics/');
\ No newline at end of file
+forward('pg/admin/overview/');
\ No newline at end of file
diff --git a/admin/menu_items.php b/admin/menu_items.php
deleted file mode 100644 (file)
index 5642957..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Elgg administration menu items
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-admin_gatekeeper();
-
-$vars = array(
-       'menu_items' => get_register('menu')
-);
-
-$main_box = elgg_view("admin/menu_items", $vars);
-$content = elgg_view_layout("one_column_with_sidebar", $main_box);
-
-page_draw(elgg_echo('admin:plugins'), $content);
\ No newline at end of file
diff --git a/admin/plugins.php b/admin/plugins.php
deleted file mode 100644 (file)
index 39478f1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Elgg administration plugin system index
- * This is a special page that permits the configuration of plugins in a standard way.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-admin_gatekeeper();
-regenerate_plugin_list();
-
-$show_category = get_input('category', NULL);
-
-// Get a list of the all categories
-// and trim down the plugin list if we're not viewing all categories.
-// @todo this could be cached somewhere after have the manifest loaded
-$categories = array();
-$installed_plugins = get_installed_plugins();
-
-foreach ($installed_plugins as $i => $plugin) {
-       $plugin_categories = $plugin['manifest']['category'];
-
-       // handle plugins that don't declare categories
-       if ((!$plugin_categories && $show_category) || ($show_category && !in_array($show_category, $plugin_categories))) {
-               unset($installed_plugins[$i]);
-       }
-
-       foreach ($plugin_categories as $category) {
-               if (!array_key_exists($category, $categories)) {
-                       $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category");
-               }
-       }
-}
-
-// Display main admin menu
-$vars = array(
-       'installed_plugins' => $installed_plugins,
-       'categories' => $categories,
-       'show_category' => $show_category
-);
-
-$main_box = elgg_view("admin/plugins", $vars);
-$content = elgg_view_layout("one_column_with_sidebar", $main_box);
-
-page_draw(elgg_echo('admin:plugins'), $content);
diff --git a/admin/site.php b/admin/site.php
deleted file mode 100644 (file)
index aed9523..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Elgg administration site system index
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Get the Elgg framework
-require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-
-// Make sure only valid admin users can see this
-admin_gatekeeper();
-
-// Display main admin menu
-
-$title = elgg_view_title(elgg_echo('admin:site'));
-$main_box = elgg_view("admin/site");
-$content = elgg_view_layout("one_column_with_sidebar", $title . $main_box);
-
-page_draw(elgg_echo("admin:site"), $content);
\ No newline at end of file
diff --git a/admin/statistics.php b/admin/statistics.php
deleted file mode 100644 (file)
index 9823995..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Elgg administration statistics index
- * This is a special page that displays a number of statistics
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Get the Elgg framework
-require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-
-// Make sure only valid admin users can see this
-admin_gatekeeper();
-
-// Display main admin menu
-$title = elgg_view_title(elgg_echo('admin:statistics'));
-$main_box = elgg_view("admin/statistics");
-$content = elgg_view_layout("one_column_with_sidebar", $title . $main_box);
-
-page_draw(elgg_echo("admin:statistics"), $content);
\ No newline at end of file
diff --git a/admin/user.php b/admin/user.php
deleted file mode 100644 (file)
index c0d63d7..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Elgg administration user system index
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Get the Elgg framework
-require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-
-// Make sure only valid admin users can see this
-admin_gatekeeper();
-
-// Are we performing a search
-$search = get_input('s');
-$limit = get_input('limit', 10);
-$offset = get_input('offset', 0);
-
-$context = get_context();
-
-$title = elgg_view_title(elgg_echo('admin:user'));
-
-set_context('search');
-
-$result = "<div class='members_list'>".elgg_list_entities(array('type' => 'user', 'limit' => $limit, 'offset' => $offset, 'full_view' => FALSE))."</div>";
-
-set_context('admin');
-
-// Display main admin menu
-page_draw(elgg_echo("admin:user"),
-       elgg_view_layout("one_column_with_sidebar", $title . elgg_view("admin/user") . $result));
index 7e8e43f40773c5c14b93ef5b104ffbb4337fd597..304179828f3a34bb701ac2430fb9f3f577d01cbe 100644 (file)
@@ -236,5 +236,18 @@ function get_site_secret() {
        return $secret;
 }
 
+/**
+ * Check if an action is registered and its file exists.
+ *
+ * @param string $action
+ * @return BOOL
+ * @since 1.8
+ */
+function elgg_action_exist($action) {
+       global $CONFIG;
+
+       return (isset($CONFIG->actions[$action]) && file_exists($CONFIG->actions[$action]['file']));
+}
+
 // Register some actions ***************************************************
 register_elgg_event_handler("init","system","actions_init");
index 8d9ffeba0992503bae49b24738aa6fc39a33af21..73e891332c31c6e77fcaa1f60310e69a9576d8d3 100644 (file)
  * @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 elgg_extend_view($view, $new_admin_view, $priority);
+function extend_elgg_admin_page($new_admin_view, $view = 'admin/main', $priority = 500) {
+       elgg_deprecated_notice('extend_elgg_admin_page() does nothing now. Extend admin views manually.  See http://docs.elgg.org/', 1.8);
+       //return elgg_extend_view($view, $new_admin_view, $priority);
 }
 
 /**
- * Initialise the admin page.
+ * Add an admin area section or child section (aka tab).
+ *
+ * Used in conjuction with http://elgg.org/admin/section/child_section style
+ * page handler.
+ *
+ * @param string $section_id Globally unique section id.
+ * @param string $section_title Human readable section title.
+ * @param string $parent_id If a child section, the parent section id.  Cannot have grandchildren.
  */
-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_action('admin/site/update_basic', false, "", true);
-       register_action('admin/menu_items', false, "", true);
-
-
-       // Page handler
-       register_page_handler('admin', 'admin_settings_page_handler');
+function elgg_add_admin_section($section_id, $section_title, $parent_id = NULL) {
+       global $CONFIG;
+
+       if (!isset($CONFIG->admin_sections)) {
+               $CONFIG->admin_sections = array();
+       }
+
+       // have to support adding a child section to a missing parent
+       // because of plugin order problems.  A plugin can extend
+       // an admin section added by different plugin lower in the load priority.
+       if ($parent_id) {
+               if (!isset($CONFIG->admin_sections[$parent_id])) {
+                       $CONFIG->admin_sections[$parent_id] = array('children' => array());
+               }
+
+               if (!isset($CONFIG->admin_sections[$parent_id][$section_id])) {
+                       $CONFIG->admin_sections[$parent_id]['children'][$section_id] = array('title' => $section_title);
+                       return TRUE;
+               } else {
+                       return FALSE;
+               }
+       } else {
+               // children can be defined before parents
+               if (!isset($CONFIG->admin_sections[$section_id])) {
+                       $CONFIG->admin_sections[$section_id] = array(
+                               'title' => $section_title,
+                               'children' => array()
+                       );
+                       return TRUE;
+               } else {
+                       // allow to define this since children can be defined before the parent.
+                       $CONFIG->admin_sections[$section_id] = array(
+                               'title' => $section_title
+                       );
+               }
+       }
 }
 
 /**
- * Add submenu items for admin page.
- *
- * @return unknown_type
+ * Initialise the admin page.
  */
-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/');
-               add_submenu_item(elgg_echo('admin:menu_items'), $CONFIG->wwwroot . 'pg/admin/menu_items/');
-       }
+function admin_init() {
+       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_action('admin/site/update_basic', FALSE, "", TRUE);
+       register_action('admin/site/update_advanced', FALSE, "", TRUE);
+
+       register_action('admin/menu_items', FALSE, "", TRUE);
+
+       register_action('admin/plugins/simple_update_states', FALSE, '', TRUE);
+
+
+       // admin area overview and basic site settings
+       elgg_add_admin_section('overview', elgg_echo('admin:overview'));
+       elgg_add_admin_section('site', elgg_echo('admin:site'));
+       elgg_add_admin_section('basic', elgg_echo('admin:site:basic'), 'site');
+       elgg_add_admin_section('advanced', elgg_echo('admin:site:advanced'), 'site');
+
+       // appearance
+       elgg_add_admin_section('appearance', elgg_echo('admin:appearance'));
+       //elgg_add_admin_section('basic', elgg_echo('admin:appearance'), 'appearance');
+       elgg_add_admin_section('menu_items', elgg_echo('admin:menu_items'), 'appearance');
+
+       // users
+       elgg_add_admin_section('users', elgg_echo('admin:users'));
+       elgg_add_admin_section('online', elgg_echo('admin:users:online'), 'users');
+       elgg_add_admin_section('add', elgg_echo('admin:users:add'), 'users');
+       elgg_add_admin_section('find', elgg_echo('admin:users:find'), 'users');
+
+       // plugins
+       elgg_add_admin_section('plugins', elgg_echo('admin:plugins'));
+       elgg_add_admin_section('simple', elgg_echo('admin:plugins:simple'), 'plugins');
+       elgg_add_admin_section('advanced', elgg_echo('admin:plugins:advanced'), 'plugins');
+
+       // handled in the admin sidemenu so we don't have to generate this on every page load.
+       //elgg_add_admin_section('plugin_settings', elgg_echo('admin:plugin_settings'));
+
+       register_page_handler('admin', 'admin_settings_page_handler');
 }
 
 /**
- * Handle admin pages.
+ * Handle admin pages.  Expects corresponding views as admin/section/subsection
  *
  * @param $page
  * @return unknown_type
@@ -82,72 +137,124 @@ function admin_pagesetup() {
 function admin_settings_page_handler($page) {
        global $CONFIG;
 
-       $path = $CONFIG->path . "admin/index.php";
+       admin_gatekeeper();
 
-       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;
-                       case 'menu_items' : $path = $CONFIG->path . 'admin/menu_items.php'; break;
-               }
+       // default to overview
+       if (!isset($page[0]) || empty($page[0])) {
+               $page = array('overview');
        }
 
-       if ($page[1]) {
-               set_input('username', $page[1]);
+       // was going to fix this in the page_handler() function but
+       // it's commented to explicitly return a string if there's a trailing /
+       if (empty($page[count($page)-1])) {
+               array_pop($page);
        }
 
-       include($path);
+       $vars = array('page' => $page);
+
+       // special page for plugin settings since we create the form for them
+       if ($page[0] == 'plugin_settings' && isset($page[1]) && elgg_view_exists("settings/{$page[1]}/edit")) {
+               $view = '/admin/components/plugin_settings';
+               $vars['plugin'] = $page[1];
+               $vars['entity'] = find_plugin_settings($page[1]);
+               $title = elgg_echo("admin:plugin_settings:{$page[1]}");
+       } else {
+               $view = 'admin/' . implode('/', $page);
+               $title = elgg_echo('admin:' .  implode(':', $page));
+       }
+
+       // allow a place to store helper views outside of the web-accessible views
+       if ($page[0] == 'components' || !($content = elgg_view($view, $vars))) {
+               $title = elgg_echo('admin:unknown_section');
+               $content = elgg_echo('admin:unknown_section');
+       }
+
+       $body = elgg_view('admin/components/admin_page_layout', array('content' => $content, 'page' => $page));
+       page_draw($title, $body);
 }
 
 /**
- * Write a persistent message to the administrator's notification window.
+ * Write a persistent message to the admin view.
+ * Useful to alert the admin to take a certain action.
+ * The id is a unique ID that can be cleared once the admin
+ * completes the action.
  *
- * Currently this writes a message to the admin store, we may want to come up with another way at some point.
+ * eg: add_admin_notice('twitter_service_no_api',
+ *     'Before your users can use Twitter services on this site, you must set up
+ *     the Twitter API key in the <a href="link">Twitter Services Settings</a>');
  *
- * @param string $subject Subject of the message
+ * @param string $id A unique ID that your plugin can remember
  * @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();
+function elgg_add_admin_notice($id, $message) {
+       if ($id && $message) {
+               $admin_notice = new ElggObject();
+               $admin_notice->subtype = 'admin_notice';
+               // admins can see ACCESS_PRIVATE but no one else can.
+               $admin_notice->access_id = ACCESS_PRIVATE;
+               $admin_notice->admin_notice_id = $id;
+               $admin_notice->description = $message;
+
+               return $admin_notice->save();
        }
 
        return false;
 }
 
+
+/**
+ * Remove an admin notice by ID.
+ *
+ * eg In actions/twitter_service/save_settings:
+ *     if (is_valid_twitter_api_key()) {
+ *             delete_admin_notice('twitter_services_no_api');
+ *     }
+ *
+ * @param string $id The unique ID assigned in add_admin_notice()
+ */
+function elgg_delete_admin_notice($id) {
+       if (!$id) {
+               return FALSE;
+       }
+       $result = TRUE;
+       if ($notices = elgg_get_entities_from_metadata(array('metadata_name' => 'admin_notice_id', 'metadata_value' => $id))) {
+               // in case a bad plugin adds many, let it remove them all at once.
+               foreach ($notices as $notice) {
+                       $result = ($result && $notice->delete());
+               }
+               return $result;
+       }
+       return FALSE;
+}
+
 /**
  * List all admin messages.
  *
  * @param int $limit Limit
  */
-function list_admin_messages($limit = 10) {
-       return elgg_list_entities(array(
+function elgg_get_admin_notices($limit = 10) {
+       return elgg_get_entities_from_metadata(array(
                'type' => 'object',
-               'subtype' => 'admin_message',
+               'subtype' => 'admin_notice',
                'limit' => $limit
        ));
 }
 
 /**
- * Remove an admin message.
- *
- * @param int $guid The
+ * Check if an admin notice is currently active.
+ * @param string $id The unique ID used to register the notice.
  */
-function clear_admin_message($guid) {
-       return delete_entity($guid);
+function elgg_admin_notice_exists($id) {
+       $notice = elgg_get_entities_from_metadata(array(
+               'type' => 'object',
+               'subtype' => 'admin_notice',
+               'metadata_name_value_pair' => array('name' => 'admin_notice_id', 'value' => $id)
+       ));
+
+       return ($notice) ? TRUE : FALSE;
 }
 
-/// Register init functions
+
+// Register init functions
 register_elgg_event_handler('init', 'system', 'admin_init');
 register_elgg_event_handler('pagesetup', 'system', 'admin_pagesetup');
index 0e62914e22aaefee37410ef6cf41260246c89bec..b365585c8884a93da0119fa4a026e6c630a1f84c 100644 (file)
@@ -354,6 +354,11 @@ function load_plugin_manifest($plugin) {
                        }
                }
 
+               // handle plugins that don't define a name
+               if (!isset($elements['name'])) {
+                       $elements['name'] = ucwords($plugin);
+               }
+
                return $elements;
        }
 
@@ -677,6 +682,10 @@ function enable_plugin($plugin, $site_guid = 0) {
                throw new InvalidClassException(sprintf(elgg_echo('InvalidClassException:NotValidElggStar'), $site_guid, "ElggSite"));
        }
 
+       if (!$plugin_info = load_plugin_manifest($plugin)) {
+               return FALSE;
+       }
+
        // getMetadata() doesn't return an array if only one plugin is enabled
        if ($enabled = $site->enabled_plugins) {
                if (!is_array($enabled)) {
@@ -689,8 +698,42 @@ function enable_plugin($plugin, $site_guid = 0) {
        $enabled[] = $plugin;
        $enabled = array_unique($enabled);
 
-       $return = $site->setMetaData('enabled_plugins', $enabled);
-       $ENABLED_PLUGINS_CACHE = $enabled;
+       if ($return = $site->setMetaData('enabled_plugins', $enabled)) {
+
+               // for other plugins that want to hook into this.
+               if ($return && !trigger_elgg_event('enable', 'plugin', array('plugin' => $plugin, 'manifest' => $plugin_info))) {
+                       $return = FALSE;
+               }
+
+               // for this plugin's on_enable
+               if ($return && isset($plugin_info['on_enable'])) {
+                       // pull in the actual plugin's start so the on_enable function is callabe
+                       // NB: this will not run re-run the init hooks!
+                       $start = "{$CONFIG->pluginspath}$plugin/start.php";
+                       if (!file_exists($start) || !include($start)) {
+                               $return = FALSE;
+                       }
+
+                       // need language files for the messages
+                       $translations = "{$CONFIG->pluginspath}$plugin/languages/";
+                       register_translations($translations);
+                       if (!is_callable($plugin_info['on_enable'])) {
+                               $return = FALSE;
+                       } else {
+                               $on_enable = call_user_func($plugin_info['on_enable']);
+                               // allow null to mean "I don't care" like other subsystems
+                               $return = ($on_disable === FALSE) ? FALSE : TRUE;
+                       }
+               }
+
+               // disable the plugin if the on_enable or trigger results failed
+               if (!$return) {
+                       array_pop($enabled);
+                       $site->setMetaData('enabled_plugins', $enabled);
+               }
+
+               $ENABLED_PLUGINS_CACHE = $enabled;
+       }
 
        return $return;
 }
@@ -721,6 +764,10 @@ function disable_plugin($plugin, $site_guid = 0) {
                throw new InvalidClassException(sprintf(elgg_echo('InvalidClassException:NotValidElggStar'), $site_guid, "ElggSite"));
        }
 
+       if (!$plugin_info = load_plugin_manifest($plugin)) {
+               return FALSE;
+       }
+
        // getMetadata() doesn't return an array if only one plugin is enabled
        if ($enabled = $site->enabled_plugins) {
                if (!is_array($enabled)) {
@@ -730,6 +777,8 @@ function disable_plugin($plugin, $site_guid = 0) {
                $enabled = array();
        }
 
+       $old_enabled = $enabled;
+
        // remove the disabled plugin from the array
        if (FALSE !== $i = array_search($plugin, $enabled)) {
                unset($enabled[$i]);
@@ -738,7 +787,32 @@ function disable_plugin($plugin, $site_guid = 0) {
        // if we're unsetting all the plugins, this will return an empty array.
        // it will fail with FALSE, though.
        $return = (FALSE === $site->enabled_plugins = $enabled) ? FALSE : TRUE;
-       $ENABLED_PLUGINS_CACHE = $enabled;
+
+       if ($return) {
+               // for other plugins that want to hook into this.
+               if ($return && !trigger_elgg_event('disable', 'plugin', array('plugin' => $plugin, 'manifest' => $plugin_info))) {
+                       $return = FALSE;
+               }
+
+               // for this plugin's on_disable
+               if ($return && isset($plugin_info['on_disable'])) {
+                       if (!is_callable($plugin_info['on_disable'])) {
+                               $return = FALSE;
+                       } else {
+                               $on_disable = call_user_func($plugin_info['on_disable']);
+                               // allow null to mean "I don't care" like other subsystems
+                               $return = ($on_disable === FALSE) ? FALSE : TRUE;
+                       }
+               }
+
+               // disable the plugin if the on_enable or trigger results failed
+               if (!$return) {
+                       $site->enabled_plugins = $old_enabled;
+                       $ENABLED_PLUGINS_CACHE = $old_enabled;
+               } else {
+                       $ENABLED_PLUGINS_CACHE = $enabled;
+               }
+       }
 
        return $return;
 }
index f4b1fc69b2c9072c2c5d2a69786ba61192ac49cd..b5b68ebe01426ac42de565b389a96b9cb2da037d 100644 (file)
@@ -417,13 +417,6 @@ function login(ElggUser $user, $persistent = false) {
        set_last_login($_SESSION['guid']);
        reset_login_failure_count($user->guid); // Reset any previous failed login attempts
 
-       // Set admin shortcut flag if this is an admin
-//     if (isadminloggedin()) {
-//             //@todo REMOVE THIS.
-//             global $is_admin;
-//             $is_admin = true;
-//     }
-
        return true;
 }
 
index aab05c8f4a041e4abc923a35751d7011958bd5bb..83a7c5159c3a5f86617ff829142e6f9ea09122bd 100644 (file)
@@ -382,7 +382,7 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
        'registerbad' => "Your registration was unsuccessful. The username may already exist, your passwords might not match, or your username or password may be too short.",
        'registerdisabled' => "Registration has been disabled by the system administrator",
 
-       'firstadminlogininstructions' => 'Your new Elgg site has been successfully installed and your administrator account created. You can now configure your site further by enabling various installed plugin tools.',
+       'firstadminlogininstructions' => "Enable and disable plugins to customize your new Elgg site! (Remember to hit 'Save' when you're done.)",
 
        'registration:notemail' => 'The email address you provided does not appear to be a valid email address.',
        'registration:userexists' => 'That username already exists',
@@ -436,19 +436,29 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
        'admin:configuration:success' => "Your settings have been saved.",
        'admin:configuration:fail' => "Your settings could not be saved.",
 
+       'admin:unknown_section' => 'Invalid Admin Section.',
+
        'admin' => "Administration",
        'admin:description' => "The admin panel allows you to control all aspects of the system, from user management to how plugins behave. Choose an option below to get started.",
 
-       'admin:user' => "User Administration",
-       'admin:user:description' => "This admin panel allows you to control user settings for your site. Choose an option below to get started.",
-       'admin:user:adduser:label' => "Click here to add a new user...",
-       'admin:user:opt:linktext' => "Configure users...",
-       'admin:user:opt:description' => "Configure users and account information. ",
+       'admin:overview' => 'Overview',
+
+       'admin:appearance' => 'Appearance',
+
+       'admin:users' => "Users",
+       'admin:users:online' => 'Currently Online',
+       'admin:users:add' => 'Add',
+       'admin:users:description' => "This admin panel allows you to control user settings for your site. Choose an option below to get started.",
+       'admin:users:adduser:label' => "Click here to add a new user...",
+       'admin:users:opt:linktext' => "Configure users...",
+       'admin:users:opt:description' => "Configure users and account information. ",
+       'admin:users:find' => 'Find',
 
-       'admin:site' => "Site Administration",
+       'admin:site' => "Site Settings",
+       'admin:site:basic' => 'Basic',
+       'admin:site:advanced' => 'Advanced',
        'admin:site:description' => "This admin panel allows you to control global settings for your site. Choose an option below to get started.",
        'admin:site:opt:linktext' => "Configure site...",
-       'admin:site:opt:description' => "Configure the site technical and non-technical settings. ",
        'admin:site:access:warning' => "Changing the access setting only affects the permissions on content created in the future.",
 
 /**
@@ -460,7 +470,7 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
        'plugins:usersettings:save:fail' => "There was a problem saving  user settings for the %s plugin.",
        'item:object:plugin' => 'Plugin configuration settings',
 
-       'admin:plugins' => "Tool Administration",
+       'admin:plugins' => "Plugins",
        'admin:plugins:description' => "This admin panel allows you to control and configure tools installed on your site.",
        'admin:plugins:opt:linktext' => "Configure tools...",
        'admin:plugins:opt:description' => "Configure the tools installed on the site. ",
@@ -481,6 +491,14 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
        'admin:plugins:enable:yes' => "Plugin %s was enabled successfully.",
        'admin:plugins:enable:no' => "Plugin %s could not be enabled.",
        'admin:plugins:categories:all' => 'All categories',
+       'admin:plugins:plugin_website' => 'Plugin website',
+       'admin:plugins:author' => '%s',
+       'admin:plugins:version' => 'Version %s',
+       'admin:plugins:simple' => 'Simple',
+       'admin:plugins:advanced' => 'Advanced',
+       'admin:plugin_settings' => 'Plugin Settings',
+       'admin:plugins:simple_simple_fail' => 'Could not save settings.',
+       'admin:plugins:simple_simple_success' => 'Settings saved.',
 
        'admin:statistics' => "Statistics",
        'admin:statistics:description' => "This is an overview of statistics on your site. If you need more detailed statistics, a professional administration feature is available.",
@@ -555,6 +573,7 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
  */
 
        'save' => "Save",
+       'reset' => 'Reset',
        'publish' => "Publish",
        'cancel' => "Cancel",
        'saving' => "Saving ...",
@@ -742,12 +761,12 @@ Alternatively, you can enter your database settings below and we will try and do
 
        'installation:settings:dbwizard:savefail' => "We were unable to save the new settings.php. Please save the following file as engine/settings.php using a text editor.",
 
-       'installation:sitename' => "The name of your site (eg \"My social networking site\"):",
-       'installation:sitedescription' => "Short description of your site (optional)",
-       'installation:wwwroot' => "The site URL, followed by a trailing slash:",
-       'installation:path' => "The full path to your site root on your disk, followed by a trailing slash:",
-       'installation:dataroot' => "The full path to the directory where uploaded files will be stored, followed by a trailing slash:",
-       'installation:dataroot:warning' => "You must create this directory manually. It should sit in a different directory to your Elgg installation.",
+       'installation:sitename' => "The name of your site:",
+       'installation:sitedescription' => "Short description of your site (optional):",
+       'installation:wwwroot' => "The site URL:",
+       'installation:path' => "The full path of the Elgg installation:",
+       'installation:dataroot' => "The full path the data directory:",
+       'installation:dataroot:warning' => "You must create this directory manually. It should be in a different directory to your Elgg installation.",
        'installation:sitepermissions' => "The default access permissions:",
        'installation:language' => "The default language for your site:",
        'installation:debug' => "Debug mode provides extra information which can be used to diagnose faults. However, it can slow your system down so should only be used if you are having problems:",
@@ -759,7 +778,7 @@ Alternatively, you can enter your database settings below and we will try and do
        'installation:httpslogin:label' => "Enable HTTPS logins",
        'installation:view' => "Enter the view which will be used as the default for your site or leave this blank for the default view (if in doubt, leave as default):",
 
-       'installation:siteemail' => "Site email address (used when sending system emails)",
+       'installation:siteemail' => "Site email address (used when sending system emails):",
 
        'installation:disableapi' => "The RESTful API is a flexible and extensible interface that enables applications to use certain Elgg features remotely.",
        'installation:disableapi:label' => "Enable the RESTful API",
index 483e83fabad90483dbce8a0ce4958f6590bc383f..d88eaa994977bca4e19e3ab192ac9696fb95abf6 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-               <field key="author" value="Curverider" />
-               <field key="version" value="1.8" />
-               <field key="description" value="Elgg blog plugin" />
-               <field key="website" value="http://www.elgg.org/" />
-               <field key="copyright" value="(C) Curverider 2008-2010" />
-               <field key="licence" value="GNU Public License version 2" />
-               <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.8" />
+       <field key="description" value="Elgg blog plugin" />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index bb900e311bc7d86b7882e7df7dd6fe91dd6a1ff0..2b3366e48c7b5313436e8b1e14b220fad1af6b28 100644 (file)
@@ -147,6 +147,8 @@ $publish_date_input = elgg_view('input/datetime', array(
        'value' => $values['publish_date']
 ));
 
+$categories_input = elgg_view('categories', $vars);
+
 // hidden inputs
 //$container_guid_input = elgg_view('input/hidden', array('internalname' => 'container_guid', 'value' => $values['container_guid']));
 $guid_input = elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $values['guid']));
@@ -202,13 +204,13 @@ $body_input
        $access_input
 </p>
 
-
-
 <p>
        <label for="blog_status">$status_label</label>
        $status_input
 </p>
 
+$categories_input
+
 $guid_input
 $container_guid_input
 $forward_input
index 687b62a7e6beb834d05b9f0a7b3df602c46e3b05..eab7ba9c6e8b7fdfb9c369fa58385783cf93d78f 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="Elgg bookmarks plugin." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-               <field key="licence" value="GNU Public License version 2" />
-               <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Elgg bookmarks plugin." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="disabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index ef8b66775921bc62267821daa9f48fcd7f6fc2c3..60b7e255106e82500a2b0b0d0227f429ed6232a0 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 21602f6596e58954144a9b75d8ff27945b6d9f67..3e93b6325990ed761f901293ffce084271de1dbc 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Elgg categories plugin category saver
  *
 $categories = get_input('categories');
 $categories = string_to_tag_array($categories);
 
-global $CONFIG;
 $site = $CONFIG->site;
 $site->categories = $categories;
 system_message(elgg_echo("categories:save:success"));
 
-forward($_SERVER['HTTP_REFERER']);
+elgg_delete_admin_notice('categories_admin_notice_no_categories');
 
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file
index 588c194e4f15233beadba9a5f9a2557ffc9785c8..cbe5a608f2491fa35c7dc00a62b6771661022f35 100644 (file)
@@ -1,15 +1,12 @@
 <?php
 
-       $english = array(
-       
-               'categories' => 'Categories',
-               'categories:settings' => 'Set site categories', 
-               '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",
-       
-       );
-                                       
-       add_translation("en",$english);
+$english = array(
+       'categories' => 'Categories',
+       'categories:settings' => 'Set site categories',
+       '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>",
+);
 
-?>
\ No newline at end of file
+add_translation("en",$english);
\ No newline at end of file
index 443872e57a22a6a68259a5b9f94f47b87deb4f02..635543ee39a3575e55ed8b7ef917de3b860fafbd 100644 (file)
@@ -1,10 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="Site wide categories" />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="name" value="Site-wide Categories" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Site-wide Categories lets administrators define categories that users across the site can add content to." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
+       <field key="on_enable" value="categories_on_enable" />
+       <field key="on_disable" value="categories_on_disable" />
 </plugin_manifest>
index dd6da16d51a6872f18649be46eb818b0e6d3f8b3..60ee01065fc4e0eef5455c6928e0473fb4d5daa8 100644 (file)
  *
  */
 function categories_init() {
-
        global $CONFIG;
 
        elgg_extend_view('css', 'categories/css');
 
-       register_action('categories/save',false,$CONFIG->pluginspath . 'categories/actions/save.php',true);
+       register_action('settings/categories/save', FALSE, $CONFIG->pluginspath . 'categories/actions/save.php', TRUE);
 
        register_page_handler('categories', 'categories_page_handler');
 
+       register_elgg_event_handler('update','all','categories_save');
+       register_elgg_event_handler('create','all','categories_save');
 }
 
-/**
- * Set up admin menu item
- *
- */
-function categories_pagesetup() {
-       if (get_context() == 'admin' && isadminloggedin()) {
-               global $CONFIG;
-               add_submenu_item(elgg_echo('categories:settings'), $CONFIG->wwwroot . 'mod/categories/settings.php');
-       }
-}
 
 /**
  * Page handler
  *
  */
 function categories_page_handler() {
-
        include(dirname(__FILE__) . "/listing.php");
-       return true;
+       return TRUE;
 }
 
 /**
- * Save site categories
+ * Save site categories to and object upon save / edit
  *
  */
 function categories_save($event, $object_type, $object) {
-
        if ($object instanceof ElggEntity) {
-
                $marker = get_input('universal_category_marker');
 
                if ($marker == 'on') {
-
                        $categories = get_input('universal_categories_list');
-                       
+
                        if (empty($categories)) {
                                $categories = array();
                        }
@@ -68,12 +55,26 @@ function categories_save($event, $object_type, $object) {
                        $object->universal_categories = $categories;
                }
        }
+       return TRUE;
+}
 
-       return true;
+/**
+ * Add a reminder to set default categories.
+ */
+function categories_on_enable() {
+       if (!$site->categories) {
+               global $CONFIG;
+               $message = sprintf(elgg_echo('categories:on_enable_reminder'), "{$CONFIG->url}pg/admin/plugin_settings/categories");
+               elgg_add_admin_notice('categories_admin_notice_no_categories', $message);
+       }
+       return TRUE;
 }
 
+/**
+ * Clean up admin notices on disable.
+ */
+function categories_on_disable() {
+       elgg_delete_admin_notice('categories_admin_notice_no_categories');
+}
 
-register_elgg_event_handler('init','system','categories_init');
-register_elgg_event_handler('pagesetup','system','categories_pagesetup');
-register_elgg_event_handler('update','all','categories_save');
-register_elgg_event_handler('create','all','categories_save');
+register_elgg_event_handler('init','system','categories_init');
\ No newline at end of file
index d2cf5a8a8445799b74de4f9a0eb3b9403cd37eb6..6dfe600470e65083d758e74753d37491ef8214c3 100644 (file)
@@ -1,11 +1,11 @@
 <?php
-       /**
       * Categories CSS extender
-        * 
-        * @package Elgg File Repository
       * @copyright Curverider Ltd 2008-2010
       * @link http://elgg.com/
       */
+/**
+ * Categories CSS extender
+ *
+ * @package Categories
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.com/
+ */
 ?>
 
 .categories .input-checkboxes {
 }
 #two_column_left_sidebar_maincontent .contentWrapper .categories {
        border:1px solid #CCCCCC;
-       -webkit-border-radius: 4px; 
+       -webkit-border-radius: 4px;
        -moz-border-radius: 4px;
        padding:5px;
-       margin:0 0 15px 0;      
+       margin:0 0 15px 0;
 }
 #two_column_left_sidebar_maincontent .contentWrapper .categories p {
-       margin:0;       
+       margin:0;
 }
 #two_column_left_sidebar_maincontent .contentWrapper .blog_post .categories {
        border:none;
 
 #two_column_left_sidebar .blog_categories {
        background:white;
-       -webkit-border-radius: 8px; 
+       -webkit-border-radius: 8px;
        -moz-border-radius: 8px;
-    padding:10px;
-    margin:0 10px 10px 10px;
+       padding:10px;
+       margin:0 10px 10px 10px;
 }
 #two_column_left_sidebar .blog_categories h2 {
        background:none;
diff --git a/mod/categories/views/default/categories/settings.php b/mod/categories/views/default/categories/settings.php
deleted file mode 100644 (file)
index 7f38b65..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-echo elgg_view_title(elgg_echo('categories:settings'));
-
-?>
-
-<div class="contentWrapper">
-       <p>
-               <?php echo elgg_echo('categories:explanation'); ?>
-       </p>
-
-
-       <?php
-
-       echo elgg_view('input/form', array(
-                                                       'action' => $vars['url'] . 'action/categories/save',
-                                                       'method' => 'post',
-                                                       'body' => elgg_view('categories/settingsform',$vars)
-                                                       )
-                                       );
-
-       ?>
-
-</div>
\ No newline at end of file
diff --git a/mod/categories/views/default/categories/settingsform.php b/mod/categories/views/default/categories/settingsform.php
deleted file mode 100644 (file)
index 044f01d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-       echo elgg_view('input/tags',array('value' => $vars['categories'],
-                                                                         'internalname' => 'categories'));
-
-?>
-       <input type="submit" value="<?php echo elgg_echo('save'); ?>" />
\ No newline at end of file
similarity index 50%
rename from mod/categories/settings.php
rename to mod/categories/views/default/settings/categories/edit.php
index 260b057c3fa57cf8fb92a16ef8601b21d50dcdff..3742fd1e62922be7d20c17816d823cf4d30d7a7b 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Elgg categories plugin settings page
  *
@@ -10,15 +9,7 @@
  * @link http://elgg.com/
  */
 
-// Load engine and restrict to admins 
-require_once(dirname(dirname(dirname(__FILE__))) . '/engine/start.php');
-admin_gatekeeper();
-
-// Set context
-set_context('admin');
-
 // Get site and categories
-global $CONFIG;
 $site = $CONFIG->site;
 $categories = $site->categories;
 
@@ -26,10 +17,12 @@ if (empty($categories)) {
        $categories = array();
 }
 
-// Load category save view
-$body = elgg_view('categories/settings',array('categories' => $categories));
-
-
-$body = elgg_view_layout('two_column_left_sidebar', '', $body);
-
-page_draw(elgg_echo('categories:settings'), $body);
+?>
+<div class="contentWrapper">
+       <p>
+               <?php echo elgg_echo('categories:explanation'); ?>
+       </p>
+       <?php
+               echo elgg_view('input/tags', array('value' => $categories, 'internalname' => 'categories'));
+       ?>
+</div>
\ No newline at end of file
index 3728534b554e599144b9d9d05a9b6c0fe763fce9..8058ebb1ec2208ee5e45ba3c8d78314f1b0dd928 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 2fb36cf220a0471721984cecbd630011696a634f..16e648f544a15c938354840cf1373bc9dc6c2706 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="A simple plugin to replace the sites index page with boxes containing the latest content from the site." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="A simple plugin to replace the sites index page with boxes containing the latest content from the site." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 8388e5803d125a7894bae8e95aae618b2d23cf6a..2fa825d6cc065071562ddc2c6d2fc016c112e45e 100644 (file)
@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Milan Magudia &amp; Curverider" />
-        <field key="version" value="2.04" />
-        <field key="description" value="This plugin enables an administrator to define a default set of widgets for new users" />
-        <field key="copyright" value="HedgeHogs &amp; Curverider Ltd" />
-               <field key="licence" value="GNU Public License version 2" />      
-               <field key="elgg_version" value="2010030101" />  
+       <field key="author" value="Milan Magudia &amp; Curverider" />
+       <field key="version" value="2.04" />
+       <field key="description" value="This plugin enables an administrator to define a default set of widgets for new users" />
+       <field key="copyright" value="HedgeHogs &amp; Curverider Ltd" />
+       <field key="licence" value="GNU Public License version 2" />      
+       <field key="elgg_version" value="2010030101" />  
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index f9a72596650c2344e6f583dfb872ec59fd24e067..1e1df888126c32da1246b55d155a0f0df5fd82fb 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index f74c78de0b0201dec6a18c6fec3c7c493fbb8e68..77ece69de27c06a42982bfef1ef7fab562ebf4c3 100644 (file)
@@ -11,4 +11,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 4ea50766eb3734c6abd7ece95a450c4659744d94..c0ce1d4d65654a941b1a276f78d20b01983f583d 100644 (file)
@@ -36,7 +36,7 @@ function ecml_init() {
        elgg_extend_view('css', 'ecml/admin/css');
 
        // admin action to save permissions
-       register_action('ecml/save_permissions', FALSE, dirname(__FILE__) . '/actions/save_permissions.php', TRUE);
+       register_action('settings/ecml/save', FALSE, dirname(__FILE__) . '/actions/save_permissions.php', TRUE);
 
        // show ECML-enabled icon on free-text input areas
        elgg_extend_view('input/longtext',  'ecml/input_ext', 0);
@@ -78,7 +78,7 @@ function ecml_init() {
 function ecml_pagesetup(){
        if (get_context() == 'admin' && isadminloggedin()) {
                global $CONFIG;
-               add_submenu_item(elgg_echo('ecml'), $CONFIG->wwwroot . 'pg/ecml_admin');
+
        }
 }
 
similarity index 92%
rename from mod/ecml/views/default/ecml/admin/ecml_admin.php
rename to mod/ecml/views/default/settings/ecml/edit.php
index b7038b54cb2693fb0b128492d19115c441bda90f..1ad88aa9b375aeced1b75de807182f1b0b7e1fe1 100644 (file)
@@ -16,7 +16,6 @@ $perms = $vars['config']->ecml_permissions;
 ksort($views);
 ksort($keywords);
 
-echo elgg_view_title(elgg_echo('ecml:admin'));
 echo '<p class="margin_top">' . elgg_echo('ecml:admin:instruction') . '</p>';
 
 // yes I'm using a table because this is table.
@@ -67,13 +66,8 @@ foreach ($keywords as $keyword => $keyword_info) {
 }
 
 $form_body .= '</table>';
-$form_body .= elgg_view('input/submit', array('value' => elgg_echo('submit')));
-$form_body .= elgg_view('input/reset', array('value' => elgg_echo('reset'), 'class' => 'cancel_button'));
 
-echo elgg_view('input/form', array(
-       'body' => $form_body,
-       'action' => $vars['url'] . 'action/ecml/save_permissions'
-));
+echo $form_body;
 
 ?>
 <script type="text/javascript">
index a14e99b4b49f843cde2e2fe0793f4bb83a0da2b7..f0f82a699873a536b99acddf98a2784428cab54a 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2009-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 3793d78030714173cd58f8f1efdc928fe163d8bb..52da2025630d5aa4fe9e518ed8dab2d9e83b16f0 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="This is a very simple plugin that lets site admin populate an about page, terms, privacy and contact. You can also edit the frontpage text." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="This is a very simple plugin that lets site admin populate an about page, terms, privacy and contact. You can also edit the frontpage text." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index f3f44d3bf201825e394c2e319cd46d68b6910770..444d2ac80a923c4a1fd358d8708fc1e27f972730 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="File browser plugin" />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="File browser plugin" />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index faed8ce639652fb791a0dc523a4c536052c83156..8cdd8c6bd910b5a180ea7546e0afa0e0d8bd760a 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(c) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index 805cce48e007f73b2b970866ccde9ba62a87d358..a806dd916f9e2df261d0df4bf8e0d47050dfb93e 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 86a7dfa1d01ce11986bf66951b516097bcd88744..523b060acbe6b4d132f014f3cd46229a6599d586 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index e71e614d0e29e5bd8452e3dcb98f6d850eb69aa7..045a9a6703380eb51ca35c20f65fc3abd8ef626e 100644 (file)
@@ -2,9 +2,11 @@
 <plugin_manifest>
        <field key="author" value="Curverider Ltd" />
        <field key="version" value="1.5" />
-       <field key="description" value="Provide tag filtering for user input (highly recommended)." />
+       <field key="description" value="Provides security filtering. Disabling this plugin is extremely insecure. DO NOT DISABLE." />
        <field key="website" value="http://www.elgg.org/" />
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 3" />
        <field key="elgg_version" value="2009041701" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 4e17a5d279a54d509ba2b9569a589d88607d8a4d..cf039ee13a67a8712e1c3d14d28bbcdd1488cbe9 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="Invite friends to Elgg network via email invites." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Invite friends to Elgg network via email invites." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index e47d7bb37f679806d2da1629df3034a4c0a739d3..4ec2cdf449deaa790717795f2d814531258eb27f 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 02f461815ac9bf1261c8d6a5a0c4c117487a2d72..cfbb14d8cb7d03b8b7e23a39ed20e94024260870 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 2248f8853aac2b9997cf24635c1dc8f6833bb160..37959b66e16c5ba20e541d13547db78237176833 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="A simple plugin to let users browser other members." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="A simple plugin to let users browser other members." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index 4c89bdc4002ccdc8bf599224bbd6298476adb319..f66f0dd59efcaf7b3f0f69cbf14fc98ed2b49216 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="This plugin allows users to put a message board on their profile for other users to post comments." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="This plugin allows users to put a message board on their profile for other users to post comments." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index c903c765868f5303ec0d4ebbe3a097e82447221f..0c8731e764e6d143d0f10dfae195bec749f7e50b 100644 (file)
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="version" value="1.7" />
-        <field key="description" value="Elgg internal messages plugin. This plugin lets user send each other messages." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Elgg internal messages plugin. This plugin lets user send each other messages." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index d76abc6ae535e93b988815a4ee7f6bb4b54ec74f..6e1f73b9c7fcacd657c3e914c110e9303edbb426 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="Elgg notifications plugin" />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Elgg notifications plugin" />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 7e9b2c5e44f0e9ecc8db1d838fc97c9f3e812c82..0445ed0c8f88375e80e17a565ee10b4bdce0bc6f 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index 902292379716f992211e988ccbb7564aa5dd8316..a1307f24d1800a2b53307b91a10e3719eafb5f75 100644 (file)
@@ -1,12 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider ltd" />
-        <field key="version" value="1.8" />
-               <field key="category" value="bundled" />
-               <field key="category" value="social" />
-        <field key="description" value="Elgg profile plugin." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-               <field key="licence" value="GNU Public License version 2" />
-               <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider ltd" />
+       <field key="version" value="1.8" />
+       <field key="category" value="bundled" />
+       <field key="category" value="social" />
+       <field key="description" value="Elgg profile plugin." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 1d127cde3973c34660d2c2e96059a815e02ef1f4..e5a34ba996d69544a0ee663c7add01e2ad04fd55 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 24133b7d496e247966a91d583461a846a64915ca..6082cf5ec1fc6f48f4c9558df7970b6fe994c2ab 100644 (file)
@@ -6,4 +6,5 @@
        <field key="website" value="http://www.elgg.org/" />
        <field key="copyright" value="(C) Curverider 2010" />
        <field key="licence" value="GNU Public License version 2" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index b54744903cdac44e7abde46654d3139a0778b894..0041325ad55d6e69e1a125d448d3b4f4402bc674 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010, MITRE 2009" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
-</plugin_manifest>
\ No newline at end of file
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
+</plugin_manifest>
index 1ed844b9eb6c662f34d670a26ecb3922c462709e..55affc96f68c7c93f9b101634a5d3c7b9576598a 100644 (file)
@@ -10,4 +10,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009030702" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 7f08072b981e9d65a50b4b1bc83f11f47a145de5..6338debaf625dfe6349b4c67054b17d58e6a2f36 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider, Cash Costello" />
-        <field key="version" value="1.0" />
-        <field key="description" value="Site-wide and widget-based tag clouds." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-               <field key="licence" value="GNU Public License version 2" />
-               <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider, Cash Costello" />
+       <field key="version" value="1.0" />
+       <field key="description" value="Site-wide and widget-based tag clouds." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />        
 </plugin_manifest>
index a4239313ae8fab65ad2b8d49a2be79552ddbad1e..a0384b7cead666810d70a8ce161e153db3f1586e 100644 (file)
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.8" />
-        <field key="description" value="Provides a microblogging service for your Elgg site." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="recommends" value="smsclient" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.8" />
+       <field key="description" value="Provides a microblogging service for your Elgg site." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="recommends" value="smsclient" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="simple" />
 </plugin_manifest>
index 139d5b7a4a1b314b15ffcb68347f9c5b0e8140f4..a7a039c483eee5ea3e4a776d8966806face4e545 100644 (file)
@@ -7,4 +7,6 @@
         <field key="copyright" value="(C) Curverider 2008-2010" />
         <field key="licence" value="GNU Public License version 2" />
         <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 5439409dbc06478d1c18716d1a9d989cd1912828..d5fecbcb52b7f3ee0e081ed55afda9594d1469e5 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="Elgg simple twitter widget" />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="Elgg simple twitter widget" />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 944c870fbcf059ec790f45c923f87335cbafe0ac..8e29a1bbf0d7fad9382880856f103a1154da18bc 100644 (file)
@@ -7,4 +7,6 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2009033101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 1f4b28a1b04cf628075d4cb5d7eac60223e69fc3..e81af202f2c18d487ef5916070a5ed21548ea652 100644 (file)
@@ -7,4 +7,5 @@
        <field key="copyright" value="(C) Curverider 2008-2010" />
        <field key="licence" value="GNU Public License version 2" />
        <field key="elgg_version" value="2010030101" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
index 6db4cbf47a211c30d04a40b36c00010c3ac1fe49..7af57d6d915a2bbabb9afc4636d2d72c7952daf0 100644 (file)
@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin_manifest>
-        <field key="author" value="Curverider" />
-        <field key="version" value="1.7" />
-        <field key="description" value="This simple plugin lets users play mp3's in the page." />
-        <field key="website" value="http://www.elgg.org/" />
-        <field key="copyright" value="(C) Curverider 2008-2010" />
-        <field key="licence" value="GNU Public License version 2" />
-        <field key="elgg_version" value="2010030101" />
+       <field key="author" value="Curverider" />
+       <field key="version" value="1.7" />
+       <field key="description" value="This simple plugin lets users play mp3's in the page." />
+       <field key="website" value="http://www.elgg.org/" />
+       <field key="copyright" value="(C) Curverider 2008-2010" />
+       <field key="licence" value="GNU Public License version 2" />
+       <field key="elgg_version" value="2010030101" />
+       <field key="elgg_install_state" value="enabled" />
+       <field key="admin_interface" value="advanced" />
 </plugin_manifest>
similarity index 97%
rename from views/default/admin/menu_items.php
rename to views/default/admin/appearance/menu_items.php
index 2bf71f08349a4ac9b89c11641c6c595fa0eb2d55..0f2637ba685946d4386c7ba452918e21a997723c 100644 (file)
@@ -8,7 +8,7 @@
  * @link http://elgg.org/
  */
 
-$menu_items = $vars['menu_items'];
+$menu_items = get_register('menu');
 $featured_urls = get_config('menu_items_featured_urls');
 
 // get an alphabetical sort of the items + urls
diff --git a/views/default/admin/components/admin_page_layout.php b/views/default/admin/components/admin_page_layout.php
new file mode 100644 (file)
index 0000000..4f2a67d
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Elgg admin page layout.  Includes the admin sidebar and the ownerblock (for legacy support)
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$notices_html = '';
+if ($notices = elgg_get_admin_notices()) {
+       foreach ($notices as $notice) {
+               $notices_html .= elgg_view_entity($notice);
+       }
+}
+
+?>
+<div id="elgg_content" class="clearfloat sidebar">
+       <div id="elgg_sidebar">
+               <?php
+                       echo elgg_view('admin/components/sidemenu', $vars);
+                       echo '<hr />';
+                       echo elgg_view('page_elements/owner_block');
+               ?>
+       </div>
+
+       <div id="elgg_page_contents" class="clearfloat">
+               <?php
+                       if ($notices) {
+                               echo "<div class=\"admin_notices\">$notices_html</div>";
+                       }
+                       echo $vars['content'];
+               ?>
+       </div>
+</div>
similarity index 94%
rename from views/default/admin/plugins_opt/plugin.php
rename to views/default/admin/components/plugin.php
index 61a197043e668f4455a90097a4d526e4835976cc..e56cdd4ef2128c6d555793d356cc04a173338c23 100644 (file)
@@ -100,18 +100,14 @@ if ($manifest['screenshot']) {
 
        <?php
        if (elgg_view_exists("settings/{$plugin}/edit")) {
-               
-               $settings_link = "<a class='plugin_settings small link'>[". elgg_echo('settings') ."]</a>";
-               
-               $settings_panel = "<div class='pluginsettings hidden'>";
-               $settings_panel .= elgg_view("object/plugin", array('plugin' => $plugin, 'entity' => find_plugin_settings($plugin)));
-               $settings_panel .= "</div>";
+               $link = "{$vars['url']}pg/admin/plugin_settings/$plugin";
+               $settings_link = "<a class='plugin_settings small link' href='$link'>[". elgg_echo('settings') ."]</a>";
        }
        ?>
        <h3><?php echo "$plugin_pretty_name $settings_link"; ?></h3>
        <?php
        echo $settings_panel;
-       
+
        if ($manifest) {
                ?>
                <div class="plugin_description"><?php echo elgg_view('output/longtext',array('value' => $manifest['description'])); ?></div>
diff --git a/views/default/admin/components/plugin_settings.php b/views/default/admin/components/plugin_settings.php
new file mode 100644 (file)
index 0000000..22544e4
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Elgg plugin settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$plugin = $vars['plugin'];
+$plugin_info = load_plugin_manifest($plugin);
+
+$form_body = elgg_view("settings/{$plugin}/edit", $vars);
+$form_body .= elgg_view('input/hidden', array('internalname' => 'plugin', 'value' => $plugin));
+$form_body .= '<p>' . elgg_view('input/submit', array('value' => elgg_echo('save')));
+$form_body .= elgg_view('input/reset', array('value' => elgg_echo('reset')))  . '</p>';
+
+echo elgg_view_title($plugin_info['name']);
+
+echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$vars['url']}action/plugins/settings/save"));
\ No newline at end of file
diff --git a/views/default/admin/components/sidemenu.php b/views/default/admin/components/sidemenu.php
new file mode 100644 (file)
index 0000000..4e02eec
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Elgg admin sidebar
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$sections = $vars['config']->admin_sections;
+$current_section = $vars['page'][0];
+$child_section = (isset($vars['page'][1])) ? $vars['page'][1] : NULL;
+
+// "Plugin Settings" is a special sidemenu item that is added automatically
+// it's calculated here instead of in admin_init() because of preformance concerns.
+$installed_plugins = get_installed_plugins();
+$plugin_settings_children = $sort = array();
+foreach ($installed_plugins as $plugin_id => $info) {
+       if (!$info['active']) {
+               continue;
+       }
+
+       // @todo might not need to check if plugin is enabled here because
+       // this view wouldn't exist if it's not.  right?
+       if (is_plugin_enabled($plugin_id) && elgg_view_exists("settings/{$plugin_id}/edit")) {
+               $plugin_settings_children[$plugin_id] = array(
+                       'title' => $info['manifest']['name']
+               );
+               $sort[] = elgg_strtolower($info['manifest']['name']);
+       }
+}
+
+array_multisort($sort, SORT_ASC, SORT_STRING, $plugin_settings_children);
+
+if ($plugin_settings_children) {
+       // merge in legacy support with new support.
+       if (!isset($sections['plugin_settings'])) {
+               $sections['plugin_settings'] = array(
+                       'title' => elgg_echo('admin:plugin_settings'),
+                       'children' => $plugin_settings_children
+               );
+       } else {
+               $sections['plugin_settings']['title'] = elgg_echo('admin:plugin_settings');
+               if (isset($sections['plugin_settings']['children'])) {
+                       $children = array_merge($plugin_settings_children, $sections['plugin_settings']['children']);
+                       $sections['plugin_settings']['children'] = $children;
+               }
+       }
+}
+
+?>
+
+<ul class="admin submenu">
+       <?php foreach ($sections as $id => $info) {
+               $parent_class = ($current_section == $id) ? 'selected' : '';
+               $link = "{$vars['url']}pg/admin/$id";
+
+               $expand_child = $children_menu = $expanded = '';
+               // parent menu items with children default to the first child element.
+               if (isset($info['children']) && $info['children']) {
+                       $link = '';
+                       if ($current_section == $id) {
+                               $hidden = '';
+                               $expanded = '-';
+                       } else {
+                               $hidden = 'style="display: none;"';
+                               $expanded = '+';
+                       }
+                       $expand_child = "<span class=\"expand_child\">$expanded</span> ";
+                       $children_menu = "<ul class=\"admin child_submenu\" $hidden>";
+                       foreach ($info['children'] as $child_id => $child_info) {
+                               $child_selected = ($child_section == $child_id) ? "class=\"selected\"" : '';
+                               $child_link = "{$vars['url']}pg/admin/$id/$child_id";
+                               if (!$link) {
+                                       $link = $child_link;
+                               }
+                               $children_menu .= "<li $child_selected><a href=\"$child_link\">{$child_info['title']}</a></li>";
+                       }
+                       $children_menu .= '</ul>';
+               }
+
+               $parent_class = ($parent_class) ? "class=\"$parent_class\"" : '';
+
+               echo "<li $parent_class><a href=\"$link\">$expand_child{$info['title']}</a>
+               $children_menu
+               </li>";
+       }
+       ?>
+</ul>
+
+<script type="text/javascript">
+       $('a span.expand_child').click(function() {
+               var submenu = $(this).parent().parent().find('ul.child_submenu');
+               submenu.slideToggle();
+
+               if ($(this).html() == '+') {
+                       $(this).html('-');
+               } else {
+                       $(this).html('+');
+               }
+
+               return false;
+       });
+</script>
\ No newline at end of file
diff --git a/views/default/admin/main.php b/views/default/admin/main.php
deleted file mode 100644 (file)
index e345f56..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- * Elgg administration main screen
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Description of what's going on
-echo elgg_view('output/longtext', array('value' => elgg_echo("admin:description")));
diff --git a/views/default/admin/main_opt/plugins.php b/views/default/admin/main_opt/plugins.php
deleted file mode 100644 (file)
index b8ae611..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Elgg plugin sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-global $CONFIG;
-?>
-<div class="menu_admin_option">
-       <h2><?php echo elgg_echo('admin:plugins'); ?> </h2>
-       <p><?php echo elgg_echo('admin:plugins:opt:description'); ?><br />
-       <a href="<?php echo $CONFIG->wwwroot . "pg/admin/plugins/"; ?>"><?php echo elgg_echo('admin:plugins:opt:linktext'); ?></a></p>
-</div>
\ No newline at end of file
diff --git a/views/default/admin/main_opt/site.php b/views/default/admin/main_opt/site.php
deleted file mode 100644 (file)
index e21dcc3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg site sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-?>
-<div class="menu_admin_option">
-       <h2><?php echo elgg_echo('admin:site'); ?> </h2>
-       <p><?php echo elgg_echo('admin:site:opt:description'); ?><br />
-       <a href="<?php echo $CONFIG->wwwroot . "pg/admin/site/"; ?>"><?php echo elgg_echo('admin:site:opt:linktext'); ?></a></p>
-</div>
\ No newline at end of file
diff --git a/views/default/admin/main_opt/statistics.php b/views/default/admin/main_opt/statistics.php
deleted file mode 100644 (file)
index 5b063b8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg satistics sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-?>
-<div class="menu_admin_option">
-       <h2><?php echo elgg_echo('admin:statistics'); ?> </h2>
-       <p><?php echo elgg_echo('admin:statistics:opt:description'); ?><br />
-       <a href="<?php echo $CONFIG->wwwroot . "pg/admin/statistics/"; ?>"><?php echo elgg_echo('admin:statistics:opt:linktext'); ?></a></p>
-</div>
diff --git a/views/default/admin/main_opt/user.php b/views/default/admin/main_opt/user.php
deleted file mode 100644 (file)
index f1dc28e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg user sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-?>
-<div class="menu_admin_option">
-       <h2><?php echo elgg_echo('admin:user'); ?> </h2>
-       <p><?php echo elgg_echo('admin:user:opt:description'); ?><br />
-       <a href="<?php echo $CONFIG->wwwroot . "pg/admin/user/"; ?>"><?php echo elgg_echo('admin:user:opt:linktext'); ?></a></p>
-</div>
\ No newline at end of file
similarity index 53%
rename from views/default/admin/statistics_opt/basic.php
rename to views/default/admin/overview.php
index f89314fef844f3e5d2c6a69eb19e743cfb977da4..6fe0bcd4582169d53d3171f984c807f39845ef9a 100644 (file)
@@ -32,4 +32,49 @@ $release = get_version(true);
                </tr>
 
        </table>
+</div>
+
+<?php
+
+
+// Get entity statistics
+$entity_stats = get_entity_statistics();
+$even_odd = "";
+?>
+<div class="admin_settings site_entities">
+       <h3><?php echo elgg_echo('admin:statistics:label:numentities'); ?></h3>
+       <table class="styled">
+               <?php
+                       foreach ($entity_stats as $k => $entry) {
+                               arsort($entry);
+                               foreach ($entry as $a => $b) {
+
+                                       //This function controls the alternating class
+                                       $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
+
+                                       if ($a == "__base__") {
+                                               $a = elgg_echo("item:{$k}");
+                                               if (empty($a))
+                                                       $a = $k;
+                                       } else {
+                                                       if (empty($a)) {
+                                                               $a = elgg_echo("item:{$k}");
+                                                       } else {
+                                                               $a = elgg_echo("item:{$k}:{$a}");
+                                                       }
+
+                                                       if (empty($a)) {
+                                                               $a = "$k $a";
+                                                       }
+                                               }
+                                       echo <<< END
+                                               <tr class="{$even_odd}">
+                                                       <td class="column_one">{$a}:</td>
+                                                       <td>{$b}</td>
+                                               </tr>
+END;
+                               }
+                       }
+               ?>
+       </table>
 </div>
\ No newline at end of file
similarity index 89%
rename from views/default/admin/statistics.php
rename to views/default/admin/overview/numentities.php
index 7c987a6077817944fa8b53d0fc7d4469d8bdee1f..0d0e1b83b1fb69f535cd2de0763f49143fa9e500 100644 (file)
@@ -7,5 +7,3 @@
  * @author Curverider Ltd
  * @link http://elgg.org/
  */
-
-global $CONFIG;
\ No newline at end of file
similarity index 99%
rename from views/default/admin/statistics_opt/online.php
rename to views/default/admin/overview/online.php
index 6485a3bac0961cc042d749a3be198d4356b2a265..0045f8299a624b5e0a6d3e733a15b033a944e1a1 100644 (file)
@@ -14,7 +14,7 @@ if( (is_plugin_enabled('search')) && (is_plugin_enabled('profile')) ) {
        $users_online = get_online_users();
        get_context('admin');
        ?>
-       
+
        <div class="admin_settings members_list users_online">
                <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3>
                <?php echo $users_online; ?>
similarity index 54%
rename from views/default/admin/plugins.php
rename to views/default/admin/plugins/advanced.php
index 5a5d37f8c8a81f8adcdd200d163a14889145fb2c..d5def1eb168c6e09054a00a8647ad4a0dbd5af1a 100644 (file)
@@ -1,6 +1,8 @@
 <?php
 /**
- * Elgg administration plugin main screen
+ * Elgg administration advanced plugin screen
+ *
+ * Shows a list of all plugins sorted by load order.
  *
  * @package Elgg
  * @subpackage Core
  * @link http://elgg.org/
  */
 
-global $CONFIG;
+regenerate_plugin_list();
+$installed_plugins = get_installed_plugins();
+$plugin_list = array();
+$show_category = get_input('category', NULL);
+
+// Get a list of the all categories
+// and trim down the plugin list if we're not viewing all categories.
+// @todo this could be cached somewhere after have the manifest loaded
+$categories = array();
+
+foreach ($installed_plugins as $id => $plugin) {
+       $plugin_categories = $plugin['manifest']['category'];
+
+       // handle plugins that don't declare categories
+       if ((!$plugin_categories && $show_category) || ($show_category && !in_array($show_category, $plugin_categories))) {
+               unset($installed_plugins[$id]);
+       }
+
+       foreach ($plugin_categories as $category) {
+               if (!array_key_exists($category, $categories)) {
+                       $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category");
+               }
+       }
+}
 
 $ts = time();
 $token = generate_action_token($ts);
-$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $vars['categories']);
+$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $categories);
 
 $category_pulldown = elgg_view('input/pulldown', array(
        'internalname' => 'category',
        'options_values' => $categories,
-       'value' => $vars['show_category']
+       'value' => $show_category
 ));
 
 $category_button = elgg_view('input/button', array(
@@ -33,7 +58,7 @@ $category_form = elgg_view('input/form', array(
 $title = elgg_view_title(elgg_echo('admin:plugins'));
 
 // @todo Until "en/disable all" means "All plugins on this page" hide when not looking at all.
-if (!isset($vars['show_category']) || empty($vars['show_category'])) {
+if (!isset($show_category) || empty($show_category)) {
        $buttons = "<a class='action_button' href=\"{$CONFIG->url}action/admin/plugins/enableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('enableall')."</a>  <a class='action_button disabled' href=\"{$CONFIG->url}action/admin/plugins/disableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('disableall')."</a> ";
        $buttons .= "<br /><br />";
 } else {
@@ -48,16 +73,12 @@ $buttons .= $category_form;
        <div class="content_header_title"><?php echo $title ?></div>
        <div class="content_header_options"><?php echo $buttons ?></div>
 </div>
+<br />
 <?php
-echo elgg_view('output/longtext', array('value' => elgg_echo("admin:plugins:description")));
 
 $limit = get_input('limit', 10);
 $offset = get_input('offset', 0);
 
-// Get the installed plugins
-$installed_plugins = $vars['installed_plugins'];
-$count = count($installed_plugins);
-
 $plugin_list = get_plugin_list();
 $max = 0;
 foreach($plugin_list as $key => $foo) {
@@ -67,19 +88,19 @@ foreach($plugin_list as $key => $foo) {
 // Display list of plugins
 $n = 0;
 foreach ($installed_plugins as $plugin => $data) {
-       echo elgg_view("admin/plugins_opt/plugin", array('plugin' => $plugin, 'details' => $data, 'maxorder' => $max, 'order' => array_search($plugin, $plugin_list)));
+       echo elgg_view('admin/components/plugin', array(
+               'plugin' => $plugin,
+               'details' => $data,
+               'maxorder' => $max,
+               'order' => array_search($plugin, $plugin_list)
+       ));
        $n++;
 }
-
 ?>
-
 <script type="text/javascript">
-$(document).ready(function() {
-       $('a.plugin_settings.link').click(function() {
-               elgg_slide_toggle($(this), '.plugin_details', '.pluginsettings');
-       });
-       $('a.manifest_details.link').click(function() {
-               elgg_slide_toggle($(this), '.plugin_details', '.manifest_file');
+       $(document).ready(function() {
+               $('a.manifest_details.link').click(function() {
+                       elgg_slide_toggle($(this), '.plugin_details', '.manifest_file');
+               });
        });
-});
-</script>
+</script>
\ No newline at end of file
diff --git a/views/default/admin/plugins/simple.php b/views/default/admin/plugins/simple.php
new file mode 100644 (file)
index 0000000..ad85f9c
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Elgg administration simple plugin screen
+ *
+ * Shows an alphabetical list of "simple" plugins.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+regenerate_plugin_list();
+$installed_plugins = get_installed_plugins();
+$plugin_list = array();
+$title = elgg_view_title(elgg_echo('admin:plugins'));
+
+foreach ($installed_plugins as $installed_name => $plugin) {
+       if (!isset($plugin['manifest']['admin_interface']) || $plugin['manifest']['admin_interface'] == 'advanced') {
+               continue;
+       }
+
+       $plugin['installed_name'] = $installed_name;
+
+       $plugin_list[$plugin['manifest']['name']] = $plugin;
+}
+
+ksort($plugin_list);
+$form_body  .= <<<___END
+       <div id="content_header" class="clearfloat">
+               <div class="content_header_title">$title</div>
+       </div>
+       <ul class="admin_plugins margin_top">
+___END;
+
+foreach ($plugin_list as $name => $info) {
+       $manifest = $info['manifest'];
+       $version_valid = (isset($manifest['elgg_version'])) ? check_plugin_compatibility($manifest['elgg_version']) : FALSE;
+       if ($info['active']) {
+               $active_class = 'active';
+               $checked = 'checked="checked"';
+       } else {
+               $active_class = 'not_active';
+               $checked = '';
+       }
+
+       $author = $link = $version = $settings = '';
+
+       if (isset($manifest['author'])) {
+               $author = sprintf(elgg_echo('admin:plugins:author'), $manifest['author']);
+       }
+
+       if (isset($manifest['version'])) {
+               $version = ' | ' . sprintf(elgg_echo('admin:plugins:version'), $manifest['version']);
+       }
+
+       if (isset($manifest['website'])) {
+               $link = " | <a href=\"{$manifest['website']}\">" . elgg_echo('admin:plugins:plugin_website') . '</a>';
+       }
+
+       if (elgg_view_exists("settings/{$info['installed_name']}/edit")) {
+               $settings_href = "{$vars['url']}pg/admin/plugin_settings/{$info['installed_name']}";
+               $settings = " | <a class='plugin_settings link' href='$settings_href'>". elgg_echo('settings') ."</a>";
+       }
+
+       $form_body .= <<<___END
+       <li class="plugin_details $active_class">
+               <span class="plugin_controls">
+                       <input type="checkbox" id="{$info['installed_name']}" class="plugin_enabled" $checked name="enabled_plugins[]" value="{$info['installed_name']}"/>
+                       <label for="{$info['installed_name']}">$name</label>
+               </span>
+
+               <span class="plugin_info">
+                       <span class="plugin_description">
+                               {$manifest['description']}
+                       </span>
+                       <span class="plugin_metadata small">
+                               $author
+                               $version
+                               $link
+                               $settings
+                       </span>
+               </span>
+       </li>
+___END;
+}
+
+$form_body .= '</ul>';
+$form_body .= elgg_view('input/submit', array('value' => elgg_echo('save')));
+$form_body .= elgg_view('input/reset', array('value' => elgg_echo('reset'), 'class' => 'action_button disabled'));
+
+echo elgg_view('input/form', array(
+       'action' => "{$vars['url']}action/admin/plugins/simple_update_states",
+       'body' => $form_body,
+       'class' => 'admin_plugins_simpleview'
+));
\ No newline at end of file
diff --git a/views/default/admin/site.php b/views/default/admin/site.php
deleted file mode 100644 (file)
index 2c2775a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg administration site main screen
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-global $CONFIG;
-
-// Description of what's going on
-echo "<div class='margin_top'>".elgg_view('output/longtext', array('value' => elgg_echo("admin:site:description")))."</div>";
-
-echo elgg_view("settings/system",array("action" => $CONFIG->wwwroot."action/admin/site/update_basic")); // Always want to do this first.
\ No newline at end of file
diff --git a/views/default/admin/site/advanced.php b/views/default/admin/site/advanced.php
new file mode 100644 (file)
index 0000000..da7b98a
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Elgg administration site advanced settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$action = $vars['url'] . "action/admin/site/update_advanced";
+
+$form_body = "";
+
+foreach(array('wwwroot', 'path', 'dataroot', 'view') as $field) {
+       $form_body .= "<p>";
+       $form_body .= elgg_echo('installation:' . $field) . "<br />";
+       $warning = elgg_echo('installation:warning:' . $field);
+       if ($warning != 'installation:warning:' . $field) echo "<b>" . $warning . "</b><br />";
+       $value = $vars['config']->$field;
+       $form_body .= elgg_view("input/text",array('internalname' => $field, 'value' => $value));
+       $form_body .= "</p>";
+}
+
+$form_body .= "<p>" . elgg_echo('admin:site:access:warning') . "<br />";
+$form_body .= elgg_echo('installation:sitepermissions') . elgg_view('input/access', array('internalname' => 'default_access','value' => $vars['config']->default_access)) . "</p>";
+$form_body .= "<p>" . elgg_echo('installation:allow_user_default_access:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:allow_user_default_access:label')), 'internalname' => 'allow_user_default_access', 'value' => ($vars['config']->allow_user_default_access ? elgg_echo('installation:allow_user_default_access:label') : "") )) . "</p>";
+$form_body .= "<p>" . elgg_echo('installation:simplecache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:simplecache:label')), 'internalname' => 'simplecache_enabled', 'value' => ($vars['config']->simplecache_enabled ? elgg_echo('installation:simplecache:label') : "") )) . "</p>";
+$form_body .= "<p>" . elgg_echo('installation:viewpathcache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:viewpathcache:label')), 'internalname' => 'viewpath_cache_enabled', 'value' => (($vars['config']->viewpath_cache_enabled) ? elgg_echo('installation:viewpathcache:label') : "") )) . "</p>";
+
+$debug_options = array('0' => elgg_echo('installation:debug:none'), 'ERROR' => elgg_echo('installation:debug:error'), 'WARNING' => elgg_echo('installation:debug:warning'), 'NOTICE' => elgg_echo('installation:debug:notice'));
+$form_body .= "<p>" . elgg_echo('installation:debug');
+$form_body .= elgg_view('input/pulldown', array('options_values' => $debug_options, 'internalname' => 'debug', 'value' => $vars['config']->debug));
+$form_body .= '</p>';
+
+$form_body .= "<p>" . elgg_echo('installation:httpslogin') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:httpslogin:label')), 'internalname' => 'https_login', 'value' => ($vars['config']->https_login ? elgg_echo('installation:httpslogin:label') : "") )) . "</p>";
+
+$form_body .= "<p>" . elgg_echo('installation:disableapi') . "<br />";
+$on = elgg_echo('installation:disableapi:label');
+if ((isset($CONFIG->disable_api)) && ($CONFIG->disable_api == true)) {
+       $on = ($vars['config']->disable_api ?  "" : elgg_echo('installation:disableapi:label'));
+}
+$form_body .= elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:disableapi:label')), 'internalname' => 'api', 'value' => $on ));
+$form_body .= "</p>";
+
+$form_body .= elgg_view('input/hidden', array('internalname' => 'settings', 'value' => 'go'));
+
+$form_body .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo("save")));
+$form_body = "<div class='admin_settings site_admin margin_top'>".$form_body."</div>";
+echo elgg_view('input/form', array('action' => $action, 'body' => $form_body));
diff --git a/views/default/admin/site/basic.php b/views/default/admin/site/basic.php
new file mode 100644 (file)
index 0000000..104823a
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Elgg administration site basic settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+$action = $vars['url'] . "action/admin/site/update_basic";
+
+$form_body = "";
+
+foreach(array('sitename','sitedescription', 'siteemail') as $field) {
+       $form_body .= "<p>";
+       $form_body .= elgg_echo('installation:' . $field) . "<br />";
+       $warning = elgg_echo('installation:warning:' . $field);
+       if ($warning != 'installation:warning:' . $field) echo "<b>" . $warning . "</b><br />";
+       $value = $vars['config']->$field;
+       $form_body .= elgg_view("input/text",array('internalname' => $field, 'value' => $value));
+       $form_body .= "</p>";
+}
+
+$languages = get_installed_translations();
+$form_body .= "<p>" . elgg_echo('installation:language') . elgg_view("input/pulldown", array('internalname' => 'language', 'value' => $vars['config']->language, 'options_values' => $languages)) . "</p>";
+
+$form_body .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo("save")));
+$form_body = "<div class='admin_settings site_admin margin_top'>".$form_body."</div>";
+echo elgg_view('input/form', array('action' => $action, 'body' => $form_body));
diff --git a/views/default/admin/statistics_opt/numentities.php b/views/default/admin/statistics_opt/numentities.php
deleted file mode 100644 (file)
index 4336c5a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Get entity statistics
-$entity_stats = get_entity_statistics();
-$even_odd = "";
-?>
-<div class="admin_settings site_entities">
-       <h3><?php echo elgg_echo('admin:statistics:label:numentities'); ?></h3>
-       <table class="styled">
-               <?php
-                       foreach ($entity_stats as $k => $entry) {
-                               arsort($entry);
-                               foreach ($entry as $a => $b) {
-
-                                       //This function controls the alternating class
-                                       $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
-
-                                       if ($a == "__base__") {
-                                               $a = elgg_echo("item:{$k}");
-                                               if (empty($a))
-                                                       $a = $k;
-                                       } else {
-                                                       if (empty($a)) {
-                                                               $a = elgg_echo("item:{$k}");
-                                                       } else {
-                                                               $a = elgg_echo("item:{$k}:{$a}");
-                                                       }
-
-                                                       if (empty($a)) {
-                                                               $a = "$k $a";
-                                                       }
-                                               }
-                                       echo <<< END
-                                               <tr class="{$even_odd}">
-                                                       <td class="column_one">{$a}:</td>
-                                                       <td>{$b}</td>
-                                               </tr>
-END;
-                               }
-                       }
-               ?>
-       </table>
-</div>
\ No newline at end of file
diff --git a/views/default/admin/user.php b/views/default/admin/user.php
deleted file mode 100644 (file)
index ba7eb3d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Elgg administration user main screen
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-// Intro
-echo "<div class='margin_top'>".elgg_view('output/longtext', array('value' => elgg_echo("admin:user:description")))."</div>";
-//echo elgg_view("admin/user_opt/adduser");
-// add a new user form
-echo elgg_view('account/forms/useradd', array('show_admin'=>true));
-// search for a user
-echo elgg_view("admin/user_opt/search");
-
-if ($vars['list']) {
-       echo $vars['list'];
-}
\ No newline at end of file
diff --git a/views/default/admin/user_opt/adduser.php b/views/default/admin/user_opt/adduser.php
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/views/default/admin/users/add.php b/views/default/admin/users/add.php
new file mode 100644 (file)
index 0000000..4275b27
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+/**
+ * Display an add user form.
+ */
+
+echo elgg_view('account/forms/useradd', array('show_admin'=>true));
\ No newline at end of file
similarity index 98%
rename from views/default/admin/user_opt/search.php
rename to views/default/admin/users/find.php
index f853dcf3c258edf6ba0099453cdd41316439be79..9684cb88c32bfe5b846e114bbb5e5eb98c37a913 100644 (file)
@@ -7,8 +7,8 @@
  * @author Curverider Ltd
  * @link http://elgg.org/
  */
-if( (is_plugin_enabled('search')) && (is_plugin_enabled('profile')) ) { 
+
+if( (is_plugin_enabled('search')) && (is_plugin_enabled('profile')) ) {
 ?>
        <div class="admin_settings user_search">
                <form action="<?php echo $vars['url']; ?>pg/search/" method="get">
diff --git a/views/default/admin/users/online.php b/views/default/admin/users/online.php
new file mode 100644 (file)
index 0000000..22b183d
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+// users online
+if ((is_plugin_enabled('search')) && (is_plugin_enabled('profile'))) {
+       get_context('search');
+       $users_online = get_online_users();
+       get_context('admin');
+       ?>
+
+       <div class="admin_settings members_list users_online">
+               <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3>
+               <?php echo $users_online; ?>
+       </div>
+<?php
+}
\ No newline at end of file
index 639433aabe4ffb393d8fc355ba07263db29d7537..b81945eb4ea1d30ab6f4521363856b206c9e20e3 100644 (file)
@@ -1460,8 +1460,8 @@ a.action_button:focus {
        LIKES
 *************************************** */
 .likes_list_holder {
-    position: relative;
-    float:right;
+       position: relative;
+       float:right;
 }
 .likes_list_holder a.user_like {
        cursor:pointer;
@@ -1491,13 +1491,13 @@ a.action_button:focus {
 .likes_list_holder .likes_list {
        background-color: white;
        border:1px solid #cccccc;
-    width: 345px;
-    height: auto;
-    position: absolute;
-    text-align: left;
-    z-index: 9999;
-    -webkit-border-radius: 6px; 
-    -moz-border-radius: 6px;
+       width: 345px;
+       height: auto;
+       position: absolute;
+       text-align: left;
+       z-index: 9999;
+       -webkit-border-radius: 6px;
+       -moz-border-radius: 6px;
        -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5);
        -moz-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5);
 }
@@ -1578,6 +1578,27 @@ p.elgg_likes_owner {
        margin:0;
        border:none;
 }
+.plugin_controls {
+       padding: 3px 3px 3px 0;
+       font-weight: bold;
+       float: left;
+       width: 150px;
+}
+form.admin_plugins_simpleview .submit_button {
+       margin-right:20px;
+}
+.plugin_info {
+       margin: 3px;
+       padding-left: 150px;
+       display: block;
+}
+.plugin_metadata {
+       display:block;
+       color:#999999;
+}
+.plugin_name input[type="checkbox"] {
+       margin-right: 10px;
+}
 .plugin_details {
        margin:0 0 5px 0;
        padding:0 7px 4px 10px;
@@ -1609,4 +1630,22 @@ p.elgg_likes_owner {
 .admin_settings.menuitems li.custom_menuitem {
        margin-bottom:20px;
 }
-
+.admin .child_submenu li a{
+       margin-left: 15px;
+       background-color: white;
+       color: #4690D6;
+}
+.admin_notices {
+       padding-bottom: 15px;
+}
+.admin_notices p {
+       background-color:#BDE5F8;
+       color: black;
+       border: 1px solid blue;
+       font-weight: bold;
+       padding:3px 10px;
+       -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); /* safari v3+ */
+       -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); /* FF v3.5+ */
+       -webkit-border-radius: 4px;
+       -moz-border-radius: 4px;
+}
diff --git a/views/default/object/admin_notice.php b/views/default/object/admin_notice.php
new file mode 100644 (file)
index 0000000..1a162ce
--- /dev/null
@@ -0,0 +1,11 @@
+<?php
+/**
+ * A persistent admin notice to be displayed on all admin pages until cleared.
+ */
+
+if (isset($vars['entity']) && elgg_instanceof($vars['entity'], 'object', 'admin_notice')) {
+       $notice = $vars['entity'];
+       $message = $notice->description;
+       echo "<p>$message</p>";
+}
+