Exemple #1
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[] $returnvalue the current return value
  * @param array           $params      supplied params
  *
  * @return void|\ElggMenuItem[]
  */
 public static function registerEntity($hook, $type, $returnvalue, $params)
 {
     if (!elgg_is_logged_in()) {
         return;
     }
     if (empty($params) || !is_array($params)) {
         return;
     }
     $entity = elgg_extract('entity', $params);
     if (!$entity instanceof \ElggEntity) {
         return;
     }
     if (!$entity->getGUID()) {
         // can sometimes happen for temp entities (eg search results)
         return;
     }
     // add quicklink toggle to registered entity types
     if (!quicklinks_can_link($entity->getType(), $entity->getSubtype())) {
         // no registered entity types found
         return;
     }
     $items = quicklinks_get_toggle_menu_items(['entity' => $entity]);
     if (empty($items)) {
         return;
     }
     foreach ($items as $item) {
         $returnvalue[] = $item;
     }
     return $returnvalue;
 }
/**
 * Used to login with facebook
 *
 * @access public
 * @return void
 */
function facebook_connect_login()
{
    elgg_load_library('facebook');
    // sanity check
    if (!facebook_connect_allow_sign_on_with_facebook()) {
        forward();
    }
    if (elgg_is_logged_in()) {
        forward();
    }
    $fbData = facebook_connect_get_fbdata();
    if (isset($_GET['error'])) {
        forward();
    } else {
        if (!empty($fbData['loginUrl'])) {
            forward($fbData['loginUrl'], 'facebook_connect');
        } else {
            if (empty($fbData['user_profile']['id'])) {
                forward();
            } else {
                $options = array('type' => 'user', 'plugin_user_setting_name_value_pairs' => array('uid' => $fbData['user_profile']['id'], 'access_token' => $fbData['user_profile']['accessToken']), 'plugin_user_setting_name_value_pairs_operator' => 'OR', 'limit' => 0);
                $users = elgg_get_entities_from_plugin_user_settings($options);
                if ($users) {
                    if (count($users) == 1) {
                        try {
                            login($users[0], true);
                            system_message(elgg_echo('facebook_connect:login:success'));
                            elgg_set_plugin_user_setting('access_token', $fbData['user_profile']['accessToken'], $users[0]->guid);
                            if (empty($users[0]->email)) {
                                $user = get_entity($users[0]->guid);
                                $user->email = $fbData['user_profile']['email'];
                                $user->save();
                            }
                        } catch (LoginException $e) {
                            register_error($e->getMessage());
                            forward(REFERER);
                        }
                    } else {
                        system_message(elgg_echo('facebook_connect:login:error'));
                    }
                    forward();
                } else {
                    $user = facebook_connect_create_update_user($fbData);
                    // login new user
                    try {
                        login($user, true);
                        system_message(elgg_echo('facebook_connect:login:success'));
                        forward("profile/", 'facebook_connect');
                    } catch (LoginException $e) {
                        register_error($e->getMessage());
                        forward(REFERER);
                    }
                }
                // register login error
                register_error(elgg_echo('facebook_connect:login:error'));
                forward();
            }
        }
    }
}
Exemple #3
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')) {
                // 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;
}
Exemple #4
0
/**
 * 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));
    }
}
Exemple #5
0
/**
 * function to handle the nice urls for Custom Profile Fields
 * 
 * @param $page
 * @return unknown_type
 */
function profile_manager_page_handler($page)
{
    switch ($page[0]) {
        case "forms":
            $form = $page[1];
            if (!empty($form) && elgg_is_admin_logged_in()) {
                set_input("guid", $page[2]);
                include dirname(__FILE__) . "/pages/forms/" . $form . ".php";
                return true;
            }
            break;
        case "validate_username":
            if (elgg_is_logged_in()) {
                $new_username = get_input("username");
                $valid = false;
                if (!empty($new_username)) {
                    $valid = profile_manager_validate_username($new_username);
                }
                $result = array("valid" => $valid);
                echo json_encode($result);
                return true;
            }
            break;
        case "user_summary_control":
            include dirname(__FILE__) . "/pages/user_summary_control/preview.php";
            return true;
    }
}
/**
 * External pages page handler
 *
 * @param array  $page    URL segements
 * @param string $handler Handler identifier
 * @return bool
 */
function expages_page_handler($page, $handler)
{
    if ($handler == 'expages') {
        expages_url_forwarder($page[1]);
    }
    $type = strtolower($handler);
    $title = elgg_echo("expages:{$type}");
    $header = elgg_view_title($title);
    $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1));
    if ($object) {
        $content .= elgg_view('output/longtext', array('value' => $object[0]->description));
    } else {
        $content .= elgg_echo("expages:notset");
    }
    $content = elgg_view('expages/wrapper', array('content' => $content));
    if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) {
        $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content));
        echo elgg_view_page($title, $body);
    } else {
        elgg_load_css('elgg.walled_garden');
        $body = elgg_view_layout('walled_garden', array('content' => $header . $content));
        echo elgg_view_page($title, $body, 'walled_garden');
    }
    return true;
}
Exemple #7
0
function http_blacklist_init()
{
    if (!elgg_is_logged_in() && elgg_get_plugin_setting("httpblkey", "http_blacklist")) {
        elgg_register_plugin_hook_handler('route', 'all', 'http_blacklist_router');
    }
    elgg_register_action('http_blacklist/reset', elgg_get_plugins_path() . 'http_blacklist/actions/http_blacklist/reset.php', 'admin');
}
Exemple #8
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;
}
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
    }
}
Exemple #10
0
function language_selector_plugins_boot()
{
    global $CONFIG;
    if (!elgg_is_logged_in()) {
        if (!empty($_COOKIE['client_language'])) {
            // switched with language selector
            $new_lang = $_COOKIE['client_language'];
        } else {
            $browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
            if (!empty($browserlang)) {
                // autodetect language
                if (elgg_get_plugin_setting("autodetect", "language_selector") == "yes") {
                    $new_lang = $browserlang;
                }
            }
        }
        if (!empty($new_lang) && $new_lang !== $CONFIG->language) {
            // set new language
            $CONFIG->language = $new_lang;
            // language has been change; reload language keys
            if (elgg_is_active_plugin("translation_editor")) {
                translation_editor_load_translations();
            } else {
                reload_all_translations();
            }
        }
    }
    elgg_extend_view("css/elgg", "language_selector/css/site");
}
Exemple #11
0
/**
 * Sets up submenus. Triggered on pagesetup.
 *
 */
function add_submenus()
{
    $plugins_base = elgg_get_site_url() . "plugins";
    if (elgg_get_context() == 'admin') {
        elgg_register_admin_menu_item('administer', 'statistics', 'community_plugins');
        elgg_register_admin_menu_item('administer', 'utilities', 'community_plugins');
        elgg_register_admin_menu_item('configure', 'community_plugins', 'settings');
        return;
    }
    if (elgg_get_context() != "plugins") {
        return;
    }
    $page_owner = elgg_get_page_owner_entity();
    if (elgg_is_logged_in() && elgg_get_page_owner_guid() == elgg_get_logged_in_user_guid()) {
        elgg_register_menu_item('page', array('href' => "{$plugins_base}/developer/{$page_owner->username}", 'name' => 'plugins:yours', 'text' => elgg_echo("plugins:yours", array(elgg_echo('plugins:types:')))));
    } else {
        if (elgg_get_page_owner_guid()) {
            $title = elgg_echo("plugins:user", array($page_owner->name, elgg_echo('plugins:types:')));
            elgg_register_menu_item('page', array('href' => "{$plugins_base}/developer/{$page_owner->username}", 'name' => 'plugins:user', 'text' => $title));
        }
    }
    elgg_register_menu_item('page', array('href' => '/plugins', 'name' => 'plugins:all', 'text' => elgg_echo('plugins:all')));
    // add upload link when viewing own plugin page
    if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
        elgg_register_menu_item('page', array('href' => "{$plugins_base}/new/project/{$page_owner->username}", 'name' => 'plugins:upload', 'text' => elgg_echo('plugins:upload')));
    }
}
Exemple #12
0
/**
 * page setup event
 */
function pagesetup()
{
    // add to site links
    if (elgg_is_logged_in()) {
        $item = new \ElggMenuItem('trip_companions', elgg_echo('trip_companions:new:people'), 'trip_companions');
        elgg_register_menu_item('site', $item);
    }
    /*elgg_register_menu_item('page', array(
    		'name' => 'trip_companions_all',
    		'text' => elgg_echo('trip_companions:all'),
    		'href' => 'trip_companions',
    		'contexts' => array(
    			'trip_companions'
    		)
    	));
    	
    	elgg_register_menu_item('page', array(
    		'name' => 'trip_companions_friends',
    		'text' => elgg_echo('trip_companions:friends:only'),
    		'href' => 'trip_companions/friends',
    		'contexts' => array(
    			'trip_companions'
    		)
    	));*/
    elgg_register_menu_item('page', array('name' => 'trip_companions_groups', 'text' => elgg_echo('trip_companions'), 'href' => 'trip_companions/groups', 'contexts' => array('trip_companions')));
}
Exemple #13
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));
        }
    }
}
/**
 * Sets the language for the logged out user
 *
 * @return void
 */
function language_selector_set_logged_out_user_language()
{
    global $CONFIG;
    if (elgg_is_logged_in()) {
        return;
    }
    if (!empty($_COOKIE['client_language'])) {
        // switched with language selector
        $new_lang = $_COOKIE['client_language'];
    } else {
        $browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
        if (!empty($browserlang)) {
            // autodetect language
            if (elgg_get_plugin_setting("autodetect", "language_selector") == "yes") {
                $new_lang = $browserlang;
            }
        }
    }
    if (!empty($new_lang) && $new_lang !== $CONFIG->language) {
        $allowed = language_selector_get_allowed_translations();
        if (in_array($new_lang, $allowed)) {
            // set new language
            $CONFIG->language = $new_lang;
            // language has been change; reload language keys
            if (elgg_is_active_plugin("translation_editor")) {
                translation_editor_load_translations();
            } else {
                reload_all_translations();
            }
        }
    }
}
Exemple #15
0
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;
}
 /**
  * Add widget title link if Widget Manager is enabled.
  *
  * @param string $hook         the name of the hook
  * @param string $type         the type of the hook
  * @param array  $return_value current return value
  * @param array  $params       supplied params
  *
  * @return void|string
  */
 public static function widgetURL($hook, $type, $return_value, $params)
 {
     if (!empty($return_value)) {
         // url already set
         return;
     }
     if (elgg_is_logged_in()) {
         // already logged in
         return;
     }
     $widget = elgg_extract('entity', $params);
     if (!$widget instanceof \ElggWidget) {
         return;
     }
     if ($widget->handler !== 'simplesaml') {
         return;
     }
     $samlsource = $widget->samlsource;
     if (empty($samlsource) || $samlsource === 'all') {
         return;
     }
     if (!simplesaml_is_enabled_source($samlsource)) {
         return;
     }
     return "/saml/login/{$samlsource}";
 }
 /**
  *
  */
 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;
 }
Exemple #18
0
 /**
  * {@inheritdoc}
  */
 public function getFilterOptions()
 {
     $options = $this->getOptions();
     $filter_options = array('', 'open', 'closed', 'featured');
     if (elgg_is_logged_in()) {
         $filter_options[] = 'member';
         if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) {
             $filter_options[] = 'admin';
         }
         $filter_options[] = 'invited';
         $filter_options[] = 'membership_request';
     }
     $params = ['list' => $this];
     $filter_options = elgg_trigger_plugin_hook('sort_relationships', 'group', $params, $filter_options);
     $subtypes = elgg_extract('subtype', $options);
     if (!$subtypes) {
         $subtypes = elgg_extract('subtypes', $options);
     }
     if (!empty($subtypes)) {
         $subtypes = (array) $subtypes;
         $subtype = $subtypes[0];
         $filter_options = elgg_trigger_plugin_hook('sort_relationships', "group:{$subtype}", $params, $filter_options);
     }
     return $filter_options;
 }
Exemple #19
0
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);
}
Exemple #20
0
/**
 * External pages page handler
 *
 * @param array  $page    URL segements
 * @param string $handler Handler identifier
 * @return bool
 */
function expages_page_handler($page, $handler)
{
    if ($handler == 'expages') {
        expages_url_forwarder($page[1]);
    }
    $type = strtolower($handler);
    $title = elgg_echo("expages:{$type}");
    $header = elgg_view_title($title);
    $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1));
    if ($object) {
        $content .= elgg_view('output/longtext', array('value' => $object[0]->description));
    } else {
        $content .= elgg_echo("expages:notset");
    }
    $content = elgg_view('expages/wrapper', array('content' => $content));
    if (elgg_is_admin_logged_in()) {
        elgg_register_menu_item('title', array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "admin/appearance/expages?type={$type}", 'link_class' => 'elgg-button elgg-button-action'));
    }
    if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) {
        $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content));
        echo elgg_view_page($title, $body);
    } else {
        elgg_load_css('elgg.walled_garden');
        $body = elgg_view_layout('walled_garden', array('content' => $header . $content));
        echo elgg_view_page($title, $body, 'walled_garden');
    }
    return true;
}
Exemple #21
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));
        }
    }
}
function faq_init()
{
    // Extend CSS
    elgg_extend_view("css/elgg", "faq/css");
    if (elgg_get_plugin_setting("publicAvailable", "faq") == "yes" || elgg_is_admin_logged_in()) {
        // Register a page handler, so we can have nice URLs
        elgg_register_page_handler('faq', 'faq_page_handler');
        if (elgg_get_plugin_setting("publicAvailable_sitemenu", "faq") == "yes" || elgg_is_logged_in()) {
            // Add menu item
            elgg_register_menu_item('site', array('name' => elgg_echo("faq:shorttitle"), 'text' => elgg_echo("faq:shorttitle"), 'href' => elgg_get_site_url() . "faq/"));
        }
        if (elgg_get_plugin_setting("publicAvailable_footerlink", "faq") == "yes" || elgg_is_logged_in()) {
            // Add footer link
            faq_setup_footer_menu();
        }
        // Register faq pages as public pages for walled-garden
        elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'faq_public');
        // Register Actions
        $base_dir = elgg_get_plugins_path() . 'faq/actions/faq/';
        elgg_register_action("faq/add", $base_dir . "add.php", "admin");
        elgg_register_action("faq/delete", $base_dir . "delete.php", "admin");
        elgg_register_action("faq/edit", $base_dir . "edit.php", "admin");
        elgg_register_action("faq/search", $base_dir . "search.php", "public");
        elgg_register_action("faq/changeCategory", $base_dir . "changeCategory.php", "admin");
        if (elgg_get_plugin_setting("userQuestions", "faq") == "yes") {
            elgg_register_action("faq/ask", $base_dir . "ask.php", "logged_in");
            elgg_register_action("faq/answer", $base_dir . "answer.php", "admin");
        }
        // Register FAQs for site search
        elgg_register_entity_type("object", "faq");
        elgg_register_plugin_hook_handler('search', 'object:faq', 'faq_search_hook');
    }
}
Exemple #23
0
 /**
  * Handles embedded URLs
  *
  * @param array $page URL segments
  * @return boolean
  */
 function handlePages($page)
 {
     $url = get_input('url');
     $handle = get_input('handle');
     $iframe = get_input('iframe', false);
     $site = elgg_get_site_entity();
     if (!$handle) {
         $handle = $site->guid;
     }
     if (!$url || !$handle) {
         return false;
     }
     $parse = elgg_is_logged_in();
     switch ($page[0]) {
         default:
             $data = $this->model->get($url, $handle, $parse);
             $layout = elgg_view('output/card', array('href' => $url, 'handle' => $handle));
             $shell = $iframe ? 'iframe' : 'default';
             echo elgg_view_page($data['title'], $layout, $shell);
             break;
         case 'json':
             $data = $this->model->get($url, $handle, $parse);
             header('Content-Type: application/json');
             echo json_encode($data);
             exit;
     }
     return true;
 }
 /**
  * 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;
 }
Exemple #25
0
/**
 * Profile page handler
 *
 * @param array $page Array of URL segments passed by the page handling mechanism
 * @return bool
 */
function 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
        echo elgg_view_resource('profile/edit');
        return true;
    }
    echo elgg_view_resource('profile/view', ['username' => $page[0]]);
    return true;
}
Exemple #26
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;
}
Exemple #27
0
function LoginUser($tool_provider)
{
    // Clear any existing sessions
    if (elgg_is_logged_in()) {
        logout();
    }
    $values = GetPluginSettings();
    $userprovision = $values['userprovision'];
    $user_id = $tool_provider->user->getID(BasicLTI_Tool_Provider::ID_SCOPE_GLOBAL);
    $consumer_key = $tool_provider->consumer->guid;
    $context_id = $tool_provider->user->context->id;
    // Does user exist
    $user = CheckLTIUser($user_id);
    // Provision user, if on and needed
    if (empty($user)) {
        if ($userprovision) {
            $user = CreateLTIUser($consumer_key, $context_id, $tool_provider->user);
            if (empty($user)) {
                forward();
            }
        } else {
            system_message(elgg_echo('LTI:info:noprovision'));
            forward();
            exit;
        }
    }
    // Set up current context id
    $user->context_id = $context_id;
    $user->email = $tool_provider->user->email;
    $user->name = $tool_provider->user->fullname;
    $user->save();
    // Login
    $result = login($user, false);
    return $result;
}
Exemple #28
0
/**
 * Add a like button to river actions
 */
function likes_river_menu_setup($hook, $type, $return, $params)
{
    if (!elgg_is_logged_in() || elgg_in_context('widgets')) {
        return;
    }
    $item = $params['item'];
    /* @var ElggRiverItem $item */
    // only like group creation #3958
    if ($item->type == "group" && $item->view != "river/group/create") {
        return;
    }
    // don't like users #4116
    if ($item->type == "user") {
        return;
    }
    if ($item->annotation_id != 0) {
        return;
    }
    $object = $item->getObjectEntity();
    if (!$object || !$object->canAnnotate(0, 'likes')) {
        return;
    }
    $hasLiked = \Elgg\Likes\DataService::instance()->currentUserLikesEntity($object->guid);
    // Always register both. That makes it super easy to toggle with javascript
    $return[] = ElggMenuItem::factory(array('name' => 'likes', '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;
}
Exemple #29
0
/**
* Init the OhYesChat
*
* @access system
* @return null;
*/
function OhYesChat()
{
    $plugin = elgg_get_plugins_path() . 'OhYesChat/';
    elgg_register_simplecache_view('css/ohyes/ohyeschat');
    $ohyescss = elgg_get_simplecache_url('css', 'ohyes/ohyeschat');
    elgg_register_css('ohyeschat.css', $ohyescss);
    elgg_register_simplecache_view('css/ohyes/ohyeschat.admin');
    $ohyescssadmin = elgg_get_simplecache_url('css', 'ohyes/ohyeschat.admin');
    elgg_register_css('ohyeschat.admin.css', $ohyescssadmin);
    elgg_register_simplecache_view('js/ohyes/ohyescha');
    $ohyesjs = elgg_get_simplecache_url('js', 'ohyes/ohyeschat');
    elgg_register_js('ohyeschat.js', $ohyesjs);
    if (elgg_is_logged_in()) {
        elgg_register_page_handler('ohyeschat', 'ohyeschat_page_handler');
        elgg_register_page_handler('chat', 'ohyeschat_page_handler');
    }
    elgg_register_action('ohyes/chat/deletemssages', "{$plugin}actions/admin/deletemssages.php", 'admin');
    elgg_extend_view('page/elements/foot', 'ohyes/chat/bar');
    elgg_extend_view('page/elements/body', 'ohyes/header/chat', 1);
    elgg_extend_view('page/elements/body', 'ohyes/chat/sound');
    OhYesChat::loadCss();
    OhYesChat::loadJs();
    run_function_once('ohyeschat_setup');
    //register menu items
    OhYesChat::RegisterMenus();
}
Exemple #30
0
/**
 * Profile page handler
 *
 * @param array $page Array of URL segments passed by the page handling mechanism
 * @return bool
 */
function theme_ffd_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
    $content = elgg_view("profile/wrapper");
    $body = elgg_view_layout("one_column", array("content" => $content));
    echo elgg_view_page($user->name, $body);
    return true;
}