Пример #1
0
/**
 * 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;
 }
Пример #3
0
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);
    }
}
Пример #4
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;
 }
Пример #5
0
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));
        }
    }
}
Пример #6
0
/**
 * 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,
		));
	}
}
Пример #7
0
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');
}
Пример #8
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 (!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;
}
Пример #9
0
/**
 * 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');
}
Пример #10
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;
}
Пример #11
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;
}
Пример #12
0
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));
        }
    }
}
Пример #13
0
 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()];
 }
Пример #14
0
/**
 * 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');
}
Пример #15
0
/**
 * 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;
}
Пример #16
0
 /**
  * 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;
 }
Пример #17
0
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;
}
Пример #18
0
/**
 * 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;
}
Пример #19
0
/**
 * 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;
}
Пример #20
0
/**
 * 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);
            }
        }
    }
}
Пример #21
0
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'));
}
Пример #22
0
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");
    }
}
Пример #23
0
 /**
  * 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;
 }
Пример #24
0
 /**
  * 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;
 }
Пример #25
0
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));
    }
}
Пример #26
0
 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();
 }
Пример #27
0
 /**
  * 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;
 }
Пример #28
0
/**
 * 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);
}
Пример #29
0
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;
}
Пример #30
0
/**
 * 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'));
}