/** * {@inheritdoc} */ public function setup() { parent::setup(); $this->post = get_entity($this->guid); $this->poster = elgg_get_logged_in_user_entity(); // GUIDs of friends that were tagged in the post if (!is_array($this->friend_guids)) { $this->friend_guids = string_to_tag_array((string) $this->friend_guids); } if (!is_array($this->attachment_guids)) { $this->attachment_guids = string_to_tag_array((string) $this->attachment_guids); } if (!is_array($this->upload_guids)) { $this->upload_guids = array(); } $this->subtype = Post::SUBTYPE; $this->container = $this->poster; if ($this->container_guid) { $container = get_entity($this->container_guid); if ($container) { $this->container = $container; } if ($this->container->guid != $this->poster->guid) { $this->subtype = hypeWall()->config->getPostSubtype(); } } // For underlying views to know who the container is elgg_set_page_owner_guid($this->container->guid); }
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; }
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); } }
/** * Stripe related pages * * @param array $page * @param string $handler * @return boolean */ function stripe_page_handler($page, $handler) { gatekeeper(); $username = elgg_extract(0, $page, false); if ($username) { $user = get_user_by_username($username); } if (!elgg_instanceof($user) || !$user->canEdit()) { $user = elgg_get_logged_in_user_entity(); forward("{$handler}/{$user->username}"); } elgg_set_context('settings'); elgg_set_page_owner_guid($user->guid); elgg_push_breadcrumb(elgg_echo('stripe:billing'), 'billing'); $context = elgg_extract(1, $page, 'cards'); $action = elgg_extract(2, $page, 'all'); $view = "stripe/pages/{$context}/{$action}"; if (elgg_view_exists($view)) { $params = array('entity' => $user, 'id' => elgg_extract(3, $page, false), 'context' => $page); $title = elgg_echo("stripe:{$context}:{$action}"); $content = elgg_view($view, $params); $sidebar = elgg_view('stripe/sidebar', $params); $filter = elgg_view("stripe/filters/{$context}/{$action}", $params); } if ($content) { if (elgg_is_xhr()) { echo $content; } else { $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'sidebar' => $sidebar, 'filter' => $filter)); echo elgg_view_page($title, $layout); } return true; } return false; }
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)); } } }
/** * Unregisters the current user from a given push notification service * * @param string $service_name name of the service * * @return SuccessResult|ErrorResult */ function ws_pack_users_unregister_from_push_notifications($service_name) { $result = false; $user = elgg_get_logged_in_user_entity(); $api_application = ws_pack_get_current_api_application(); if (!empty($user) && !empty($api_application)) { if ($api_application_user_settings = ws_pack_get_application_user_settings($user, $api_application)) { switch ($service_name) { case "appcelerator": if ($api_application_user_settings->unregisterFromPushNotifications($service_name)) { $result = new SuccessResult($service_name); } break; default: $result = new ErrorResult(elgg_echo("ws_pack:push_notifications:error:unsupported_service", array($service_name))); break; } } else { $result = new ErrorResult(elgg_echo("ws_pack:user_settings:error:notfound")); } } if ($result === false) { $result = new ErrorResult(elgg_echo("ws_pack:users:unregister_from_push_notifications:error")); } return $result; }
function gvfriendrequest_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)) { $class = "elgg-icon elgg-icon-users"; $text = "<span class='{$class}'></span>"; $tooltip = elgg_echo('gvtheme:myfriends'); if ($count > 0) { $text .= "<span class=\"messages-new\">{$count}</span>"; $tooltip = elgg_echo("friend_request:unreadcount", array($count)); } $params = array("name" => "friends", "href" => "friend_request/" . $user->username, "text" => $text, "section" => 'alt', "title" => $tooltip); elgg_register_menu_item("topbar", $params); } } // Show menu link in the correct context if (in_array($context, array("friends", "friendsof", "collections")) && !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"), "section" => "friend_request"); elgg_register_menu_item("page", $menu_item); } }
function ws_pack_get_lang_file() { $result = false; $user = elgg_get_logged_in_user_entity(); $api_application = ws_pack_get_current_api_application(); if (!empty($user) && !empty($api_application)) { $translations = array(); //kinds of translations $fields = array("members", "search", "groups", "friends", "notifications", "messages", "messageboard", "likes", "invitefriends", "discussion", "profile", "user", "usersettings", "date", "email"); //load and iterate the language cached by the site foreach ($GLOBALS["CONFIG"]->translations as $trans) { foreach ($trans as $k => $v) { if (strpos($k, ":")) { $parts = explode(':', $k); $new_key = $parts[1]; foreach ($fields as $field) { if ($parts[0] == $field) { $translations[$field][$new_key] = $v; } } } else { $translations["general"][$k] = $v; } } } $translations = json_encode($translations); $result = new SuccessResult($translations); } if ($result === false) { $result = new ErrorResult(elgg_echo("ws_pack:error:notfound")); } return $result; }
function show_members_json($context, $limit = 30, $offset = 0, $username) { if (!$username) { $user = elgg_get_logged_in_user_entity(); } else { $user = get_user_by_username($username); if (!$user) { throw new InvalidParameterException('registration:usernamenotvalid'); } } if ($context == "newest") { $params = array('types' => 'user', 'limit' => $limit, 'full_view' => FALSE); $latest_member = elgg_get_entities($params); //return $return; } if ($context == "online") { $latest_member = get_online_users(); } if ($context == "popular") { $params = array('types' => 'user', 'relationship' => 'friend', 'inverse_relationship' => false); $latest_member = elgg_list_entities_from_relationship_count($params); } if ($latest_member) { foreach ($latest_member as $single) { $member['guid'] = $single->guid; $member['name'] = $single->name; //$member['avatar_url'] = get_entity_icon_url($single,'small'); $return[] = $member; } } //return $return; return json_encode($return, true); }
function app2_blog_save($title, $text, $excerpt, $tags, $access, $container_guid) { $user = elgg_get_logged_in_user_entity(); if (!$user) { throw new InvalidParameterException('registration:usernamenotvalid'); } $obj = new ElggObject(); $obj->subtype = "blog"; $obj->owner_guid = $user->guid; $obj->container_guid = $container_guid; $obj->access_id = strip_tags($access); $obj->method = "api"; $obj->description = strip_tags($text); $obj->title = elgg_substr(strip_tags($title), 0, 140); $obj->status = 'published'; $obj->comments_on = 'On'; $obj->excerpt = strip_tags($excerpt); $obj->tags = strip_tags($tags); $guid = $obj->save(); elgg_create_river_item('river/object/blog/create', 'create', $user->guid, $obj->guid); if ($guid) { return true; } else { return false; } }
/** * Check if resharing of this entity is allowed * * @param \ElggEntity $entity the entity to check * * @return bool */ protected static function canReshareEntity(\ElggEntity $entity) { if (!$entity instanceof \ElggEntity) { return false; } // only allow objects and groups if (!$entity instanceof \ElggObject && !$entity instanceof \ElggGroup) { return false; } // comments and discussion replies are never allowed $blocked_subtypes = ['comment', 'discussion_reply']; if (in_array($entity->getSubtype(), $blocked_subtypes)) { return false; } // by default allow searchable entities $reshare_allowed = false; if ($entity instanceof \ElggGroup) { $reshare_allowed = true; } else { $searchable_entities = get_registered_entity_types($entity->getType()); if (!empty($searchable_entities)) { $reshare_allowed = in_array($entity->getSubtype(), $searchable_entities); } } // trigger hook to allow others to change $params = ['entity' => $entity, 'user' => elgg_get_logged_in_user_entity()]; return (bool) elgg_trigger_plugin_hook('reshare', $entity->getType(), $params, $reshare_allowed); }
/** * Unregisters the current user from a given push notification service * * @param string $service_name name of the service * * @return SuccessResult|ErrorResult */ function ws_pack_users_unregister_from_push_notifications($service_name) { $result = false; $user = elgg_get_logged_in_user_entity(); $api_application = ws_pack_get_current_api_application(); if (!empty($user) && !empty($api_application)) { // is the service registered if ($api_application->isRegisteredPushNotificationService($service_name)) { $api_application_user_settings = ws_pack_get_application_user_settings($user, $api_application); if (!empty($api_application_user_settings)) { if ($api_application_user_settings->unregisterFromPushNotifications($service_name)) { $result = new SuccessResult($service_name); } } else { $result = new ErrorResult(elgg_echo("ws_pack:user_settings:error:notfound")); } } else { $result = new ErrorResult(elgg_echo("ws_pack:push_notifications:error:unsupported_service", [$service_name])); } } if ($result === false) { $result = new ErrorResult(elgg_echo("ws_pack:users:unregister_from_push_notifications:error")); } return $result; }
/** * Show "My ..." widget content */ function show_my_stuff_widget($entity, $type, $base_path = '', $show_more_link = true) { $num = $entity->num_display; if (elgg_in_context('profile')) { $owner = elgg_get_page_owner_entity(); } else { $owner = elgg_get_logged_in_user_entity(); } $options = array('type' => 'object', 'owner_guid' => $owner->guid, 'limit' => $num, 'full_view' => FALSE, 'pagination' => FALSE); if (is_array($type)) { $options['subtypes'] = $type; $base_type = $type[0]; if ($base_path == '') { $base_path = $base_type; } } else { $options['subtype'] = $type; $base_type = $type; if ($base_path == '') { $base_path = $base_type; } } $content = elgg_list_entities($options); echo $content; if ($content) { if ($show_more_link) { $url_more = "{$base_path}/owner/" . $owner->username; $more_link = elgg_view('output/url', array('href' => $url_more, 'text' => elgg_echo("{$base_type}:more"), 'is_trusted' => true)); echo "<span class=\"elgg-widget-more\">{$more_link}</span>"; } } else { echo elgg_echo("{$base_type}:none"); } }
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)); } } }
/** * Constructor * * @param ElggEntity $entity Agent entity */ public function __construct($entity = null) { if (!$entity) { $entity = elgg_get_logged_in_user_entity(); } $this->entity = $entity; }
function zelev_template_init() { // Extend system CSS with our own styles //elgg_extend_view('page/elements/elgg','page/elements/header_logo'); //elgg_extend_view('page/elements/elgg','page/elements/sidebar'); //elgg_extend_view('css/elements/elgg','css/elements/layout'); elgg_unregister_menu_item('topbar', 'elgg_logo'); $logo_url = elgg_get_site_url() . "mod/zelev/zelev_files/logo.png"; elgg_register_menu_item('topbar', array('name' => 'my_logo', 'href' => '/', 'text' => "<img src=\"{$logo_url}\" alt=\"My logo\" width=\"275\" height=\"45\" />", 'priority' => 1, 'link_class' => 'elgg-topbar-logo')); // if (!elgg_is_admin_logged_in()) { elgg_unregister_page_handler('activity'); } // Replace the default index page register_plugin_hook('index', 'system', 'zelev_index'); elgg_unregister_plugin_hook_handler('prepare', 'menu:site', 'elgg_site_menu_setup'); elgg_unregister_menu_item('site', 'file'); elgg_unregister_menu_item('site', 'bookmarks'); elgg_unregister_menu_item('site', 'reportedcontent'); elgg_unregister_menu_item('site', 'izap-contest'); elgg_unregister_menu_item('site', 'activity'); elgg_unregister_menu_item('site', 'groups'); $item_1 = new ElggMenuItem('homw', elgg_echo('Inicio'), '/'); elgg_register_menu_item('site', $item_1); $user = elgg_get_logged_in_user_entity(); if ($user) { $url = "groups/member/{$user->username}"; $item = new ElggMenuItem('groups:member', elgg_echo('groups:yours'), $url); elgg_register_menu_item('site', $item); } }
/** * Set up items for user_hover menu */ public function setUp($hook, $type, $menu, $params) { if (!elgg_is_logged_in()) { return $menu; } $current_user = elgg_get_logged_in_user_entity(); // Allow only admins and publishers to grant/remove publisher roles if (!$current_user->isAdmin() && $current_user->role !== 'curator') { return $menu; } $user = $params['entity']; // User cannot make/unmake himseld a publisher if ($user->guid === $current_user->guid) { return $menu; } if (!$user instanceof ElggUser) { return $menu; } if ($user->role === 'curator') { $action = 'unmake_curator'; $text = elgg_echo('expozeum_content:unmake_curator'); } else { $action = 'make_curator'; $text = elgg_echo('expozeum_content:make_curator'); } $menu[] = ElggMenuItem::factory(array('name' => 'curator', 'text' => $text, 'href' => "action/expozeum_content/{$action}?guid={$user->guid}", 'is_action' => true)); return $menu; }
function current_dokuwiki_entity($create = true) { $page_owner = elgg_get_page_owner_guid(); $user = elgg_get_logged_in_user_entity(); //error_log($page_owner->guid); //error_log($user->guid); if (!$page_owner) { $page_owner = 0; } $entities = elgg_get_entities(array('types' => 'object', 'subtypes' => 'dokuwiki', 'limit' => 1, 'owner_guid' => $page_owner)); if ($entities) { $doku = $entities[0]; return $doku; } elseif ($user && $create) { elgg_set_ignore_access(true); $newdoku = new ElggObject(); $newdoku->access_id = ACCESS_PUBLIC; $newdoku->owner_guid = $page_owner; $newdoku->subtype = 'dokuwiki'; $newdoku->container_guid = $page_owner; $newdoku->save(); $acl = array(); $acl[] = "# acl.auth.php"; $acl[] = '# <?php exit()?\\>'; $acl[] = "* @ALL 0"; $acl[] = "* @user 1"; $acl[] = "* @member 8"; $acl[] = "* @admin 16"; $acl[] = "* @root 255"; $newdoku->wiki_acl = implode("\n", $acl) . "\n"; elgg_set_ignore_access(false); return $newdoku; } }
function extended_profile_page_handler($page) { if (isset($page[0])) { $username = $page[0]; $user = get_user_by_username($username); elgg_set_page_owner_guid($user->guid); } elseif (elgg_is_logged_in()) { forward(elgg_get_logged_in_user_entity()->getURL()); } // short circuit if invalid or banned username if (!$user || $user->isBanned() && !elgg_is_admin_logged_in()) { register_error(elgg_echo('profile:notfound')); forward(); } $action = NULL; if (isset($page[1])) { $action = $page[1]; } if ($action == 'edit') { // use the core profile edit page $base_dir = elgg_get_root_path(); require "{$base_dir}pages/profile/edit.php"; return true; } // main profile page $params = array('content' => elgg_view('profile/wrapper'), 'num_columns' => 3); $content = elgg_view_layout('profile_widgets', $params); $body = elgg_view_layout('one_column', array('content' => $content)); echo elgg_view_page($user->name, $body); return true; }
/** * {@inheritdoc} */ public function post(ParameterBag $params) { $user = elgg_get_logged_in_user_entity(); $object = get_entity($params->guid); if (!$object || !$object->canWriteToContainer(0, 'object', 'comment')) { throw new GraphException("You are not allowed to comment on this object", 403); } $comment_text = $params->comment; $comment = new ElggComment(); $comment->owner_guid = $user->guid; $comment->container_guid = $object->guid; $comment->description = $comment_text; $comment->access_id = $object->access_id; if (!$comment->save()) { throw new GraphException(elgg_echo("generic_comment:failure")); } // Notify if poster wasn't owner if ($object->owner_guid != $user->guid) { $owner = $object->getOwnerEntity(); notify_user($owner->guid, $user->guid, elgg_echo('generic_comment:email:subject', array(), $owner->language), elgg_echo('generic_comment:email:body', array($object->title, $user->name, $comment->description, $comment->getURL(), $user->name, $user->getURL()), $owner->language), array('object' => $comment, 'action' => 'create')); } $return = array('nodes' => array('comment' => $comment)); // Add to river $river_id = elgg_create_river_item(array('view' => 'river/object/comment/create', 'action_type' => 'comment', 'subject_guid' => $user->guid, 'object_guid' => $comment->guid, 'target_guid' => $object->guid)); if ($river_id) { $river = elgg_get_river(array('ids' => $river_id)); $return['nodes']['activity'] = $river ? $river[0] : $river_id; } return $return; }
/** * */ 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 au_staff_options($pageowner) { $user = elgg_get_logged_in_user_entity(); $group = elgg_get_page_owner_entity(); if (elgg_instanceof($group, 'group')) { //check group attributes - ignore if au staff if ($group->staff_only_enable == 'yes') { elgg_extend_view('group/default', 'groups/sidebar/staff_only', 502); //do stuff if this is a staff-only group //system_message("AU staff-only group: only AU staff members can join this group"); if (elgg_is_logged_in()) { $invited = check_entity_relationship($group->getGUID(), "invited", $user->getGUID()); //allow invited users in if (is_au_staff_member($user) || elgg_is_admin_logged_in() || $group->canEdit() || $invited) { //do other stuff - welcome here } else { //remove buttons for non staff members who are not members of the group and not invited if (!$group->isMember($user)) { elgg_register_plugin_hook_handler('register', 'menu:title', 'au_landing_remove_group_join_button', 9999); //remove the link we added in groups_ux to allow joining from discussion forum elgg_unextend_view('discussion/replies', 'discussion/replies/join'); } } } } else { //this is a normal group } } else { //not a group, do nothing } }
function follow_tags_init() { //Register Save Action for saving and changing FollowTags elgg_register_action("follow_tags/save", dirname(__FILE__) . '/action/save.php'); //Register a River Tab if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); elgg_register_menu_item('filter', array('name' => 'tags', 'href' => "/activity/tags", 'text' => elgg_echo("follow_tags:tab:title"), 'priority' => 500, 'contexts' => array('activity'))); //Register a Sidebar Item for Usersettings elgg_register_menu_item('page', array('name' => "follow_tags", 'text' => elgg_echo("follow_tags:sidebar:title"), 'href' => "follow_tags/settings/" . $user->username, 'context' => "settings")); } elgg_register_plugin_hook_handler("route", "activity", "follow_tags_route_activity_hook"); //Register Pagehandlers elgg_register_page_handler('follow_tags', 'follow_tags_page_handler'); elgg_register_page_handler('follow_tags_data', 'follow_tags_data_page_handler'); //Register JS and CSS for custom taginput field $js_url = 'mod/follow_tags/vendors/jquery.tagsinput.min.js'; elgg_register_js('jquery.tagsinput', $js_url, 'footer'); // Register CSS for TagInput $css_url = 'mod/follow_tags/vendors/jquery.tagsinput.css'; elgg_register_css('jquery.tagsinput', $css_url); // extend tags to include js/css just in time elgg_extend_view("input/tags", "follow_tags/extends/tags"); // Add a JavaScript Initialization elgg_extend_view('js/elgg', 'js/follow_tags/site'); // Run the followtags_notofy function in event is triggerd elgg_register_event_handler('create', 'object', 'follow_tags_notify', 501); }
/** * Get the context for a page, for the help system * * @param string $url the (optional) url to get the context for * * @return bool|string */ function user_support_get_help_context($url = "") { if (empty($url)) { $url = current_page_url(); } if (empty($url)) { return false; } $path = parse_url($url, PHP_URL_PATH); if (empty($path)) { return false; } $parts = explode("/", $path); $page_owner = elgg_get_page_owner_entity(); if (empty($page_owner)) { $page_owner = elgg_get_logged_in_user_entity(); } $new_parts = array(); foreach ($parts as $index => $part) { if (empty($part)) { continue; } elseif (is_numeric($part) || !empty($page_owner) && $page_owner->username == $part) { break; } else { $new_parts[] = $part; } } if (empty($new_parts)) { return false; } return implode("/", $new_parts); }
/** * Register title menu items for an event * * @param Event $event * @return void */ function register_event_title_menu($event, $ts = null, $calendar = null) { if (!$event instanceof Event) { return; } $calendar_count = 0; if (elgg_is_logged_in()) { $calendar_count = Calendar::getCalendars(elgg_get_logged_in_user_entity(), true); } if ($calendar_count) { // may be different than the calendar being viewed // make the add/remove button work for the current calendar if they own it // or their default calendar if they're viewing another calendar if ($calendar->owner_guid == elgg_get_logged_in_user_guid()) { $mycalendar = $calendar; } else { $mycalendar = Calendar::getPublicCalendar(elgg_get_logged_in_user_entity()); } $text = elgg_echo('events:add_to_calendar:default'); $add_remove_calendar = $mycalendar->guid; if ($mycalendar->hasEvent($event)) { $text = elgg_echo('events:remove_from_calendar:default'); $add_remove_calendar = ''; } elgg_register_menu_item('title', array('name' => 'add_to_calendar', 'href' => elgg_http_add_url_query_elements('action/calendar/add_event', array('event_guid' => $event->guid, 'calendars[]' => $add_remove_calendar)), 'is_action' => true, 'data-object-event' => true, 'data-guid' => $event->guid, 'text' => $text, 'data-calendar-count' => $calendar_count, 'link_class' => 'elgg-button elgg-button-action events-ui-event-action-addtocalendar', 'priority' => 100)); } if ($event->canEdit()) { elgg_register_menu_item('title', array('name' => 'delete', 'text' => elgg_echo('events_ui:cancel'), 'href' => 'action/events/cancel?guid=' . $event->guid . '&ts=' . $ts, 'is_action' => true, 'link_class' => 'elgg-button elgg-button-delete elgg-requires-confirmation events-ui-event-action-cancel', 'data-object-event' => true, 'data-guid' => $event->guid, 'priority' => 300)); } if ($event->canEdit() && $event->isRecurring()) { elgg_register_menu_item('title', array('name' => 'delete_all', 'text' => elgg_echo('events_ui:cancel:all'), 'href' => 'action/events/delete?guid=' . $event->guid, 'is_action' => true, 'link_class' => 'elgg-button elgg-button-delete elgg-requires-confirmation events-ui-event-action-cancel-all', 'rel' => elgg_echo('events_ui:cancel:all:confirm'), 'data-object-event' => true, 'data-guid' => $event->guid, 'priority' => 400)); } }
/** * Constructor * @param \ElggUser $user User entity * @param string $name Session name * @param string $handle Handle used to store auth records */ public function __construct(\ElggUser $user = null, $name = null, $handle = null) { $this->user = $user ?: elgg_get_logged_in_user_entity(); $this->name = $name ?: self::DEFAULT_SESSION_NAME; $this->handle = $handle ?: self::DEFAULT_HANDLE; $this->persistent = (bool) elgg_get_plugin_setting('persistent_session', 'elgg_hybridauth'); }
/** * Check if the given user has full access. * * @todo: Will always return full access if the user is an admin. * * @param int $user_guid The user to check * * @return bool * @since 1.7.1 */ function elgg_is_admin_user($user_guid) { global $CONFIG; $user_guid = (int) $user_guid; $current_user = elgg_get_logged_in_user_entity(); if ($current_user && $current_user->guid == $user_guid) { return $current_user->isAdmin(); } // cannot use magic metadata here because of recursion // must support the old way of getting admin from metadata // in order to run the upgrade to move it into the users table. $version = (int) datalist_get('version'); if ($version < 2010040201) { $admin = elgg_get_metastring_id('admin'); $yes = elgg_get_metastring_id('yes'); $one = elgg_get_metastring_id('1'); $query = "SELECT 1 FROM {$CONFIG->dbprefix}users_entity as e,\n\t\t\t{$CONFIG->dbprefix}metadata as md\n\t\t\tWHERE (\n\t\t\t\tmd.name_id = '{$admin}'\n\t\t\t\tAND md.value_id IN ('{$yes}', '{$one}')\n\t\t\t\tAND e.guid = md.entity_guid\n\t\t\t\tAND e.guid = {$user_guid}\n\t\t\t\tAND e.banned = 'no'\n\t\t\t)"; } else { $query = "SELECT 1 FROM {$CONFIG->dbprefix}users_entity as e\n\t\t\tWHERE (\n\t\t\t\te.guid = {$user_guid}\n\t\t\t\tAND e.admin = 'yes'\n\t\t\t)"; } // normalizing the results from get_data() // See #1242 $info = get_data($query); if (!(is_array($info) && count($info) < 1 || $info === false)) { return true; } return false; }
function elgg_modifications_pagesetup() { $user = elgg_get_logged_in_user_entity(); if (!$user) { return; } if (elgg_in_context("accept_terms")) { return; } $site = elgg_get_site_entity(); if ($site->isPublicPage()) { return; } if (!empty($_SESSION["terms_accepted"])) { return; } if (elgg_get_plugin_setting("accept_terms", "elgg_modifications") === "no") { return; } $user_ts = $user->getPrivateSetting("general_terms_accepted"); if (empty($user_ts)) { $_SESSION["terms_forward_from"] = current_page_url(); forward("accept_terms"); } else { // user has accepted the terms, so don't check again $_SESSION["terms_accepted"] = $user_ts; } }
function subsite_manager_plugins_boot() { // handle run once functions run_function_once("subsite_manager_runonce"); run_function_once("subsite_manager_runonce_elgg18"); // Check if current user should be a admin of this site if ($user = elgg_get_logged_in_user_entity()) { // don't check for super admins if (!subsite_manager_is_superadmin($user->getGUID())) { // where are we if (subsite_manager_on_subsite()) { // is the user suppose to be an admin if (elgg_get_site_entity()->isAdmin($user->getGUID())) { // is the user currently an admin if (!$user->isAdmin()) { $user->makeAdmin(); } } elseif ($user->isAdmin()) { // user is an admin, but shouldn't be $user->removeAdmin(); } } elseif ($user->isAdmin()) { // user is an admin, but shouldn't be $user->removeAdmin(); } } } // check the site email address $config_email = elgg_get_config("siteemail"); $site = elgg_get_site_entity(); if (empty($config_email) || $site->email != $config_email) { elgg_set_config("siteemail", $site->email); } }
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()]; }