/** * Initialize the plugin */ function reportedcontent_init() { // Register a page handler, so we can have nice URLs elgg_register_page_handler('reportedcontent', 'reportedcontent_page_handler'); // Extend CSS elgg_extend_view('css/elgg', 'reportedcontent/css'); elgg_extend_view('css/admin', 'reportedcontent/admin_css'); // Extend footer with report content link if (elgg_is_logged_in()) { $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'title' => elgg_echo('reportedcontent:this:tooltip'), 'text' => elgg_view_icon('report-this'), 'priority' => 500, 'section' => 'default')); } elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'reportedcontent_user_hover_menu'); // Add admin menu item // @todo Might want to move this to a 'feedback' section. something other than utils elgg_register_admin_menu_item('administer', 'reportedcontent', 'administer_utilities'); elgg_register_widget_type('reportedcontent', elgg_echo('reportedcontent'), elgg_echo('reportedcontent:widget:description'), array('admin')); // Register actions $action_path = elgg_get_plugins_path() . "reportedcontent/actions/reportedcontent"; elgg_register_action('reportedcontent/add', "{$action_path}/add.php"); elgg_register_action('reportedcontent/delete', "{$action_path}/delete.php", 'admin'); elgg_register_action('reportedcontent/archive', "{$action_path}/archive.php", 'admin'); }
/** * */ public function setUp($hook, $type, $menu, $params) { if (!elgg_is_logged_in()) { return $menu; } $user = elgg_get_logged_in_user_entity(); if (!$user->isAdmin() && $user->role !== 'curator') { return $menu; } $entity = $params['entity']; if (elgg_get_plugin_user_setting('not_exposable', $entity->owner_guid, 'expozeum') == false) { // We don't want to feature users, sites nor groups if (!elgg_instanceof($entity, 'object', 'hjalbumimage')) { return $menu; } if ($entity->expozeum) { $action = 'unexpozeum'; $icon = 'eye-alt'; //$text = 'unexpozeum'; } else { $action = 'expozeum'; $icon = 'eye'; //$text = 'expozeum'; } $menu[] = ElggMenuItem::factory(array('name' => 'expozeum', 'text' => elgg_view_icon($icon), 'href' => "action/expozeum_content/{$action}?guid={$entity->guid}", 'is_action' => true)); return $menu; } return $menu; }
function friend_request_pagesetup() { $context = elgg_get_context(); $page_owner = elgg_get_page_owner_entity(); // Remove link to friendsof elgg_unregister_menu_item("page", "friends:of"); if ($user = elgg_get_logged_in_user_entity()) { $options = array("type" => "user", "count" => true, "relationship" => "friendrequest", "relationship_guid" => $user->getGUID(), "inverse_relationship" => true); if ($count = elgg_get_entities_from_relationship($options)) { $params = array("name" => "friend_request", "href" => "friend_request/" . $user->username, "text" => elgg_view_icon("user") . "<span class='friend-request-new'>" . $count . "</span>", "title" => elgg_echo("friend_request:menu"), "priority" => 301); elgg_register_menu_item("topbar", $params); } } // Show menu link in the correct context if (in_array($context, array("friends", "friendsof", "collections", "messages")) && !empty($page_owner) && $page_owner->canEdit()) { $options = array("type" => "user", "count" => true, "relationship" => "friendrequest", "relationship_guid" => $page_owner->getGUID(), "inverse_relationship" => true); if ($count = elgg_get_entities_from_relationship($options)) { $extra = " [" . $count . "]"; } else { $extra = ""; } // add menu item $menu_item = array("name" => "friend_request", "text" => elgg_echo("friend_request:menu") . $extra, "href" => "friend_request/" . $page_owner->username, "contexts" => array("friends", "friendsof", "collections", "messages"), "section" => "friend_request"); elgg_register_menu_item("page", $menu_item); } }
/** * Add some menu items to the entity menu * * @param string $hook "register" * @param string $entity_type "menu:entity" * @param ElggMenuItem[] $returnvalue the current menu items * @param array $params supplied params * * @return ElggMenuItem[] */ public static function register($hook, $entity_type, $returnvalue, $params) { if (empty($params) || !is_array($params)) { return $returnvalue; } $entity = elgg_extract("entity", $params); if (empty($entity) || !elgg_instanceof($entity, "object", "blog")) { return $returnvalue; } // only published blogs if ($entity->status == "draft") { return $returnvalue; } if (!elgg_in_context("widgets") && elgg_is_admin_logged_in()) { $returnvalue[] = \ElggMenuItem::factory(array("name" => "blog-feature", "text" => elgg_echo("blog_tools:toggle:feature"), "href" => "action/blog_tools/toggle_metadata?guid=" . $entity->getGUID() . "&metadata=featured", "item_class" => empty($entity->featured) ? "" : "hidden", "is_action" => true, "priority" => 175)); $returnvalue[] = \ElggMenuItem::factory(array("name" => "blog-unfeature", "text" => elgg_echo("blog_tools:toggle:unfeature"), "href" => "action/blog_tools/toggle_metadata?guid=" . $entity->getGUID() . "&metadata=featured", "item_class" => empty($entity->featured) ? "hidden" : "", "is_action" => true, "priority" => 176)); } if ($entity->canComment()) { $returnvalue[] = \ElggMenuItem::factory(array("name" => "comments", "text" => elgg_view_icon("speech-bubble"), "title" => elgg_echo("comment:this"), "href" => $entity->getURL() . "#comments")); $comment_count = $entity->countComments(); if ($comment_count) { $returnvalue[] = \ElggMenuItem::factory(array("name" => "comments_count", "text" => $comment_count, "title" => elgg_echo("comments"), "href" => false)); } } return $returnvalue; }
function basic_pagesetup_handler() { elgg_unextend_view('page/elements/header', 'search/header'); elgg_unregister_menu_item('topbar', 'dashboard'); elgg_unregister_menu_item('topbar', 'elgg_logo'); // Extend footer with copyright $year = date('Y'); $href = "http://www.perjensen-online.dk"; elgg_register_menu_item('footer', array('name' => 'copyright_this', 'href' => $href, 'title' => elgg_echo('basic_light:tooltip'), 'text' => elgg_echo('basic_light:copyright') . $year . elgg_echo(' Elggzone'), 'priority' => 1, 'section' => 'alt')); // Extend footer with elgg link $href = "http://elgg.org"; elgg_register_menu_item('footer', array('name' => 'elgg', 'href' => $href, 'text' => elgg_echo('basic_light:elgg'), 'priority' => 2, 'section' => 'alt')); if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); if (elgg_is_active_plugin('dashboard')) { elgg_register_menu_item('topbar', array('name' => 'dashboard', 'href' => 'dashboard', 'text' => elgg_view_icon('home') . elgg_echo('dashboard'), 'priority' => 1000, 'section' => 'alt')); } if (elgg_is_active_plugin('reportedcontent')) { elgg_unregister_menu_item('footer', 'report_this'); $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'text' => elgg_view_icon('report-this') . elgg_echo(''), 'title' => elgg_echo('reportedcontent:this:tooltip'), 'priority' => 100)); } } }
/** * Register some menu items for friends UI * @access private */ function _elgg_friends_page_setup() { $owner = elgg_get_page_owner_entity(); $viewer = elgg_get_logged_in_user_entity(); if ($owner) { $params = array( 'name' => 'friends', 'text' => elgg_echo('friends'), 'href' => 'friends/' . $owner->username, 'contexts' => array('friends') ); elgg_register_menu_item('page', $params); $params = array( 'name' => 'friends:of', 'text' => elgg_echo('friends:of'), 'href' => 'friendsof/' . $owner->username, 'contexts' => array('friends') ); elgg_register_menu_item('page', $params); } // topbar if ($viewer) { elgg_register_menu_item('topbar', array( 'name' => 'friends', 'href' => "friends/{$viewer->username}", 'text' => elgg_view_icon('users'), 'title' => elgg_echo('friends'), 'priority' => 300, )); } }
function dashboard_init() { elgg_register_page_handler('dashboard', 'dashboard_page_handler'); elgg_extend_view('css/elgg', 'dashboard/css'); elgg_register_menu_item('topbar', array('name' => 'dashboard', 'href' => 'dashboard', 'text' => elgg_view_icon('home') . elgg_echo('dashboard'), 'priority' => 450, 'section' => 'alt')); elgg_register_plugin_hook_handler('get_list', 'default_widgets', 'dashboard_default_widgets'); }
/** * Add a like button to river actions */ function likes_river_menu_setup($hook, $type, $return, $params) { if (elgg_is_logged_in()) { $item = $params['item']; // only like group creation #3958 if ($item->type == "group" && $item->view != "river/group/create") { return $return; } // don't like users #4116 if ($item->type == "user") { return $return; } $object = $item->getObjectEntity(); if (!elgg_in_context('widgets') && $item->annotation_id == 0) { if ($object->canAnnotate(0, 'likes')) { $hasLiked = elgg_annotation_exists($object->guid, 'likes'); // Always register both. That makes it super easy to toggle with javascript $return[] = ElggMenuItem::factory(array('name' => 'like', 'href' => elgg_add_action_tokens_to_url("/action/likes/add?guid={$object->guid}"), 'text' => elgg_view_icon('thumbs-up'), 'title' => elgg_echo('likes:likethis'), 'item_class' => $hasLiked ? 'hidden' : '', 'priority' => 100)); $return[] = ElggMenuItem::factory(array('name' => 'unlike', 'href' => elgg_add_action_tokens_to_url("/action/likes/delete?guid={$object->guid}"), 'text' => elgg_view_icon('thumbs-up-alt'), 'title' => elgg_echo('likes:remove'), 'item_class' => $hasLiked ? '' : 'hidden', 'priority' => 100)); // likes count $count = elgg_view('likes/count', array('entity' => $object)); if ($count) { $return[] = ElggMenuItem::factory(array('name' => 'likes_count', 'text' => $count, 'href' => false, 'priority' => 101)); } } } } return $return; }
/** * Bookmark init */ function bookmarks_init() { $root = dirname(__FILE__); elgg_register_library('elgg:bookmarks', "{$root}/lib/bookmarks.php"); // actions $action_path = "{$root}/actions/bookmarks"; elgg_register_action('bookmarks/save', "{$action_path}/save.php"); elgg_register_action('bookmarks/delete', "{$action_path}/delete.php"); elgg_register_action('bookmarks/share', "{$action_path}/share.php"); // menus elgg_register_menu_item('site', array('name' => 'bookmarks', 'text' => elgg_echo('bookmarks'), 'href' => 'bookmarks/all')); elgg_register_plugin_hook_handler('register', 'menu:page', 'bookmarks_page_menu'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'bookmarks_owner_block_menu'); elgg_register_page_handler('bookmarks', 'bookmarks_page_handler'); elgg_extend_view('css/elgg', 'bookmarks/css'); elgg_extend_view('js/elgg', 'bookmarks/js'); elgg_register_widget_type('bookmarks', elgg_echo('bookmarks'), elgg_echo('bookmarks:widget:description')); if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); $address = urlencode(current_page_url()); elgg_register_menu_item('extras', array('name' => 'bookmark', 'text' => elgg_view_icon('push-pin-alt'), 'href' => "bookmarks/add/{$user_guid}?address={$address}", 'title' => elgg_echo('bookmarks:this'), 'rel' => 'nofollow')); } // Register granular notification for this type register_notification_object('object', 'bookmarks', elgg_echo('bookmarks:new')); // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'bookmarks_notify_message'); // Register a URL handler for bookmarks elgg_register_entity_url_handler('object', 'bookmarks', 'bookmark_url'); // Register entity type for search elgg_register_entity_type('object', 'bookmarks'); // Groups add_group_tool_option('bookmarks', elgg_echo('bookmarks:enablebookmarks'), true); elgg_extend_view('groups/tool_latest', 'bookmarks/group_module'); }
/** * Set up entity menu for pool objects * * @param string $hook 'register' * @param string $type 'menu:entity' * @param ElggMenuItem[] $return * @param array $params * @return ElggMenuItem[] */ function pool_entity_menu($hook, $type, $return, $params) { $handler = elgg_extract('handler', $params, false); if ($handler != 'task_pool') { return $return; } if (elgg_is_logged_in()) { $entity = $params['entity']; $user_guid = elgg_get_logged_in_user_guid(); if ($entity->isMember($user_guid)) { $text = elgg_echo('pool:leave'); } else { $text = elgg_echo('pool:join'); } $return[] = ElggMenuItem::factory(array('name' => 'test', 'text' => "<span>{$text}</span>", 'href' => "action/pool/toggle_membership?pool_guid={$entity->guid}&user_guid={$user_guid}", 'priority' => 150, 'is_action' => true)); if (elgg_is_admin_logged_in()) { $return[] = ElggMenuItem::factory(array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "admin/pool/save?guid={$entity->guid}")); $return[] = ElggMenuItem::factory(array('name' => 'delete', 'text' => elgg_view_icon('delete'), 'href' => "action/pool/admin/delete?guid={$entity->guid}", 'is_action' => true, 'confirm' => elgg_echo('question:areyousure'), 'priority' => 200)); if ($entity->countMembers()) { $return[] = ElggMenuItem::factory(array('name' => 'shift', 'text' => elgg_echo('pool:shift'), 'href' => "action/pool/shift?guid={$entity->guid}", 'priority' => 150, 'is_action' => true, 'confirm' => elgg_echo('question:areyousure'))); } } } return $return; }
function custom_river_menu_setup($hook, $type, $return, $params) { $item = $params['item']; $options = array('name' => 'delete', 'href' => elgg_add_action_tokens_to_url("action/river/delete?id={$item->id}&subjectId={$item->subject_guid}"), 'text' => elgg_view_icon('delete'), 'title' => elgg_echo('delete'), 'confirm' => elgg_echo('deleteconfirm'), 'priority' => 200); $return[] = ElggMenuItem::factory($options); return $return; }
function aalborg_theme_pagesetup() { elgg_unextend_view('page/elements/header', 'search/header'); if (elgg_is_logged_in()) { elgg_extend_view('page/elements/sidebar', 'search/header', 0); } elgg_unregister_menu_item('topbar', 'dashboard'); if (elgg_is_active_plugin('dashboard')) { elgg_register_menu_item('site', array('name' => 'dashboard', 'href' => 'dashboard', 'text' => elgg_echo('dashboard'))); } if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); elgg_register_menu_item('topbar', array('name' => 'account', 'text' => elgg_echo('account'), 'href' => "#", 'priority' => 100, 'section' => 'alt', 'link_class' => 'elgg-topbar-dropdown')); elgg_unregister_menu_item('topbar', 'usersettings'); elgg_register_menu_item('topbar', array('name' => 'usersettings', 'parent_name' => 'account', 'href' => "/settings/user/{$user->username}", 'text' => elgg_echo('settings'), 'priority' => 103, 'section' => 'alt')); elgg_unregister_menu_item('topbar', 'logout'); elgg_register_menu_item('topbar', array('name' => 'logout', 'parent_name' => 'account', 'href' => '/action/logout', 'is_action' => TRUE, 'text' => elgg_echo('logout'), 'priority' => 104, 'section' => 'alt')); elgg_unregister_menu_item('topbar', 'administration'); if (elgg_is_admin_logged_in()) { elgg_register_menu_item('topbar', array('name' => 'administration', 'parent_name' => 'account', 'href' => 'admin', 'text' => elgg_echo('admin'), 'priority' => 101, 'section' => 'alt')); } elgg_unregister_menu_item('footer', 'report_this'); if (elgg_is_active_plugin('reportedcontent')) { $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'title' => elgg_echo('reportedcontent:this:tooltip'), 'text' => elgg_view_icon('report-this'), 'priority' => 500)); } } }
public static function prepareMenu($h, $t, $v, $p) { $default = new MenuList(elgg_extract('default', $v, [])); $alt = new MenuList(elgg_extract('alt', $v, [])); // dump alt items into default $default->appendList($alt); $avatar = $default->get('profile'); $account = $default->get('account'); if ($avatar && $account) { $user = elgg_get_logged_in_user_entity(); // copy account children under avatar $children = new MenuList($account->getChildren()); // copy admin out $admin = $children->remove('administration'); $url = $avatar->getHref(); $profile = new \ElggMenuItem('view-profile', elgg_echo('profile'), $url); $children->move($profile, 0); $avatar->setHref(null); elgg_push_context('mrclay_aalborg_topbar'); $avatar->setText(elgg_view_entity_icon($user, 'tiny')); elgg_pop_context(); $default->remove($account); $default->push($avatar); if ($admin) { $admin->setTooltip(elgg_echo('admin')); $admin->setText(elgg_view_icon('settings-alt')); $default->move($admin, 0); } } return ['default' => $default->getItems()]; }
/** * Bookmark init */ function bookmarks_init() { $root = dirname(__FILE__); elgg_register_library('elgg:bookmarks', "{$root}/lib/bookmarks.php"); // actions $action_path = "{$root}/actions/bookmarks"; elgg_register_action('bookmarks/save', "{$action_path}/save.php"); elgg_register_action('bookmarks/delete', "{$action_path}/delete.php"); elgg_register_action('bookmarks/share', "{$action_path}/share.php"); // menus elgg_register_menu_item('site', array('name' => 'bookmarks', 'text' => elgg_echo('bookmarks'), 'href' => 'bookmarks/all')); elgg_register_plugin_hook_handler('register', 'menu:page', 'bookmarks_page_menu'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'bookmarks_owner_block_menu'); elgg_register_page_handler('bookmarks', 'bookmarks_page_handler'); elgg_extend_view('elgg.css', 'bookmarks/css'); elgg_extend_view('elgg.js', 'bookmarks/js'); elgg_register_widget_type('bookmarks', elgg_echo('bookmarks'), elgg_echo('bookmarks:widget:description')); if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); $address = urlencode(current_page_url()); elgg_register_menu_item('extras', array('name' => 'bookmark', 'text' => elgg_view_icon('push-pin-alt'), 'href' => "bookmarks/add/{$user_guid}?address={$address}", 'title' => elgg_echo('bookmarks:this'), 'rel' => 'nofollow')); } // Register for notifications elgg_register_notification_event('object', 'bookmarks', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:bookmarks', 'bookmarks_prepare_notification'); // Register bookmarks view for ecml parsing elgg_register_plugin_hook_handler('get_views', 'ecml', 'bookmarks_ecml_views_hook'); // Register a URL handler for bookmarks elgg_register_plugin_hook_handler('entity:url', 'object', 'bookmark_set_url'); // Register entity type for search elgg_register_entity_type('object', 'bookmarks'); // Groups add_group_tool_option('bookmarks', elgg_echo('bookmarks:enablebookmarks'), true); elgg_extend_view('groups/tool_latest', 'bookmarks/group_module'); }
/** * Add menu items to the entity menu * * @param string $hook the name of the hook * @param string $type the type of the hook * @param ElggMenuItem[] $items current return value * @param array $params supplied params * * @return void|ElggMenuItem[] */ function questions_entity_menu_handler($hook, $type, $items, $params) { if (empty($params) || !is_array($params)) { return; } $entity = elgg_extract('entity', $params); if (empty($entity) || !$entity instanceof ElggQuestion && !$entity instanceof ElggAnswer) { return; } if ($entity->canComment()) { if (elgg_extract('full_view', $params, false) || $entity instanceof ElggAnswer) { $items[] = ElggMenuItem::factory(['name' => 'comments', 'rel' => 'toggle', 'link_class' => 'elgg-toggler', 'href' => "#comments-add-{$entity->getGUID()}", 'text' => elgg_view_icon('speech-bubble'), 'priority' => 600]); } } if (elgg_in_context('questions') && $entity instanceof ElggAnswer && questions_can_mark_answer($entity)) { $question = $entity->getContainerEntity(); $answer = $question->getMarkedAnswer(); if (empty($answer)) { $items[] = ElggMenuItem::factory(['name' => 'questions_mark', 'text' => elgg_echo('questions:menu:entity:answer:mark'), 'href' => "action/answers/toggle_mark?guid={$entity->getGUID()}", 'is_action' => true]); } elseif ($entity->getGUID() === $answer->getGUID()) { // there is an anwser and it's this entity $items[] = ElggMenuItem::factory(['name' => 'questions_mark', 'text' => elgg_echo('questions:menu:entity:answer:unmark'), 'href' => "action/answers/toggle_mark?guid={$entity->getGUID()}", 'is_action' => true]); } } return $items; }
/** * Add items to the file entity menu * * @param string $hook the name of the hook * @param string $type the type of the hook * @param ElggMenuItem[] $return_value current return value * @param array $params supplied params * * @return void|ElggMenuItem[] */ public static function registerFile($hook, $type, $return_value, $params) { $entity = elgg_extract('entity', $params); if (!$entity instanceof \ElggFile) { return; } $return_value[] = \ElggMenuItem::factory(['name' => 'download', 'text' => elgg_view_icon('download'), 'title' => elgg_echo('download'), 'href' => elgg_get_download_url($entity), 'priority' => 200]); return $return_value; }
function questions_entity_menu_handler($hook, $type, $items, $params) { $entity = $params['entity']; if ($entity->getSubtype() == 'question' || $entity->getSubtype() == 'answer') { if ($entity->canAnnotate(0, 'generic_comment')) { $items[] = ElggMenuItem::factory(array('name' => 'comment', 'rel' => 'toggle', 'link_class' => 'elgg-toggler', 'href' => "#comments-add-{$entity->guid}", 'text' => elgg_view_icon('speech-bubble'), 'priority' => 600)); } } return $items; }
/** * Setup starrating annotation menu * * @param type $hook * @param type $type * @param type $return * @param type $params */ function elgg_stars_annotation_menu_setup($hook, $type, $return, $params) { $annotation = elgg_extract('annotation', $params); if (!elgg_stars_is_valid_rating_annotation_name($annotation->name)) { return $return; } if ($annotation->canEdit()) { $return[] = ElggMenuItem::factory(array('name' => 'delete', 'text' => elgg_view_icon('delete'), 'href' => 'action/stars/delete?annotation_id=' . $annotation->id, 'is_action' => true)); } return $return; }
/** * Setup image menu * * @param string $hook "register" * @param string $type "menu:entity" * @param ElggMenuItem[] $return Menu * @param array $params Hook params * @return ElggMenuItem[] */ function images_ui_setup_entity_menu($hook, $type, $return, $params) { $entity = elgg_extract('entity', $params); if (!images()->isImage($entity)) { return; } if ($entity->canEdit()) { $return[] = ElggMenuItem::factory(['name' => 'edit', 'text' => elgg_echo('edit'), 'title' => elgg_echo('edit:this'), 'href' => "/images/edit/{$entity->guid}", 'priority' => 200]); $return[] = ElggMenuItem::factory(['name' => 'delete', 'text' => elgg_view_icon('delete'), 'title' => elgg_echo('delete:this'), 'href' => "/action/entity/delete?guid={$entity->guid}", 'confirm' => elgg_echo('deleteconfirm'), 'priority' => 300]); } return $return; }
/** * Rearrange menu items */ function aalborg_theme_pagesetup() { elgg_unextend_view('page/elements/header', 'search/header'); if (elgg_is_logged_in()) { elgg_extend_view('page/elements/sidebar', 'search/header', 0); } if (elgg_is_logged_in()) { elgg_register_menu_item('topbar', array('name' => 'account', 'text' => elgg_echo('account'), 'href' => "#", 'priority' => 100, 'section' => 'alt', 'link_class' => 'elgg-topbar-dropdown')); if (elgg_is_active_plugin('dashboard')) { $item = elgg_unregister_menu_item('topbar', 'dashboard'); if ($item) { $item->setText(elgg_echo('dashboard')); $item->setSection('default'); elgg_register_menu_item('site', $item); } } $item = elgg_get_menu_item('topbar', 'usersettings'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('settings')); $item->setPriority(103); } $item = elgg_get_menu_item('topbar', 'logout'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('logout')); $item->setPriority(104); } $item = elgg_get_menu_item('topbar', 'administration'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('admin')); $item->setPriority(101); } if (elgg_is_active_plugin('site_notifications')) { $item = elgg_get_menu_item('topbar', 'site_notifications'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('site_notifications:topbar')); $item->setPriority(102); } } if (elgg_is_active_plugin('reportedcontent')) { $item = elgg_unregister_menu_item('footer', 'report_this'); if ($item) { $item->setText(elgg_view_icon('report-this')); $item->setPriority(500); $item->setSection('default'); elgg_register_menu_item('extras', $item); } } } }
function super_dashboard_init() { elgg_register_page_handler('super_dashboard', 'super_dashboard_page_handler'); if (elgg_is_logged_in()) { $item = new ElggMenuItem('ytv', elgg_echo('super_dashboard:title'), 'super_dashboard'); elgg_register_menu_item('site', $item); } elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'super_dashboard_owner_block_menu'); //elgg_register_widget_type("ytv", elgg_echo("ytv:title"), elgg_echo("ytv:description"), "ytv", false); //elgg_extend_view("css/elgg", "ytv/css"); //elgg_register_js('elgg.ytv','mod/ytv/js/ytv.js'); elgg_register_menu_item('topbar', array('name' => 'dashboard', 'href' => 'super_dashboard', 'text' => elgg_view_icon('home') . elgg_echo('dashboard'), 'priority' => 450, 'section' => 'alt')); }
function widget_manager_init() { // check valid WidgetManagerWidget class if (get_subtype_class("object", "widget") == "ElggWidget") { update_subtype("object", "widget", "WidgetManagerWidget"); } elgg_trigger_event("widgets_init", "widget_manager"); if (elgg_is_active_plugin("groups") && elgg_get_plugin_setting("group_enable", "widget_manager") == "yes") { // add the widget manager tool option $group_option_enabled = false; if (elgg_get_plugin_setting("group_option_default_enabled", "widget_manager") == "yes") { $group_option_enabled = true; } if (elgg_get_plugin_setting("group_option_admin_only", "widget_manager") != "yes") { // add the tool option for group admins add_group_tool_option('widget_manager', elgg_echo('widget_manager:groups:enable_widget_manager'), $group_option_enabled); } elseif (elgg_is_admin_logged_in()) { add_group_tool_option('widget_manager', elgg_echo('widget_manager:groups:enable_widget_manager'), $group_option_enabled); } elseif ($group_option_enabled) { // register event to make sure newly created groups have the group option enabled elgg_register_event_handler("create", "group", "widget_manager_create_group_event_handler"); elgg_register_plugin_hook_handler('get_list', 'default_widgets', 'widget_manager_group_widgets_default_list'); } } // extend CSS elgg_extend_view("css/elgg", "widget_manager/css/global"); elgg_extend_view("css/admin", "widget_manager/css/global"); elgg_extend_view("js/elgg", "widget_manager/js/site"); elgg_extend_view("js/admin", "widget_manager/js/admin"); // register a widget title url handler elgg_register_entity_url_handler("object", "widget", "widget_manager_widget_url_handler"); // multi dashboard support add_subtype("object", MultiDashboard::SUBTYPE, "MultiDashboard"); if (elgg_is_logged_in() && widget_manager_multi_dashboard_enabled()) { elgg_register_page_handler("multi_dashboard", "widget_manager_multi_dashboard_page_handler"); $options = array("type" => "object", "subtype" => MultiDashboard::SUBTYPE, "owner_guid" => elgg_get_logged_in_user_guid(), "count" => true); $tab_count = elgg_get_entities($options); if ($tab_count < MULTI_DASHBOARD_MAX_TABS) { elgg_register_menu_item("extras", array("name" => "multi_dashboard", "text" => elgg_view_icon("home"), "href" => "multi_dashboard/edit/?internal_url=" . urlencode(current_page_url()), "title" => elgg_echo("widget_manager:multi_dashboard:extras"), "rel" => "nofollow", "id" => "widget-manager-multi_dashboard-extras")); } elgg_extend_view("page/elements/sidebar", "widget_manager/multi_dashboard/sidebar", 400); elgg_register_event_handler("create", "object", "widget_manager_create_object_handler"); elgg_register_plugin_hook_handler("route", "dashboard", "widget_manager_dashboard_route_handler"); elgg_register_plugin_hook_handler("action", "widgets/add", "widget_manager_widgets_add_action_handler"); elgg_register_action("multi_dashboard/edit", dirname(__FILE__) . "/actions/multi_dashboard/edit.php"); elgg_register_action("multi_dashboard/delete", dirname(__FILE__) . "/actions/multi_dashboard/delete.php"); elgg_register_action("multi_dashboard/drop", dirname(__FILE__) . "/actions/multi_dashboard/drop.php"); elgg_register_action("multi_dashboard/reorder", dirname(__FILE__) . "/actions/multi_dashboard/reorder.php"); } }
/** * Show the group access status indicator * * @param string $hook the name of the hook * @param string $type the type of the hook * @param \ElggMenuItem[] $return_value current return vaue * @param array $params supplied params * * @return void|\ElggMenuItem[] */ public static function showGroupHiddenIndicator($hook, $type, $return_value, $params) { $entity = elgg_extract('entity', $params); if (!$entity instanceof \ElggGroup) { return; } if (!group_tools_show_hidden_indicator($entity)) { return; } $access_id_string = get_readable_access_level($entity->access_id); $text = elgg_format_element('span', ['title' => $access_id_string], elgg_view_icon('eye')); $return_value[] = \ElggMenuItem::factory(['name' => 'hidden_indicator', 'text' => $text, 'href' => false, 'priority' => 1]); return $return_value; }
/** * Add menu items to the topbar * * @param string $hook the name of the hook * @param string $type the type of the hook * @param \ElggMenuItem[] $return_value the current return value * @param array $params supplied params * * @return void|\ElggMenuItem[] */ public static function register($hook, $type, $return_value, $params) { $user = elgg_get_logged_in_user_entity(); if (empty($user)) { return; } $options = ['type' => 'user', 'count' => true, 'relationship' => 'friendrequest', 'relationship_guid' => $user->getGUID(), 'inverse_relationship' => true]; $count = elgg_get_entities_from_relationship($options); if (empty($count)) { return; } $return_value[] = \ElggMenuItem::factory(['name' => 'friend_request', 'href' => "friend_request/{$user->username}", 'text' => elgg_view_icon('user') . elgg_format_element('span', ['class' => 'friend-request-new'], $count), 'title' => elgg_echo('friend_request:menu'), 'priority' => 301]); return $return_value; }
function widget_favorites_pagesetup() { if (widget_favorites_has_widget()) { if ($favorite = widget_favorites_is_linked()) { $text = elgg_view_icon("star-alt"); $href = "action/favorite/toggle?guid=" . $favorite->getGUID(); $title = elgg_echo("widgets:favorites:menu:remove"); } else { $text = elgg_view_icon("star-empty"); $href = "action/favorite/toggle?link=" . elgg_normalize_url(current_page_url()); $title = elgg_echo("widgets:favorites:menu:add"); } elgg_register_menu_item("extras", array("name" => "widget_favorites", "title" => $title, "href" => $href, "text" => $text)); } }
public function register($hook, $type, $return, $params) { $menu = new Menu($return); $target = $params['target']; if (class_exists('ElggWire')) { if (evan_user_can('post', new ElggWire(), $target)) { $menu->registerItem('thewire', array('href' => "/ajax/view/thewire/composer?container_guid={$target->guid}", 'text' => elgg_view_icon('share') . elgg_echo("composer:object:thewire"), 'priority' => 100)); //trigger any javascript loads that we might need elgg_view('thewire/composer'); } } if (elgg_is_active_plugin('messageboard')) { if ($target->canAnnotate(0, 'messageboard')) { $menu->registerItem('messageboard', array('href' => "/ajax/view/messageboard/composer?entity_guid={$target->guid}", 'text' => elgg_view_icon('speech-bubble-alt') . elgg_echo("composer:annotation:messageboard"), 'priority' => 200)); //trigger any javascript loads that we might need elgg_view('messageboard/composer'); } } if (class_exists('ElggBookmark')) { if (evan_user_can('post', new ElggBookmark(), $target)) { $menu->registerItem('bookmarks', array('href' => "/ajax/view/bookmarks/composer?container_guid={$target->guid}", 'text' => elgg_view_icon('push-pin') . elgg_echo("composer:object:bookmarks"), 'priority' => 300)); //trigger any javascript loads that we might need elgg_view('bookmarks/composer'); } } if (class_exists('TidypicsAlbum')) { if (evan_user_can('post', new TidypicsAlbum(), $target)) { $menu->registerItem('album', array('href' => "/ajax/view/photos/album/composer?container_guid={$target->guid}", 'text' => elgg_view_icon('photo') . elgg_echo("composer:object:album"), 'priority' => 400)); //trigger any javascript loads that we might need elgg_view('photos/album/composer'); } } if (class_exists('ElggBlog')) { if (evan_user_can('post', new ElggBlog(), $target)) { $menu->registerItem('blog', array('href' => "/ajax/view/blog/composer?container_guid={$target->guid}", 'text' => elgg_view_icon('speech-bubble') . elgg_echo("composer:object:blog"), 'priority' => 600)); //trigger any javascript loads that we might need elgg_view('blog/composer'); } } if (class_exists('FilePluginFile')) { if (evan_user_can('post', new FilePluginFile(), $target)) { $menu->registerItem('file', array('href' => "/ajax/view/file/composer?container_guid={$target->guid}", 'text' => elgg_view_icon('clip') . elgg_echo("composer:object:file"), 'priority' => 700)); //trigger any javascript loads that we might need elgg_view('file/composer'); } } return $menu->getItems(); }
/** * Add a menu item to the follow_tag * * @param string $hook the name of the hook * @param string $type the type of the hook * @param \ElggMenuItem[] $return_value current return value * @param mixed $params supplied params * * @return void|\ElggMenuItem[] */ public static function registerFollowTag($hook, $type, $return_value, $params) { if (!elgg_is_logged_in()) { return; } $tag = elgg_extract('tag', $params); if (is_null($tag) || $tag === '') { return; } $encoded_tag = htmlspecialchars($tag, ENT_QUOTES, 'UTF-8', false); $following = tag_tools_is_user_following_tag($tag); $action_url = elgg_http_add_url_query_elements('action/tag_tools/follow_tag', ['tag' => $encoded_tag]); $return_value[] = \ElggMenuItem::factory(['name' => 'follow_tag_on', 'text' => elgg_view_icon('refresh'), 'title' => elgg_echo('tag_tools:follow_tag:menu:on'), 'href' => $action_url, 'is_action' => true, 'item_class' => $following ? 'hidden' : '']); $return_value[] = \ElggMenuItem::factory(['name' => 'follow_tag_off', 'text' => elgg_view_icon('refresh-hover'), 'title' => elgg_echo('tag_tools:follow_tag:menu:off'), 'href' => $action_url, 'is_action' => true, 'item_class' => $following ? '' : 'hidden']); return $return_value; }
/** * Reorganize entity menu * * @param string $hook "register" * @param string $type "menu:entity" * @param ElggMenuItem[] $return Menu * @param array $params Hook params * @return ElggMenuItem[] */ function menus_entity_setup($hook, $type, $return, $params) { $setting_primary = elgg_get_plugin_setting('primary_actions', 'menus_entity', ''); $primary_actions = (array) string_to_tag_array($setting_primary); $setting_remove = elgg_get_plugin_setting('remove_actions', 'menus_entity', ''); $remove_actions = (array) string_to_tag_array($setting_remove); $ellipsis = false; foreach ($return as &$item) { if (!$item instanceof ElggMenuItem) { continue; } if (in_array($item->getName(), $remove_actions)) { $item = null; continue; } if (in_array($item->getName(), $primary_actions) || !$item->getHref()) { continue; } $ellipsis = true; $item->setParentName('ellipsis'); // combine all menus into one section // subsection data is used by menus_api, if enabled $item->setData('subsection', $item->getSection()); $item->setSection('default'); switch ($item->getName()) { case 'edit': $item->setText(elgg_echo('edit')); $item->setData('icon', 'pencil'); $item->setData('subsection', 'admin'); break; case 'delete': $item->setText(elgg_echo('delete')); $item->setData('icon', 'remove'); $item->setData('subsection', 'admin'); break; } } if ($ellipsis) { $icon = elgg_get_plugin_setting('icon', 'menus_entity'); if (!$icon) { $icon = 'ellipsis-v'; } $return[] = ElggMenuItem::factory(array('name' => 'ellipsis', 'href' => '#', 'text' => elgg_view_icon($icon), 'item_class' => 'elgg-menu-item-has-dropdown', 'data-my' => 'right top', 'data-at' => 'right bottom+5px', 'priority' => 9999, 'section' => 'default')); } return array_filter($return); }
function customactivity_river_menu_handler($hook, $type, $items, $params) { $item = $params['item']; $object = $item->getObjectEntity(); if (!elgg_in_context('widgets') && !$item->annotation_id && $object instanceof ElggEntity) { if (elgg_is_active_plugin('likes') && $object->canAnnotate(0, 'likes')) { if (!elgg_annotation_exists($object->getGUID(), 'likes')) { // user has not liked this yet $options = array('name' => 'like', 'href' => "action/likes/add?guid={$object->guid}", 'text' => elgg_view_icon('thumbs-up'), 'title' => elgg_echo('likes:likethis'), 'is_action' => true, 'priority' => 100); } else { // user has liked this $options = array('name' => 'like', 'href' => "action/likes/delete?guid={$object->guid}", 'text' => elgg_view_icon('thumbs-up-alt'), 'title' => elgg_echo('likes:remove'), 'is_action' => true, 'priority' => 100); } $items[] = ElggMenuItem::factory($options); } } return $items; }
/** * Setup menu items */ function community_theme_pagesetup() { // Extend footer with report content link if (elgg_is_logged_in()) { elgg_unregister_menu_item('footer', 'report_this'); $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'title' => elgg_echo('reportedcontent:this:tooltip'), 'text' => elgg_view_icon('report-this'))); } // footer navigation $items = array('home' => array(elgg_echo('community_theme:home'), 'elgg.org'), 'community' => array(elgg_echo('community_theme:community'), 'community.elgg.org'), 'blog' => array(elgg_echo('community_theme:blog'), 'blog.elgg.org'), 'hosting' => array(elgg_echo('community_theme:hosting'), 'elgg.org/hosting.php'), 'services' => array(elgg_echo('community_theme:services'), 'elgg.org/services.php'), 'docs' => array(elgg_echo('community_theme:learn'), 'learn.elgg.org/'), 'download' => array(elgg_echo('community_theme:download'), 'elgg.org/download.php')); foreach ($items as $id => $info) { list($text, $href) = $info; $item = new ElggMenuItem($id, $text, $href); elgg_register_menu_item('footer_navigation', $item); } elgg_register_menu_item('footer', array('name' => 'policy', 'href' => "http://elgg.org/domain.php", 'text' => elgg_echo('community_theme:policy'), 'section' => 'default')); }