aboutsummaryrefslogtreecommitdiff
path: root/mod/saravea_theme/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/saravea_theme/start.php')
-rw-r--r--mod/saravea_theme/start.php132
1 files changed, 132 insertions, 0 deletions
diff --git a/mod/saravea_theme/start.php b/mod/saravea_theme/start.php
new file mode 100644
index 000000000..b74541490
--- /dev/null
+++ b/mod/saravea_theme/start.php
@@ -0,0 +1,132 @@
+<?php
+
+elgg_register_event_handler('init', 'system', 'saravea_theme_init');
+
+function saravea_theme_init() {
+ elgg_unregister_menu_item('topbar','elgg_logo');
+ $item = new ElggMenuItem('site_logo', elgg_get_site_entity()->name, elgg_get_site_url());
+ elgg_register_menu_item('topbar', $item);
+ elgg_register_plugin_hook_handler('register', 'menu:topbar', 'saravea_theme_topbar_menu');
+
+ elgg_register_simplecache_view('saravea_theme/landing');
+ elgg_register_css('n1:landing_page', elgg_get_simplecache_url('css', 'saravea_theme/landing'));
+
+ elgg_extend_view('css/elgg', 'saravea_theme/css');
+ elgg_extend_view('js/elgg', 'saravea_theme/js');
+ elgg_extend_view('page/elements/title', 'saravea_theme/header', 0);
+ // custom index widgets
+ foreach(array("custom_index", "edit_widgets", "index_2rbhh", "index_2rhhb",
+ "index", "index_2rbms", "index_2rmsb",
+ "index_1rsss", "index_2rbsm", "index_2rsmb") as $layout) {
+ elgg_extend_view('page/layouts/'.$layout, 'saravea_theme/landing', 0);
+ }
+
+ if (elgg_is_active_plugin('pages')) {
+ // pages icon url override
+ elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'saravea_theme_pages_icon_url_override');
+ }
+}
+
+function saravea_theme_topbar_menu($hook, $type, $returnvalue, $params){
+ $user = elgg_get_logged_in_user_entity();
+
+ if (elgg_is_active_plugin('groups')) {
+
+ $ia = elgg_set_ignore_access(TRUE);
+ $num_invitations = elgg_get_entities_from_relationship(array(
+ 'relationship' => 'invited',
+ 'relationship_guid' => $user->guid,
+ 'inverse_relationship' => TRUE,
+ 'limit' => 0,
+ 'count' => TRUE,
+ ));
+ elgg_set_ignore_access($ia);
+
+ if ($num_invitations) {
+ $num_invitations = elgg_view('output/url', array(
+ 'text' => "<span class=\"messages-new\">$num_invitations</span>",
+ 'href' => "groups/invitations/$user->username",
+ ));
+ }
+
+ $returnvalue[] = ElggMenuItem::factory(array(
+ 'name' => 'groups',
+ 'href' => "groups/member/$user->username",
+ 'text' => elgg_view_icon('groups') . $num_invitations,
+ 'title' => elgg_echo('groups'),
+ 'priority' => 500,
+ ));
+ }
+
+ if (elgg_is_admin_logged_in()) {
+ $returnvalue[] = ElggMenuItem::factory(array(
+ 'name' => 'administration',
+ 'href' => "admin",
+ 'text' => elgg_view_icon('settings'),
+ 'title' => elgg_echo('admin'),
+ 'priority' => 100,
+ 'section' => 'alt',
+ ));
+ }
+
+ if (elgg_is_active_plugin('dashboard')) {
+ $returnvalue[] = ElggMenuItem::factory(array(
+ 'name' => 'dashboard',
+ 'href' => "dashboard",
+ 'text' => elgg_view_icon('home'),
+ 'title' => elgg_echo('dashboard'),
+ 'priority' => 200,
+ 'section' => 'alt',
+ ));
+ }
+
+ $returnvalue[] = ElggMenuItem::factory(array(
+ 'name' => 'usersettings',
+ 'href' => "settings/user/{$user->username}",
+ 'text' => elgg_view_icon('settings-alt'),
+ 'title' => elgg_echo('settings'),
+ 'priority' => 500,
+ 'section' => 'alt',
+ ));
+
+ $returnvalue[] = ElggMenuItem::factory(array(
+ 'name' => 'logout',
+ 'href' => "action/logout",
+ 'text' => elgg_echo('logout'),
+ 'title' => elgg_echo('logout'),
+ 'is_action' => TRUE,
+ 'priority' => 1000,
+ 'section' => 'alt',
+ ));
+ return $returnvalue;
+}
+
+/**
+ * Override the default entity icon for pages and pads
+ *
+ * @return string Relative URL
+ */
+function saravea_theme_pages_icon_url_override($hook, $type, $returnvalue, $params) {
+ $entity = $params['entity'];
+ if (elgg_instanceof($entity, 'object', 'page_top') ||
+ elgg_instanceof($entity, 'object', 'page')) {
+ $icon = 'pages';
+ } elseif (elgg_instanceof($entity, 'object', 'etherpad') ||
+ elgg_instanceof($entity, 'object', 'subpad')) {
+ $icon = 'pad';
+ } else {
+ return $returnvalue;
+ }
+ switch ($params['size']) {
+ case 'topbar':
+ case 'tiny':
+ return "mod/saravea_theme/_graphics/icons/{$icon}_tiny.gif";
+ break;
+ case 'small':
+ return "mod/saravea_theme/_graphics/icons/{$icon}_small.gif";
+ break;
+ default:
+ return "mod/saravea_theme/_graphics/icons/{$icon}_lrg.gif";
+ break;
+ }
+}