To create a menu item that is not a link, pass false for $href. Any undocumented properties set will be passed to the output/url view during rendering. E.g. to give a menu item a "target" attribute, set $item->target, or include a "target" key in the options array for factory().
Since: 1.8.0
示例#1
0
 public function getMenuItem(ElggMenuItem $parent, $top_only = false)
 {
     if ($parent) {
         $menu_item = array('name' => "{$parent->getName()}:{$this->guid}", 'parent_name' => "{$parent->getName()}", 'text' => "<img class=\"hj-categories-tree-icon\" src=\"{$this->getIconURL('tiny')}\" width=\"12\" />" . $this->title . ' (' . $this->getFiledEntitiesCount() . ')', 'href' => $this->getURL(), 'class' => 'hj-categories-menu-child', 'priority' => $this->priority, 'data' => array('category_guid' => $this->guid));
     } else {
         $menu_item = array('name' => "{$this->guid}", 'text' => "<img class=\"hj-categories-tree-icon\" src=\"{$this->getIconURL('tiny')}\" width=\"12\" />" . $this->title . ' (' . $this->getFiledEntitiesCount() . ')', 'href' => $this->getURL(), 'class' => 'hj-categories-menu-root', 'priority' => $this->priority, 'data' => array('category_guid' => $this->guid));
     }
     $menu_item = ElggMenuItem::factory($menu_item);
     $return[] = $menu_item;
     // Empty menu item to create html markup
     if ($this->canEdit() && elgg_get_context() == 'category') {
         $add_new = array('name' => "{$menu_item->getName()}:addnew", 'parent_name' => "{$menu_item->getName()}", 'text' => '', 'item_class' => 'hidden', 'href' => false, 'priority' => 1);
         $return[] = ElggMenuItem::factory($add_new);
     }
     if (!$top_only) {
         $children = $this->getChildren();
         if (is_array($children)) {
             foreach ($children as $child) {
                 $submenu = $child->getMenuItem($menu_item);
                 if (is_array($submenu)) {
                     foreach ($submenu as $submenu_item) {
                         $return[] = $submenu_item;
                     }
                 }
             }
         }
     }
     return $return;
 }
示例#2
0
/**
 * Add to the user hover menu
 */
function logbrowser_user_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    $url = "admin/overview/logbrowser?user_guid={$user->guid}";
    $item = new ElggMenuItem('logbrowser', elgg_echo('logbrowser:explore'), $url);
    $item->setSection('admin');
    $return[] = $item;
    return $return;
}
示例#3
0
function album_link_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    $url = elgg_get_site_url() . "photos/owner/" . $user->username;
    $item = new ElggMenuItem('album_link_hover', elgg_echo("album_link:album_link", array($user->name)), $url);
    $item->setSection('action');
    $return[] = $item;
    return $return;
}
示例#4
0
文件: start.php 项目: lorea/Hydra-dev
function donation_user_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    $url = "action/donation/add?guid={$user->guid}";
    $url = elgg_add_action_tokens_to_url($url);
    $item = new ElggMenuItem('donation', elgg_echo('donation:add'), $url);
    $item->setSection('admin');
    $return[] = $item;
    return $return;
}
示例#5
0
文件: hooks.php 项目: n8b/VMN
function hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    if ($user->spam_throttle_suspension > time() && elgg_is_admin_logged_in()) {
        $url = "action/spam_throttle/unsuspend?guid={$user->guid}";
        $item = new \ElggMenuItem("spam_throttle_unsuspend", elgg_echo("spam_throttle:unsuspend"), $url);
        $item->setConfirmText(elgg_echo('spam_throttle:unsuspend:confirm'));
        $item->setSection('admin');
        $return[] = $item;
    }
    return $return;
}
示例#6
0
/**
 * 
 * @param type $hook
 * @param type $type
 * @param type $returnvalue
 * @param type $params
 * @return ElggMenuItem
 */
function user_hover_hook($hook, $type, $returnvalue, $params)
{
    $user = $params['entity'];
    $url = elgg_get_site_url() . "activity_tabs/user/{$user->username}";
    $item = new \ElggMenuItem('activity_tabs_user_activity', elgg_echo('activity_tabs'), $url);
    if ($type == 'menu:user_hover') {
        $item->setSection('action');
        $item->setLinkClass('activity-tabs-user-hover');
        $item->setPriority(200);
    }
    $returnvalue[] = $item;
    return $returnvalue;
}
示例#7
0
/**
 * Add to the user hover menu
 */
function badges_user_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    $url = "admin/administer_utilities/elggx_badges?tab=assign&user_guid={$user->guid}";
    $item = new ElggMenuItem('badges', elgg_echo('badges:assign_badge'), $url);
    $item->setSection('admin');
    $return[] = $item;
    $url = "admin/administer_utilities/elggx_badges?tab=unassign&user_guid={$user->guid}";
    $item = new ElggMenuItem('badges', elgg_echo('badges:unassign_badge'), $url);
    $item->setSection('admin');
    $return[] = $item;
    return $return;
}
/**
 * Add report user link to hover menu
 */
function reportedcontent_user_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    $profile_url = urlencode($user->getURL());
    $name = urlencode($user->name);
    $url = "reportedcontent/add?address={$profile_url}&title={$name}";
    if (elgg_is_logged_in() && elgg_get_logged_in_user_guid() != $user->guid) {
        $item = new ElggMenuItem('reportuser', elgg_echo('reportedcontent:user'), $url);
        $item->setSection('action');
        $return[] = $item;
    }
    return $return;
}
示例#9
0
function hflts_user_hover_menu($hook, $type, $return, $params)
{
    $user = $params['entity'];
    //if (elgg_is_admin_logged_in() != $user->guid) supuestamente esto es para que no vea mi propia valoracion
    if (elgg_is_admin_logged_in()) {
        $url = "hflts/{$user->username}";
        $item = new \ElggMenuItem('hflts:user', elgg_echo('hflts:menuhover'), $url);
        $item->setSection('admin');
        //default + elgg_get_logged_in_user_guid() | admin + elgg_is_admin_logged_in
        //$item->setConfirmText(elgg_echo('confirm'));//saca un are you sure
        $return[] = $item;
    }
    return $return;
}
示例#10
0
/**
 * Add a button to the file page to allow the user to create a new document
 *
 * @param string $hook         the 'route' hook
 * @param string $type         for the 'file' page handler
 * @param bool   $return_value tells which page is handled, contains:
 *               $return_value['handler'] => requested handler
 *               $return_value['segments'] => url parts ($page)
 * @param null   $params       no params provided
 */
function odt_editor_file_menu_title_hook($hook, $type, $return_value, $params)
{
    if (elgg_in_context('file')) {
        $return_value[] = ElggMenuItem::factory(array("name" => "view", "text" => elgg_echo('odt_editor:newdocument'), "class" => "elgg-button elgg-button-action", "id" => "file_tools_list_new_document_toggle", "priority" => 50));
    }
    return $return_value;
}
示例#11
0
文件: start.php 项目: tjcaverly/Elgg
/**
 * 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;
}
示例#12
0
/**
 * This function gets called during the system initialization
 *
 * @return void
 */
function blog_tools_init()
{
    // extend css
    elgg_extend_view('css/elgg', 'css/blog_tools/site.css');
    // extra blog views
    elgg_extend_view('object/blog', 'blog_tools/full/navigation');
    elgg_extend_view('object/blog', 'blog_tools/full/owner');
    elgg_extend_view('object/blog', 'blog_tools/full/related');
    elgg_extend_view('blog/sidebar', 'blog_tools/full/related');
    // register event handlers
    elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\BlogTools\\Upgrade::moveBlogIcons');
    // register plugin hook handlers
    elgg_register_plugin_hook_handler('entity:url', 'object', '\\ColdTrick\\BlogTools\\Widgets::widgetUrl');
    elgg_register_plugin_hook_handler('cron', 'daily', '\\ColdTrick\\BlogTools\\Cron::daily');
    elgg_register_plugin_hook_handler('route', 'blog', '\\ColdTrick\\BlogTools\\Router::blog');
    elgg_register_plugin_hook_handler('register', 'menu:entity', '\\ColdTrick\\BlogTools\\EntityMenu::register');
    elgg_register_plugin_hook_handler('group_tool_widgets', 'widget_manager', '\\ColdTrick\\BlogTools\\Widgets::groupTools');
    elgg_register_plugin_hook_handler('permissions_check:comment', 'object', '\\ColdTrick\\BlogTools\\Access::blogCanComment');
    elgg_register_plugin_hook_handler('view_vars', 'input/form', '\\ColdTrick\\BlogTools\\Views::blogEditFormVars');
    // extend editmenu
    elgg_extend_view('editmenu', 'blog_tools/editmenu');
    // add featured filter menu item
    elgg_register_menu_item('filter', ElggMenuItem::factory(['name' => 'featured', 'text' => elgg_echo('status:featured'), 'context' => 'blog', 'href' => 'blog/featured', 'priority' => 600]));
    // register index widget
    elgg_register_widget_type('index_blog', elgg_echo('blog'), elgg_echo('blog_tools:widgets:index_blog:description'), ['index'], true);
    elgg_register_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description'), ['profile', 'dashboard', 'groups']);
    // overrule blog actions
    elgg_register_action('blog/save', dirname(__FILE__) . '/actions/blog/save.php');
    elgg_register_action('blog/auto_save_revision', dirname(__FILE__) . '/actions/blog/auto_save_revision.php');
    // register actions
    elgg_register_action('blog_tools/toggle_metadata', dirname(__FILE__) . '/actions/toggle_metadata.php', 'admin');
    elgg_register_action('blog_tools/upgrades/move_icons', dirname(__FILE__) . '/actions/upgrades/move_icons.php', 'admin');
}
示例#13
0
/**
 * 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;
}
示例#14
0
 /**
  * Set folder breadcrumb 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 register($hook, $type, $return_value, $params)
 {
     if (empty($params) || !is_array($params)) {
         return;
     }
     $container = elgg_get_page_owner_entity();
     /* @var $folder \ElggObject */
     $folder = elgg_extract('entity', $params);
     if (elgg_instanceof($folder, 'object', FILE_TOOLS_SUBTYPE)) {
         $container = $folder->getContainerEntity();
         $priority = 9999999;
         $return_value[] = \ElggMenuItem::factory(['name' => "folder_{$folder->getGUID()}", 'text' => $folder->getDisplayName(), 'href' => false, 'priority' => $priority]);
         $parent_guid = (int) $folder->parent_guid;
         while (!empty($parent_guid)) {
             $parent = get_entity($parent_guid);
             if (!elgg_instanceof($parent, 'object', FILE_TOOLS_SUBTYPE)) {
                 break;
             }
             $priority--;
             $return_value[] = \ElggMenuItem::factory(['name' => "folder_{$parent->getGUID()}", 'text' => $parent->getDisplayName(), 'href' => $parent->getURL(), 'priority' => $priority]);
             $parent_guid = (int) $parent->parent_guid;
         }
     }
     // make main folder item
     $main_folder_options = ['name' => 'main_folder', 'text' => elgg_echo('file_tools:list:folder:main'), 'priority' => 0];
     if ($container instanceof \ElggGroup) {
         $main_folder_options['href'] = "file/group/{$container->getGUID()}/all#";
     } else {
         $main_folder_options['href'] = "file/owner/{$container->username}/all#";
     }
     $return_value[] = \ElggMenuItem::factory($main_folder_options);
     return $return_value;
 }
示例#15
0
文件: start.php 项目: lorea/Hydra-dev
/**
 * This function gets called during the system initialization
 *
 * @return void
 */
function blog_tools_init()
{
    // extend css
    elgg_extend_view("css/elgg", "css/blog_tools/site");
    elgg_extend_view("js/elgg", "js/blog_tools/site");
    // extra blog views
    elgg_extend_view("object/blog", "blog_tools/full/navigation");
    elgg_extend_view("object/blog", "blog_tools/full/owner");
    elgg_extend_view("object/blog", "blog_tools/full/related");
    elgg_extend_view("blog/sidebar", "blog_tools/full/related");
    // register event handlers
    elgg_register_event_handler("delete", "object", array("\\ColdTrick\\BlogTools\\DeleteHandler", "cleanupBlogIcon"));
    // register plugin hook handlers
    elgg_register_plugin_hook_handler("entity:url", "object", array("\\ColdTrick\\BlogTools\\Widgets", "widgetUrl"));
    elgg_register_plugin_hook_handler("cron", "daily", array("\\ColdTrick\\BlogTools\\Cron", "daily"));
    elgg_register_plugin_hook_handler("entity:icon:url", "object", array("\\ColdTrick\\BlogTools\\EntityIcon", "blogIcon"));
    elgg_register_plugin_hook_handler("route", "blog", array("\\ColdTrick\\BlogTools\\Router", "blog"));
    elgg_register_plugin_hook_handler("register", "menu:entity", array("\\ColdTrick\\BlogTools\\EntityMenu", "register"));
    elgg_register_plugin_hook_handler("group_tool_widgets", "widget_manager", array("\\ColdTrick\\BlogTools\\Widgets", "groupTools"));
    elgg_register_plugin_hook_handler("permissions_check:comment", "object", array("\\ColdTrick\\BlogTools\\Access", "blogCanComment"));
    // extend editmenu
    elgg_extend_view("editmenu", "blog_tools/editmenu");
    // add featured filter menu item
    elgg_register_menu_item("filter", ElggMenuItem::factory(array("name" => "featured", "text" => elgg_echo("blog_tools:menu:filter:featured"), "context" => "blog", "href" => "blog/featured", "priority" => 600)));
    // register index widget
    elgg_register_widget_type("index_blog", elgg_echo("blog"), elgg_echo("blog_tools:widgets:index_blog:description"), array("index"), true);
    elgg_register_widget_type("blog", elgg_echo("blog"), elgg_echo("blog:widget:description"), array("profile", "dashboard", "groups"));
    // overrule blog actions
    elgg_register_action("blog/save", dirname(__FILE__) . "/actions/blog/save.php");
    elgg_register_action("blog/auto_save_revision", dirname(__FILE__) . "/actions/blog/auto_save_revision.php");
    // register actions
    elgg_register_action("blog_tools/toggle_metadata", dirname(__FILE__) . "/actions/toggle_metadata.php", "admin");
}
示例#16
0
 /**
  * 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;
 }
示例#17
0
function event_manager_entity_menu($hook, $entity_type, $returnvalue, $params)
{
    $result = $returnvalue;
    if (elgg_in_context("widgets")) {
        return $result;
    }
    if (($entity = elgg_extract("entity", $params)) && elgg_instanceof($entity, "object", Event::SUBTYPE)) {
        $attendee_menu_options = array("name" => "attendee_count", "priority" => 50, "text" => elgg_echo("event_manager:event:relationship:event_attending:entity_menu", array($entity->countAttendees())), "href" => false);
        $result[] = ElggMenuItem::factory($attendee_menu_options);
        // change some of the basic menus
        if (!empty($result) && is_array($result)) {
            foreach ($result as &$item) {
                switch ($item->getName()) {
                    case "edit":
                        $item->setHref("events/event/edit/" . $entity->getGUID());
                        break;
                    case "delete":
                        $href = elgg_get_site_url() . "action/event_manager/event/delete?guid=" . $entity->getGUID();
                        $href = elgg_add_action_tokens_to_url($href);
                        $item->setHref($href);
                        $item->setConfirmText(elgg_echo("deleteconfirm"));
                        break;
                }
            }
        }
        // show an unregister link for non logged in users
        if (!elgg_is_logged_in() && $entity->register_nologin) {
            $result[] = ElggMenuItem::factory(array("name" => "unsubscribe", "text" => elgg_echo("event_manager:menu:unsubscribe"), "href" => "events/unsubscribe/" . $entity->getGUID() . "/" . elgg_get_friendly_title($entity->title), "priority" => 300));
        }
    }
    return $result;
}
示例#18
0
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;
}
示例#19
0
/**
 * 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 ($item->annotation_id == 0) {
            if ($object->canAnnotate(0, 'likes')) {
                // like button
                $options = array('name' => 'likes', 'href' => false, 'text' => elgg_view('likes/button', array('entity' => $object)), 'is_action' => true, 'priority' => 100);
                $return[] = ElggMenuItem::factory($options);
                // likes count
                $count = elgg_view('likes/count', array('entity' => $object));
                if ($count) {
                    $options = array('name' => 'likes_count', 'text' => $count, 'href' => false, 'priority' => 101);
                    $return[] = ElggMenuItem::factory($options);
                }
            }
        }
    }
    return $return;
}
示例#20
0
 /**
  * @param string $identifier
  * @param array $options
  * @return ElggMenuItem
  */
 public function registerItem($identifier, array $options)
 {
     $options['name'] = $identifier;
     $item = MenuItem::factory($options);
     $this->items[$identifier] = $item;
     return $item;
 }
示例#21
0
 /**
  * Add a menu item to the user hover dropdown
  *
  * @param string          $hook         the name of the hook
  * @param string          $type         the type of the hook
  * @param \ElggMenuItem[] $return_value current menu items
  * @param array           $params       supplied params
  *
  * @return void|\ElggMenuItem[]
  */
 public static function register($hook, $type, $return_value, $params)
 {
     static $user_dirs;
     if (!elgg_is_admin_logged_in()) {
         return;
     }
     if (empty($params) || !is_array($params)) {
         return;
     }
     $user = elgg_extract('entity', $params);
     if (!$user instanceof \ElggUser) {
         return;
     }
     if (!isset($user_dirs)) {
         $user_dirs = [];
     }
     // save in a static for performance when viewing user listings
     if (!isset($user_dirs[$user->getGUID()])) {
         $user_dirs[$user->getGUID()] = false;
         $edl = new \Elgg\EntityDirLocator($user->getGUID());
         $path = $edl->getPath();
         if (is_dir(elgg_get_data_path() . $path)) {
             $path = substr($path, 0, -1);
             $user_dirs[$user->getGUID()] = \ElggMenuItem::factory(['name' => 'dataroot-browser', 'text' => elgg_echo('dataroot_browser:menu:user_hover'), 'href' => elgg_http_add_url_query_elements('admin/administer_utilities/dataroot_browser', ['dir' => $path]), 'is_trusted' => true, 'section' => 'admin']);
         }
     }
     if (empty($user_dirs[$user->getGUID()])) {
         return;
     }
     $return_value[] = $user_dirs[$user->getGUID()];
     return $return_value;
 }
示例#22
0
function friend_request_entity_menu_handler($hook, $type, $returnvalue, $params)
{
    $result = $returnvalue;
    if (!empty($params) && is_array($params) && ($user = elgg_get_logged_in_user_entity())) {
        $entity = elgg_extract("entity", $params);
        if (elgg_instanceof($entity, "user") && $entity->getGUID() != $user->getGUID()) {
            if (!empty($result) && !is_array($result)) {
                $result = array($result);
            } elseif (empty($result)) {
                $result = array();
            }
            // are we friends
            if (!$entity->isFriendOf($user->getGUID())) {
                // no, check if pending request
                if (check_entity_relationship($user->getGUID(), "friendrequest", $entity->getGUID())) {
                    // pending request
                    $result[] = ElggMenuItem::factory(array("name" => "friend_request", "text" => elgg_echo("friend_request:friend:add:pending"), "href" => "friend_request/" . $user->username . "#friend_request_sent_listing", "priority" => 500));
                } else {
                    // add as friend
                    $result[] = ElggMenuItem::factory(array("name" => "add_friend", "text" => elgg_echo("friend:add"), "href" => "action/friends/add?friend=" . $entity->getGUID(), "is_action" => true, "priority" => 500));
                }
            } else {
                // is friend, se remove friend link
                $result[] = ElggMenuItem::factory(array("name" => "remove_friend", "text" => elgg_echo("friend:remove"), "href" => "action/friends/remove?friend=" . $entity->getGUID(), "is_action" => true, "priority" => 500));
            }
        }
    }
    return $result;
}
 /**
  * ElggMenuItem factory method
  *
  * This static method creates an ElggMenuItem from an associative array.
  * Required keys are name, text, and href.
  *
  * @param array $options Option array of key value pairs
  *
  * @return ElggMenuItem or null on error
  */
 public static function factory($options)
 {
     if (!isset($options['name']) || !isset($options['text'])) {
         return null;
     }
     if (!isset($options['href'])) {
         $options['href'] = '';
     }
     $item = new ElggMenuItem($options['name'], $options['text'], $options['href']);
     unset($options['name']);
     unset($options['text']);
     unset($options['href']);
     // special catch in case someone uses context rather than contexts
     if (isset($options['context'])) {
         $options['contexts'] = $options['context'];
         unset($options['context']);
     }
     // make sure contexts is set correctly
     if (isset($options['contexts'])) {
         $item->setContext($options['contexts']);
         unset($options['contexts']);
     }
     if (isset($options['link_class'])) {
         $item->setLinkClass($options['link_class']);
         unset($options['link_class']);
     } elseif (isset($options['class'])) {
         elgg_deprecated_notice("ElggMenuItem::factory() does not accept 'class' key anymore, use 'link_class' instead", 1.9);
         $item->setLinkClass($options['class']);
         unset($options['class']);
     }
     if (isset($options['item_class'])) {
         $item->setItemClass($options['item_class']);
         unset($options['item_class']);
     }
     if (isset($options['data']) && is_array($options['data'])) {
         $item->setData($options['data']);
         unset($options['data']);
     }
     foreach ($options as $key => $value) {
         if (isset($item->data[$key])) {
             $item->data[$key] = $value;
         } else {
             $item->{$key} = $value;
         }
     }
     return $item;
 }
示例#24
0
/**
 * Add a menu item to user hover menu
 *
 * @param string $hook   Plugin hook name
 * @param string $type   Hook type
 * @param array  $menu   Array of ElggMenuItem objects
 * @param array  $params Array of parameters related to menu
 * @return array
 */
function admin_notes_hover_menu($hook, $type, $menu, $params)
{
    $user = $params['entity'];
    $url = "action/admin_notes/add?user_guid={$user->guid}";
    $menu[] = ElggMenuItem::factory(array('name' => 'admin_notes_add', 'text' => elgg_echo('admin_notes:add_note'), 'href' => $url, 'is_action' => true, 'section' => 'admin'));
    $menu[] = ElggMenuItem::factory(array('name' => 'admin_notes_view', 'text' => elgg_echo('admin_notes:view_notes'), 'href' => 'admin_notes/' . $user->username, 'section' => 'admin'));
    return $menu;
}
示例#25
0
文件: start.php 项目: elgg/elgg
/**
 * Register menu items for the title menu
 *
 * @param string $hook   Hook
 * @param string $type   Type
 * @param array  $return Current return value
 * @param array  $params Hook parameters
 * @return array
 *
 * @access private
 *
 * @since 3.0
 */
function _elgg_activity_owner_block_menu($hook, $type, $return, $params)
{
    $entity = elgg_extract('entity', $params);
    if ($entity instanceof \ElggUser) {
        $return[] = \ElggMenuItem::factory(['name' => 'activity:owner', 'text' => elgg_echo('activity:owner'), 'href' => "activity/owner/{$entity->username}"]);
    }
    return $return;
}
示例#26
0
function shortcodes_longtext_menu($hook, $type, $items, $vars)
{
    $url = 'shortcodes';
    $items[] = ElggMenuItem::factory(array('name' => 'shortcodes', 'href' => $url, 'text' => elgg_echo('shortcodes:link'), 'rel' => 'lightbox', 'link_class' => "elgg-longtext-control elgg-lightbox", 'priority' => 50));
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    return $items;
}
示例#27
0
文件: start.php 项目: lorea/Hydra-dev
/**
 * Called during page setup
 *
 * @return void
 */
function account_removal_pagesetup()
{
    $user = elgg_get_logged_in_user_entity();
    if (empty($user) || $user->isAdmin()) {
        return;
    }
    elgg_register_menu_item("page", ElggMenuItem::factory(array("name" => "account_removal", "text" => elgg_echo('account_removal:menu:title'), "href" => "account_removal/" . $user->username, "context" => "settings")));
}
示例#28
0
 /**
  * Add menu items to the site menu
  *
  * @param string          $hook   the name of the hook
  * @param string          $type   the type of the hook
  * @param \ElggMenuItem[] $return current menu items
  * @param array           $params provided params
  *
  * @return void|\ElggMenuItem[]
  */
 public static function register($hook, $type, $return, $params)
 {
     if (!translation_editor_is_translation_editor()) {
         return;
     }
     $return[] = \ElggMenuItem::factory(array('name' => 'translation_editor', 'text' => elgg_echo('translation_editor:menu:title'), 'href' => 'translation_editor'));
     return $return;
 }
 /**
  * Add a menu item to the themeing sandbox
  *
  * @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 menu($hook, $type, $return_value, $params)
 {
     if (!elgg_is_admin_logged_in()) {
         return;
     }
     $return_value[] = \ElggMenuItem::factory(['name' => 'html_email_handler', 'text' => elgg_echo('html_email_handler:theme_preview:menu'), 'href' => 'html_email_handler/test', 'target' => '_blank']);
     return $return_value;
 }
示例#30
0
/**
 * Allow a user to delete his or her own account.
 */
function delete_me_init()
{
    $actions_dir = dirname(__FILE__) . '/actions/delete_me';
    elgg_register_action('delete_me/delete', "{$actions_dir}/delete.php");
    $link = elgg_view('output/url', array('href' => 'action/delete_me/delete', 'text' => elgg_echo('delete_me'), 'confirm' => elgg_echo('delete_me:confirm')));
    $menu_item = ElggMenuItem::factory(array('name' => 'delete_me', 'text' => $link, 'href' => false, 'context' => 'settings'));
    elgg_register_menu_item('page', $menu_item);
}