Esempio n. 1
0
function tblog_get_page_content_list($guid)
{
    $container_guid = NULL;
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => FALSE);
    $loggedin_userid = elgg_get_logged_in_user_guid();
    if ($container_guid) {
        // access check for closed groups
        group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $container = get_entity($container_guid);
        if (!$container) {
        }
        $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($container_guid == $loggedin_userid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
    } else {
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('blogbook:select a blog');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('blog:blogs'));
    }
    //elgg_register_title_button();
    // show all posts for admin or users looking at their own blogs
    // show only published posts for other users.
    if (!(elgg_is_admin_logged_in() || elgg_is_logged_in() && $container_guid == $loggedin_userid)) {
        $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published'));
    }
    $tblog = get_entity($guid);
    $bidlist = explode(",", $tblog->bids);
    foreach ($bidlist as $value) {
        $aBlog = get_entity($value);
        $form_data .= "<input type='checkbox' name='bids[]' value='{$value}' /> {$aBlog->title}<br />";
    }
    $form_data .= "<input type='hidden' name='guid' value='{$guid}' />";
    // TODO the problem is thst $guid is empty
    $form_data .= elgg_view('input/submit', array('value' => elgg_echo('Remove')));
    $list .= elgg_view("input/form", array("body" => $form_data, "action" => "/action/blogbook/remove", "id" => "tblog_insert_form", "class" => "elgg-form-alt"));
    if (!$list) {
        $return['content'] = elgg_echo('blog:none');
    } else {
        $return['content'] = $list;
    }
    return $return;
}
Esempio n. 2
0
/**
 * Get page components to list a user's or all blogs.
 *
 * @param int $container_guid The GUID of the page owner or NULL for all blogs
 * @return array
 */
function blog_get_page_content_list($container_guid = NULL)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $order = get_input('order');
    $order ? $order = $order : ($order = "DESC");
    $order == "DESC" ? $currentSort = elgg_echo('hj:forum:latest') : ($currentSort = elgg_echo('hj:forum:oldest'));
    $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false, 'order_by' => 'e.time_created ' . $order);
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $container = get_entity($container_guid);
        if (!$container) {
        }
        $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
        $list = "<div id='filter-dropdown' class='clearfix blog-filter'><span>" . elgg_echo('blog:sort') . "</span><a href=''>" . $currentSort . "</a>\n\t\t\t<ul>\n\t\t\t\t<li>" . elgg_view('output/url', array('href' => 'blog/group/' . $container->guid . '/all?order=DESC', 'text' => '' . elgg_echo('hj:forum:latest') . '')) . "</li>\n\t\t\t\t<li>" . elgg_view('output/url', array('href' => 'blog/group/' . $container->guid . '/all?order=ASC', 'text' => '' . elgg_echo('hj:forum:oldest') . '')) . "</li>\n\t\t\t</ul>\n\t\t</div>";
    } else {
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('blog:title:all_blogs');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('blog:blogs'));
    }
    elgg_register_title_button();
    // show all posts for admin or users looking at their own blogs
    // show only published posts for other users.
    $show_only_published = true;
    if ($current_user) {
        if ($current_user->guid == $container_guid || $current_user->isAdmin()) {
            $show_only_published = false;
        }
    }
    if ($show_only_published) {
        $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published'));
    }
    $list .= elgg_list_entities_from_metadata($options);
    if (!$list) {
        $return['content'] = elgg_echo('blog:none');
    } else {
        $return['content'] = $list;
    }
    return $return;
}
Esempio n. 3
0
/**
 * Get page components to list a user's or all blogs.
 *
 * @param int $container_guid The GUID of the page owner or NULL for all blogs
 * @return array
 */
function blog_get_page_content_list($container_guid = NULL)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all';
    $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false);
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        group_gatekeeper();
        // COLDTRICK: FIXES listing of users blogs
        $container = get_entity($container_guid);
        if ($container instanceof ElggGroup) {
            $options['container_guid'] = $container_guid;
        } else {
            $options['owner_guid'] = $container_guid;
        }
        $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's posts
                $return['filter_context'] = 'none';
            }
        }
    } else {
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('blog:title:all_blogs');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('blog:blogs'));
    }
    elgg_register_title_button();
    // show all posts for admin or users looking at their own blogs
    // show only published posts for other users.
    $show_only_published = true;
    if ($current_user) {
        if ($current_user->guid == $container_guid || $current_user->isAdmin()) {
            $show_only_published = false;
        }
    }
    if ($show_only_published) {
        $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published'));
    }
    $list = elgg_list_entities_from_metadata($options);
    if (!$list) {
        $return['content'] = elgg_echo('blog:none');
    } else {
        $return['content'] = $list;
    }
    return $return;
}
Esempio n. 4
0
/**
 * Get page components to list a user's or all podcast episodes.
 *
 * @param int $container_guid The GUID of the page owner or NULL for all podcasts
 *
 * @return array
 */
function podcasts_get_page_content_list($container_guid = NULL)
{
    $return = array();
    $return['filter_context'] = $container_guid ? 'mine' : 'all_episodes';
    $options = array('type' => 'object', 'subtype' => 'podcast', 'full_view' => false, 'podcast_list_class' => 'elgg-list-podcast-episodes', 'podcast_item_class' => 'elgg-podcast-episode');
    $current_user = elgg_get_logged_in_user_entity();
    if ($container_guid) {
        // access check for closed groups
        group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $container = get_entity($container_guid);
        if (!$container) {
        }
        $return['title'] = elgg_echo('podcasts:title:owner_podcasts', array($container->name));
        $crumbs_title = $container->name;
        elgg_push_breadcrumb($crumbs_title);
        if ($current_user && $container_guid == $current_user->guid) {
            $return['filter_context'] = 'mine';
        } else {
            if (elgg_instanceof($container, 'group')) {
                $return['filter'] = false;
            } else {
                // do not show button or select a tab when viewing someone else's podcasts
                $return['filter_context'] = 'none';
            }
        }
        // Default feed
        $return['feed_description'] = elgg_echo('podcasts:feed:description', array($container->name));
        elgg_extend_view('page/elements/owner_block', 'podcasts/info_sidebar', 1);
        //$return['sidebar'] = elgg_view('podcasts/info_sidebar');
    } else {
        set_input('show_podcast_container', 1);
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('podcasts:title:allpodcastepisodes');
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('podcasts'), 'podcasts/all');
        elgg_push_breadcrumb(elgg_echo('podcasts:filter:allepisodes'));
    }
    elgg_register_title_button();
    $list = elgg_list_entities($options, 'elgg_get_entities_from_metadata', 'podcasts_list');
    if ($list) {
        $return['content'] = $list;
    } else {
        if (elgg_get_viewtype() == 'default') {
            $return['content'] = elgg_echo('podcasts:episodes:none');
        }
    }
    return $return;
}
Esempio n. 5
0
/**
 * gvchat page handler
 *  isegoria chat:  chat
 *  group chat:     chat/group/<guid>
 */
function gvchat_page_handler($page)
{
    $pages = dirname(__FILE__) . '/pages';
    if (isset($page[0])) {
        switch ($page[0]) {
            case 'group':
                if (isset($page[1])) {
                    group_gatekeeper();
                    set_input('groupguid', $page[1]);
                    include "{$pages}/group.php";
                }
                break;
            default:
                return false;
        }
    } else {
        include "{$pages}/isegoria.php";
    }
    return true;
}
Esempio n. 6
0
/**
 * Messageboard dispatcher for flat message board.
 * Profile (and eventually group) widgets handle their own.
 *
 * URLs take the form of
 *  User's messageboard:               messageboard/owner/<username>
 *  Y's history of posts on X's board: messageboard/owner/<X>/history/<Y>
 *  New post:                          messageboard/add/<guid> (container: user or group)
 *  Group messageboard:                messageboard/group/<guid>/all (not implemented)
 *
 * @param array $page Array of page elements
 * @return bool
 */
function messageboard_page_handler($page)
{
    $new_section_one = array('owner', 'add', 'group');
    // if the first part is a username, forward to new format
    if (isset($page[0]) && !in_array($page[0], $new_section_one) && get_user_by_username($page[0])) {
        register_error(elgg_echo("changebookmark"));
        $url = "messageboard/owner/{$page[0]}";
        forward($url);
    }
    $pages = dirname(__FILE__) . '/pages/messageboard';
    switch ($page[0]) {
        case 'owner':
            //@todo if they have the widget disabled, don't allow this.
            $owner_name = elgg_extract(1, $page);
            $owner = get_user_by_username($owner_name);
            set_input('page_owner_guid', $owner->guid);
            $history = elgg_extract(2, $page);
            $username = elgg_extract(3, $page);
            if ($history && $username) {
                set_input('history_username', $username);
            }
            include "{$pages}/owner.php";
            break;
        case 'add':
            $container_guid = elgg_extract(1, $page);
            set_input('container_guid', $container_guid);
            include "{$pages}/add.php";
            break;
        case 'group':
            group_gatekeeper();
            $owner_guid = elgg_extract(1, $page);
            set_input('page_owner_guid', $owner_guid);
            include "{$pages}/owner.php";
            break;
        default:
            return false;
    }
    return true;
}
Esempio n. 7
0
/**
 * ARLean Message Board dispatcher for flat message board.
 *
 * Group messageboard:                wespot_msg/group/<guid>/all
 *
 * @param array $page Array of page elements
 * @return bool
 */
function wespot_msg_page_handler($page)
{
    elgg_load_library('elgg:wespot_arlearn');
    elgg_load_library('elgg:wespot_msg');
    $pages = dirname(__FILE__) . '/pages/wespot_msg';
    //elgg_load_library('elgg:wespot_arlearnservices');
    switch ($page[0]) {
        case 'group':
            group_gatekeeper();
            $owner_guid = elgg_extract(1, $page);
            elgg_set_page_owner_guid($owner_guid);
            //nasko
            set_input('page_owner_guid', $owner_guid);
            $threadId = elgg_extract(2, $page);
            set_input('threadId', $threadId);
            include "{$pages}/group.php";
            break;
        default:
            return false;
    }
    return true;
}
Esempio n. 8
0
function gvthewire_route_handler($hook, $type, $return_value, $params)
{
    /**
     * $return_value contains:
     * $return_value['handler'] => requested handler
     * $return_value['segments'] => url parts ($page)
     */
    $result = $return_value;
    if (!empty($return_value) && is_array($return_value)) {
        $page = $return_value['segments'];
        $base_dir = elgg_get_plugins_path() . 'gvthewire/pages/';
        switch ($page[0]) {
            case "group":
                if (isset($page[1])) {
                    group_gatekeeper();
                    set_input('container_guid', $page[1]);
                    include "{$base_dir}/group.php";
                    $result = false;
                }
                break;
            case "owner":
                include "{$base_dir}/owner.php";
                $result = false;
                break;
            case "all":
            case "friends":
                // remove this url to avoid sitewite thewire access
                forward(REFERER);
                $result = false;
                break;
            default:
                break;
        }
    }
    return $result;
}
Esempio n. 9
0
/**
 * Dispatches event calendar pages.
 *
 * URLs take the form of
 *  Site event calendar:			event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region>
 *  Single event:       			event_calendar/view/<event_guid>/<title>
 *  New event:        				event_calendar/add
 *  Edit event:       				event_calendar/edit/<event_guid>
 *  Group event calendar:  			event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region>
 *  Add group event:   				event_calendar/add/<group_guid>
 *  Review requests:				event_calendar/review_requests/<event_guid>
 *  Display event subscribers:		event_calendar/display_users/<event_guid>
 *  Events for a user's calendar:	event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region>
 *
 * Title is ignored
 *
 * @param array $page
 * @return NULL
 */
function event_calendar_page_handler($page)
{
    elgg_load_library('elgg:event_calendar');
    $page_type = $page[0];
    switch ($page_type) {
        case 'list':
            if (isset($page[1])) {
                $start_date = $page[1];
                if (isset($page[2])) {
                    $display_mode = $page[2];
                    if (isset($page[3])) {
                        $filter_mode = $page[3];
                        if (isset($page[4])) {
                            $region = $page[4];
                        } else {
                            $region = '';
                        }
                    } else {
                        $filter_mode = '';
                    }
                } else {
                    $display_mode = '';
                }
            } else {
                $start_date = 0;
            }
            echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'view':
            echo event_calendar_get_page_content_view($page[1]);
            break;
        case 'view_light_box':
            echo event_calendar_get_page_content_view($page[1], TRUE);
            break;
        case 'display_users':
            echo event_calendar_get_page_content_display_users($page[1]);
            break;
        case 'manage_users':
            echo event_calendar_get_page_content_manage_users($page[1]);
            break;
        case 'schedule':
        case 'add':
            if (isset($page[1])) {
                group_gatekeeper();
                $group_guid = $page[1];
            } else {
                gatekeeper();
                $group_guid = 0;
            }
            echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]);
            break;
        case 'edit':
            gatekeeper();
            echo event_calendar_get_page_content_edit($page_type, $page[1]);
            break;
        case 'group':
            group_gatekeeper();
            if (isset($page[1])) {
                $group_guid = $page[1];
                if (isset($page[2])) {
                    $start_date = $page[2];
                    if (isset($page[3])) {
                        $display_mode = $page[3];
                        if (isset($page[4])) {
                            $filter_mode = $page[4];
                            if (isset($page[5])) {
                                $region = $page[5];
                            } else {
                                $region = '';
                            }
                        } else {
                            $filter_mode = '';
                        }
                    } else {
                        $display_mode = '';
                    }
                } else {
                    $start_date = '';
                }
            } else {
                $group_guid = 0;
            }
            echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'owner':
            if (isset($page[1])) {
                $username = $page[1];
                $user = get_user_by_username($username);
                $user_guid = $user->guid;
                if (isset($page[2])) {
                    $start_date = $page[2];
                    if (isset($page[3])) {
                        $display_mode = $page[3];
                        if (isset($page[4])) {
                            $filter_mode = $page[4];
                            if (isset($page[5])) {
                                $region = $page[5];
                            } else {
                                $region = '';
                            }
                        } else {
                            $filter_mode = '';
                        }
                    } else {
                        $display_mode = '';
                    }
                } else {
                    $start_date = '';
                }
            } else {
                $group_guid = 0;
            }
            echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'review_requests':
            gatekeeper();
            echo event_calendar_get_page_content_review_requests($page[1]);
            break;
        case 'get_fullcalendar_events':
            echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4]);
            break;
        default:
            return FALSE;
    }
    return TRUE;
}
Esempio n. 10
0
/**
 * Dispatcher for bookmarks.
 *
 * URLs take the form of
 *  All bookmarks:        bookmarks/all
 *  User's bookmarks:     bookmarks/owner/<username>
 *  Friends' bookmarks:   bookmarks/friends/<username>
 *  View bookmark:        bookmarks/view/<guid>/<title>
 *  New bookmark:         bookmarks/add/<guid> (container: user, group, parent)
 *  Edit bookmark:        bookmarks/edit/<guid>
 *  Group bookmarks:      bookmarks/group/<guid>/all
 *  Bookmarklet:          bookmarks/bookmarklet/<guid> (user)
 *
 * Title is ignored
 *
 * @param array $page
 */
function bookmarks_page_handler($page)
{
    elgg_load_library('elgg:bookmarks');
    elgg_push_breadcrumb(elgg_echo('bookmarks'), 'bookmarks/all');
    // old group usernames
    if (substr_count($page[0], 'group:')) {
        preg_match('/group\\:([0-9]+)/i', $page[0], $matches);
        $guid = $matches[1];
        if ($entity = get_entity($guid)) {
            bookmarks_url_forwarder($page);
        }
    }
    // user usernames
    $user = get_user_by_username($page[0]);
    if ($user) {
        bookmarks_url_forwarder($page);
    }
    $pages = dirname(__FILE__) . '/pages/bookmarks';
    switch ($page[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            include "{$pages}/friends.php";
            break;
        case "read":
        case "view":
            set_input('guid', $page[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $page[1]);
            include "{$pages}/edit.php";
            break;
        case 'group':
            group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        case "bookmarklet":
            set_input('container_guid', $page[1]);
            include "{$pages}/bookmarklet.php";
            break;
        default:
            return false;
    }
    elgg_pop_context();
    return true;
}
Esempio n. 11
0
/**
 * View a discussion topic
 *
 * @param int $guid GUID of topic
 */
function discussion_handle_view_page($guid)
{
    // We now have RSS on topics
    global $autofeed;
    $autofeed = true;
    $topic = get_entity($guid);
    if (!$topic) {
        register_error(elgg_echo('noaccess'));
        $_SESSION['last_forward_from'] = current_page_url();
        forward('');
    }
    $group = $topic->getContainerEntity();
    if (!$group) {
        register_error(elgg_echo('group:notfound'));
        forward();
    }
    elgg_set_page_owner_guid($group->getGUID());
    group_gatekeeper();
    elgg_push_breadcrumb($group->name, "discussion/owner/{$group->guid}");
    elgg_push_breadcrumb($topic->title);
    $content = elgg_view_entity($topic, array('full_view' => true));
    if ($topic->status == 'closed') {
        $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => false));
        $content .= elgg_view('discussion/closed');
    } elseif ($group->canWriteToContainer(0, 'object', 'groupforumtopic') || elgg_is_admin_logged_in()) {
        $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => true));
    } else {
        $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => false));
    }
    $params = array('content' => $content, 'title' => $topic->title, 'sidebar' => elgg_view('discussion/sidebar'), 'filter' => '');
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($topic->title, $body);
}
Esempio n. 12
0
/**
 * Categories page handler
 * 
 * @param array $page	Array of url segments
 * @return boolean
 */
function page_handler($page)
{
    switch ($page[0]) {
        case 'all':
            $container = get_entity($page[1]);
            if (!elgg_instanceof($container)) {
                $container = elgg_get_site_entity();
            }
            elgg_push_breadcrumb(elgg_echo('categories'));
            $title = elgg_echo('categories');
            $content = elgg_view('framework/categories/all', array('container' => $container));
            $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'filter' => false));
            echo elgg_view_page($title, $layout);
            return true;
            break;
            // categories/manage/$container_guid
        // categories/manage/$container_guid
        case 'manage':
            $container = get_entity($page[1]);
            if (!elgg_instanceof($container)) {
                $container = elgg_get_site_entity();
            }
            // Categories can only be contained by the site or a group
            if (!elgg_instanceof($container, 'site') && !elgg_instanceof($container, 'group')) {
                return false;
            }
            // User should be able to edit an entity to add categories to it
            if (!$container->canEdit()) {
                return false;
            }
            if (elgg_instanceof($container, 'group')) {
                elgg_set_page_owner_guid($container->guid);
                $title = elgg_echo('categories:group', array($container->name));
                $layout = 'one_sidebar';
                $shell = 'default';
            } else {
                elgg_set_context('admin');
                $title = elgg_echo('categories:site');
                $layout = 'admin';
                $shell = 'admin';
            }
            $content = elgg_view_form('categories/manage', array('enctype' => 'multipart/form-data'), array('container' => $container));
            $layout = elgg_view_layout($layout, array('title' => $title, 'content' => $content));
            echo elgg_view_page($title, $layout, $shell);
            return true;
            break;
        case 'view':
            $guid = elgg_extract(1, $page);
            $entity = get_entity($guid);
            if (!elgg_instanceof($entity, 'object', HYPECATEGORIES_SUBTYPE)) {
                return false;
            }
            $crumbs = get_hierarchy($entity->guid, false);
            if ($crumbs) {
                foreach ($crumbs as $crumb) {
                    if (elgg_instanceof($crumb)) {
                        elgg_push_breadcrumb($crumb->title, $crumb->getURL());
                        $container = $crumb->getContainerEntity();
                        if (elgg_instanceof($container, 'group')) {
                            elgg_set_page_owner_guid($container->guid);
                        }
                    }
                }
            }
            elgg_push_breadcrumb($entity->title);
            $title = elgg_echo('categories:category', array($entity->title));
            $content = elgg_view_entity($entity, array('full_view' => true));
            $sidebar = elgg_view('framework/categories/filter', array('entity' => $entity));
            $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'sidebar' => $sidebar, 'filter' => false));
            echo elgg_view_page($title, $layout);
            return true;
            break;
        case 'group':
            if (!HYPECATEGORIES_GROUP_CATEGORIES) {
                return false;
            }
            $group_guid = elgg_extract(1, $page);
            $guid = elgg_extract(2, $page);
            $entity = get_entity($guid);
            elgg_set_page_owner_guid($group_guid);
            group_gatekeeper();
            if (!elgg_instanceof($entity, 'object', HYPECATEGORIES_SUBTYPE)) {
                return false;
            }
            $crumbs = get_hierarchy($entity->guid, false);
            if ($crumbs) {
                foreach ($crumbs as $crumb) {
                    elgg_push_breadcrumb($crumb->title, $crumb->getURL());
                }
            }
            elgg_push_breadcrumb($entity->title);
            $title = elgg_echo('categories:category', array($entity->title));
            $content = elgg_view_entity($entity, array('full_view' => true));
            $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'filter' => false));
            echo elgg_view_page($title, $layout);
            return true;
            break;
        case 'icon':
            $entity = get_entity($page[1]);
            $size = strtolower(elgg_extract(2, $page, 'medium'));
            if (!elgg_instanceof($entity)) {
                return false;
            }
            $size = strtolower(get_input('size'));
            if (!array_key_exists($size, elgg_get_config('icon_sizes'))) {
                $size = 'medium';
            }
            $success = false;
            $filename = "icons/" . $entity->getGUID() . $size . ".jpg";
            $filehandler = new ElggFile();
            $filehandler->owner_guid = $entity->owner_guid;
            $filehandler->setFilename($filename);
            if ($filehandler->open("read")) {
                if ($contents = $filehandler->read($filehandler->size())) {
                    $success = true;
                }
            }
            header("Content-type: image/jpeg");
            header('Expires: ' . date('r', time() + 864000));
            header("Pragma: public");
            header("Cache-Control: public");
            header("Content-Length: " . strlen($contents));
            echo $contents;
            return true;
            break;
    }
    return false;
}
Esempio n. 13
0
/**
* Dispatcher for answers.
*
* URLs take the form of
*  All questions:         answers/all
*  User's questions:      answers/owner/<username>
*  Friends' questions:    answers/friends/<username>
*  View questions:        answers/view/<guid>/<title>
*  New questions:         answers/add/<guid> (container: user, group, parent)
*  Edit questions:        answers/edit/<guid>
*  Group questions:       answers/group/<guid>/all
*
* Title is ignored
* @param array $page From the page_handler function
* @return true|false Depending on success
*/
function answers_page_handler($page)
{
    elgg_load_library('answers:utilities');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('answers'), 'answers/all');
    $pages = dirname(__FILE__) . '/pages/answers';
    switch ($page[0]) {
        case "read":
        case "view":
            set_input('question_id', $page[1]);
            include "{$pages}/view.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            include "{$pages}/friends.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            set_input('question_guid', $page[1]);
            gatekeeper();
            include "{$pages}/edit.php";
            break;
        case "group":
            group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        case "all":
        case "world":
            include "{$pages}/world.php";
            break;
        default:
            return false;
            break;
    }
    return true;
}
Esempio n. 14
0
/**
 * Group members page
 *
 * @param int $guid Group entity GUID
 */
function groups_handle_members_page($guid)
{
    elgg_set_page_owner_guid($guid);
    $group = get_entity($guid);
    if (!$group || !elgg_instanceof($group, 'group')) {
        forward();
    }
    group_gatekeeper();
    $title = elgg_echo('groups:members:title', array($group->name));
    elgg_push_breadcrumb($group->name, $group->getURL());
    elgg_push_breadcrumb(elgg_echo('groups:members'));
    $content = elgg_list_entities_from_relationship(array('relationship' => 'member', 'relationship_guid' => $group->guid, 'inverse_relationship' => true, 'types' => 'user', 'limit' => 20));
    $params = array('content' => $content, 'title' => $title, 'filter' => '');
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($title, $body);
}
Esempio n. 15
0
/**
 * Serves pages for URLs like:
 *
 *  All videos:       videos/all
 *  User's videos:    videos/owner/<username>
 *  Friends' videos:  videos/friends/<username>
 *  View video:       videos/view/<guid>/<title>
 *  New video:        videos/add/<guid>
 *  Edit video:       videos/edit/<guid>
 *  Group videos:     videos/group/<guid>/owner
 *
 * @param string $page
 */
function simplekaltura_page_handler($page)
{
    elgg_push_context('simplekaltura');
    elgg_push_breadcrumb(elgg_echo('videos'), 'videos');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $page_type = $page[0];
    $pages_dir = dirname(__FILE__) . '/pages/simplekaltura';
    switch ($page_type) {
        case 'owner':
            include "{$pages_dir}/owner.php";
            break;
        case 'friends':
            include "{$pages_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', elgg_extract(1, $page));
            include "{$pages_dir}/view.php";
            break;
        case 'add':
            gatekeeper();
            group_gatekeeper();
            include "{$pages_dir}/add.php";
            break;
        case 'edit':
            set_input('guid', elgg_extract(1, $page));
            include "{$pages_dir}/edit.php";
            break;
        case 'group':
            group_gatekeeper();
            include "{$pages_dir}/owner.php";
            break;
        case 'all':
        default:
            include "{$pages_dir}/all.php";
            break;
    }
    return true;
}
Esempio n. 16
0
/**
 * Digital products pagehandler
 *
 * @param array  $page    Array of URL segments
 * @param string $handler Handler name
 * @return boolean
 */
function page_handler($page, $handler)
{
    elgg_push_breadcrumb(elgg_echo('places'), $handler);
    $context = elgg_extract(0, $page, 'all');
    switch ($context) {
        case 'all':
        case 'featured':
            elgg_register_title_button('places', 'create');
            $title = elgg_echo("places:{$context}");
            elgg_push_breadcrumb($title);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'owner':
            $username = $page[1];
            if ($username) {
                $user = get_user_by_username($username);
            } else {
                if (elgg_is_logged_in()) {
                    $user = elgg_get_logged_in_user_entity();
                }
            }
            elgg_set_page_owner_guid($user->guid);
            if (elgg_get_logged_in_user_guid() == $user->guid) {
                elgg_register_title_button('places', 'create');
                $title = elgg_echo('places:mine');
            } else {
                $title = elgg_echo('places:owner', array($user->name));
            }
            elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'group':
            $group = get_entity($page[1]);
            if (!elgg_instanceof($group, 'group')) {
                return false;
            }
            elgg_set_page_owner_guid($group->guid);
            if ($group->canWriteToContainer(0, 'object', Place::SUBTYPE)) {
                elgg_register_title_button('places', 'create');
            }
            elgg_push_breadcrumb($group->name, $handler . '/group/' . $group->guid);
            $content = elgg_view('framework/places/group', $vars);
            $filter = false;
            $sidebar = false;
            break;
        case 'bookmarked':
            gatekeeper();
            $username = $page[1];
            if ($username) {
                $user = get_user_by_username($username);
            } else {
                if (elgg_is_logged_in()) {
                    $user = elgg_get_logged_in_user_entity();
                }
            }
            if (!$user->canEdit()) {
                return false;
            }
            elgg_set_page_owner_guid($user->guid);
            if (elgg_get_logged_in_user_guid() == $user->guid) {
                elgg_register_title_button('places', 'create');
                $title = elgg_echo('places:bookmarked:mine');
            } else {
                $title = elgg_echo('places:bookmarked:owner', array($user->name));
            }
            elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username);
            elgg_push_breadcrumb($title, $handler . '/bookmarked/' . $user->username);
            $vars = array('filter_context' => $context);
            $content = elgg_view('framework/places/list', $vars);
            $filter = elgg_view('framework/places/filter', $vars);
            $sidebar = elgg_view('framework/places/sidebar', $vars);
            break;
        case 'view':
        case 'profile':
            $entity_guid = $page[1];
            $entity = get_entity($entity_guid);
            if (!$entity instanceof Place) {
                return false;
            }
            $container = $entity->getContainerEntity();
            if (elgg_instanceof($container, 'group')) {
                elgg_set_page_owner_guid($container->guid);
                group_gatekeeper(true);
                elgg_push_breadcrumb($container->name, $handler . '/group/' . $container->guid);
            } else {
                $owner = $entity->getOwnerEntity();
                elgg_push_breadcrumb($owner->name, $handler . '/owner/' . $owner->username);
            }
            elgg_set_page_owner_guid($entity->guid);
            $title = $entity->title;
            elgg_push_breadcrumb($title);
            $header_override = '';
            $content = elgg_view('framework/places/profile', array('entity' => $entity));
            $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity));
            $filter = false;
            break;
        case 'create':
            $container_guid = $page[1];
            $container = get_entity($container_guid);
            if (elgg_instanceof($container) && !$container->canWriteToContainer(0, 'object', Place::SUBTYPE)) {
                return false;
            }
            $title = elgg_echo('places:create');
            $content = elgg_view('framework/places/edit', array('container' => $container));
            $filter = false;
            $sidebar = elgg_view('framework/places/sidebar', array('container' => $container));
            break;
        case 'edit':
            $entity_guid = $page[1];
            $entity = get_entity($entity_guid);
            if (!$entity instanceof Place || !$entity->canEdit()) {
                return false;
            }
            $title = elgg_echo('places:edit', array($entity->title));
            $content = elgg_view('framework/places/edit', array('entity' => $entity));
            $filter = false;
            $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity));
            break;
        case 'icon':
            $guid = elgg_extract(1, $page, 0);
            $size = elgg_extract(2, $page, 'medium');
            $entity = get_entity($guid);
            $config = get_icon_sizes($entity);
            if (!array_key_exists($size, $config)) {
                $size = 'medium';
            }
            IconHandler::outputRawIcon($entity->guid, $size);
            break;
    }
    if ($content) {
        if (elgg_is_xhr()) {
            echo $content;
        } else {
            $layout = elgg_view_layout('content', array('header_override' => isset($header_override) ? $header_override : null, 'title' => $title, 'content' => $content, 'filter' => $filter, 'sidebar' => $sidebar));
            echo elgg_view_page($title, $layout);
        }
        return true;
    }
    return false;
}
Esempio n. 17
0
function questions_page_handler($segments)
{
    elgg_push_breadcrumb(elgg_echo('questions'), "/questions/all");
    $pages = dirname(__FILE__) . "/pages/questions";
    switch ($segments[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            gatekeeper();
            include "{$pages}/friends.php";
            break;
        case "view":
            set_input('guid', $segments[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $segments[1]);
            include "{$pages}/edit.php";
            break;
        case 'group':
            group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        default:
            return false;
    }
    elgg_pop_context();
    return true;
}
Esempio n. 18
0
/**
 *  Dispatches amapnews pages.
 *
 * @param array $page
 * @return bool
 */
function amapnews_page_handler($page)
{
    elgg_push_breadcrumb(elgg_echo('amapnews'), 'news');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $vars = array();
    $vars['page'] = $page[0];
    $resource_vars = array();
    switch ($page[0]) {
        case "add":
            $resource_vars['guid'] = elgg_extract(1, $page);
            echo elgg_view_resource('amapnews/add', $resource_vars);
            break;
        case "photo_view":
            $resource_vars['guid'] = elgg_extract(1, $page);
            $resource_vars['size'] = elgg_extract(2, $page);
            $resource_vars['tu'] = elgg_extract(3, $page);
            $resource_vars['ia'] = elgg_extract(4, $page);
            echo elgg_view_resource('amapnews/photo_view', $resource_vars);
            break;
        case "add_existed":
            $resource_vars['cguid'] = elgg_extract(1, $page);
            echo elgg_view_resource('amapnews/add_existed', $resource_vars);
            break;
        case "edit":
            $resource_vars['guid'] = elgg_extract(1, $page);
            echo elgg_view_resource('amapnews/edit', $resource_vars);
            break;
        case "view":
            $resource_vars['guid'] = elgg_extract(1, $page);
            echo elgg_view_resource('amapnews/view', $resource_vars);
            break;
        case "owner":
            echo elgg_view_resource('amapnews/owner');
            break;
        case "group":
            group_gatekeeper();
            echo elgg_view_resource('amapnews/owner');
            break;
        case "all":
            echo elgg_view_resource('amapnews/all');
            break;
        default:
            echo elgg_view_resource('amapnews/all');
            return false;
    }
    elgg_pop_context();
    return true;
}
<?php

$group = get_entity(get_input('group_guid'));
$user = elgg_get_logged_in_user_entity();
$offset = get_input('offset');
$options['offset'] = $offset;
$base_url = get_input('base_url');
if (!$group || !elgg_instanceof($group, 'group')) {
    register_error(elgg_echo('groups:notfound'));
    exit;
}
//elgg_load_library('elgg:groups');
if (group_gatekeeper(false)) {
    if (!$group instanceof ElggGroup) {
        exit;
    }
    //put test in if user not part of group don't show composer otherwise goes in lalaland
    $db_prefix = elgg_get_config('dbprefix');
    $options = array('joins' => array("JOIN {$db_prefix}entities e ON e.guid = rv.object_guid"), 'wheres' => array("(e.container_guid = {$group->guid} OR rv.object_guid = {$group->guid}) AND rv.action_type != 'vote' AND rv.action_type != 'join'"));
    $options['body_class'] = 'new-feed';
    $options['base_url'] = $base_url;
    $activity = elgg_list_river($options);
    if (!$activity) {
        $activity = elgg_view('output/longtext', array('value' => elgg_echo('groups:activity:none')));
    }
    echo $activity;
}
Esempio n. 20
0
/**
 * View a crud object
 *
 * @param CrudTemplate $crud Crud template object
 * @param int $guid GUID of a crud object
 */
function crud_handle_view_page($crud, $guid)
{
    // We now have RSS on assemblies
    global $autofeed;
    $autofeed = true;
    $crud_type = $crud->crud_type;
    $entity = get_entity($guid);
    $parent = $entity->getParentEntity();
    if ($parent instanceof ElggGroup) {
        $group = $parent;
        $parent = NULL;
    } else {
        $group = get_entity($entity->container_guid);
    }
    if (!$group) {
        register_error(elgg_echo('noaccess'));
        $_SESSION['last_forward_from'] = current_page_url();
        forward('');
    }
    /*$group = $entity->getContainerEntity();
    	if (!$group) {
    		register_error(elgg_echo('groups:notfound'));
    		forward();
    	}*/
    if (!empty($crud->children_type) && $group->canWriteToContainer()) {
        elgg_set_page_owner_guid($guid);
        elgg_register_menu_item('title', array('name' => 'add', 'href' => "{$crud->children_type}/add/{$guid}", 'text' => elgg_echo("{$crud->children_type}:add"), 'link_class' => 'elgg-button elgg-button-action'));
    }
    elgg_trigger_plugin_hook("crud:{$crud_type}:view_buttons", 'view_buttons', array('crud' => $crud, 'type' => $crud_type, 'entity' => $entity), $location);
    elgg_set_page_owner_guid($entity->container_guid);
    group_gatekeeper();
    crud_push_breadcrumb($entity, $entity, $crud);
    $content = elgg_view_entity($entity, array('full_view' => true));
    $content .= elgg_view_comments($entity);
    $params = array('content' => $content, 'title' => $entity->getTitle(true), 'filter' => '');
    $sidebar = elgg_view('crud/tagcloud_block', array('subtypes' => $crud->crud_type, 'owner_guid' => elgg_get_page_owner_guid()));
    if (isset($params['sidebar'])) {
        $params['sidebar'] .= $sidebar;
    } else {
        $params['sidebar'] = $sidebar;
    }
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($entity->title, $body);
}
Esempio n. 21
0
/**
 * Dispatcher for videos.
 * URLs take the form of
 *  All videos:        videos/all
 *  User's videos:     videos/owner/<username>
 *  Friends' videos:   videos/friends/<username>
 *  View video:        videos/view/<guid>/<title>
 *  New video:         videos/add/<guid> (container: user, group, parent)
 *  Edit video:        videos/edit/<guid>
 *  Group videos:      videos/group/<guid>/owner
 * Title is ignored
 * @param array $page
 */
function videos_page_handler($page)
{
    elgg_load_library('elgg:videos');
    elgg_push_breadcrumb(elgg_echo('videos'), 'videos/mostviewed');
    elgg_push_context('videos');
    if (substr_count($page[0], 'group:')) {
        preg_match('/group\\:([0-9]+)/i', $page[0], $matches);
        $guid = $matches[1];
        if ($entity = get_entity($guid)) {
            videos_url_forwarder($page);
        }
    }
    $user = get_user_by_username($page[0]);
    if ($user) {
        videos_url_forwarder($page);
    }
    $pages = dirname(__FILE__) . '/pages/videos';
    switch ($page[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            include "{$pages}/friends.php";
            break;
        case "playlist":
            include "{$pages}/playlist.php";
            break;
        case "read":
        case "view":
            set_input('guid', $page[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $page[1]);
            include "{$pages}/edit.php";
            break;
        case 'featured':
            include "{$pages}/featured.php";
            break;
        case 'youtube':
            include "{$pages}/youtube.php";
            break;
        case 'mostviewed':
            include "{$pages}/mostviewed.php";
            break;
        case 'popular':
            file_register_toggle();
            include "{$pages}/popular.php";
            break;
        case 'group':
            group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        default:
            return false;
    }
    elgg_pop_context();
    return true;
}
Esempio n. 22
0
/**
 *  Dispatches vouchers pages.
 *
 * @param array $page
 * @return bool
 */
function vouchers_page_handler($page)
{
    elgg_push_breadcrumb(elgg_echo('vouchers'), 'vouchers/all');
    // user usernames
    //$user = get_user_by_username($page[0]);
    //if ($user) {
    //        bookmarks_url_forwarder($page);
    // }
    $vars = array();
    $vars['page'] = $page[0];
    $base = elgg_get_plugins_path() . 'vouchers/pages/vouchers';
    switch ($page[0]) {
        case "all":
            vouchers_register_toggle();
            include "{$base}/all.php";
            break;
        case "owner":
            vouchers_register_toggle();
            include "{$base}/owner.php";
            break;
        case "friends":
            vouchers_register_toggle();
            include "{$base}/friends.php";
            break;
        case "mypurchases":
            vouchers_register_toggle();
            include "{$base}/mypurchases.php";
            break;
        case "view":
            set_input('guid', $page[1]);
            include "{$base}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$base}/addvoucher.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $page[1]);
            include "{$base}/editvoucher.php";
            break;
        case "group":
            group_gatekeeper();
            include "{$base}/owner.php";
            break;
        default:
            include "{$base}/all.php";
            return false;
    }
    elgg_pop_context();
    return true;
}
Esempio n. 23
0
/**
 * Display individual's or group's videos
 */
function video_get_page_contents_owner()
{
    // access check for closed groups
    group_gatekeeper();
    $owner = elgg_get_page_owner_entity();
    if (!$owner) {
        forward('video/all');
    }
    elgg_push_breadcrumb($owner->name);
    elgg_register_title_button();
    $params = array();
    if ($owner->guid == elgg_get_logged_in_user_guid()) {
        // user looking at own videos
        $params['filter_context'] = 'mine';
    } else {
        if (elgg_instanceof($owner, 'user')) {
            // someone else's videos
            // do not show select a tab when viewing someone else's posts
            $params['filter_context'] = 'none';
        } else {
            // group videos
            $params['filter'] = '';
        }
    }
    if (elgg_instanceof($owner, 'group')) {
        $title = elgg_echo('video:group');
    } else {
        $title = elgg_echo("video:user", array($owner->name));
    }
    // List videos
    $content = elgg_list_entities(array('types' => 'object', 'subtypes' => 'video', 'container_guid' => $owner->guid, 'limit' => 10, 'full_view' => FALSE));
    if (!$content) {
        $content = elgg_echo("video:none");
    }
    $sidebar = elgg_view('video/sidebar');
    $params['content'] = $content;
    $params['title'] = $title;
    $params['sidebar'] = $sidebar;
    return $params;
}
Esempio n. 24
0
function izap_group_gatekeeper()
{
    if (is_callable('elgg_group_gatekeeper')) {
        return elgg_group_gatekeeper();
    } else {
        return group_gatekeeper();
    }
}
Esempio n. 25
0
function polls_get_page_list($page_type, $container_guid = NULL)
{
    global $autofeed;
    $autofeed = TRUE;
    $user = elgg_get_logged_in_user_entity();
    $params = array();
    $options = array('type' => 'object', 'subtype' => 'poll', 'full_view' => FALSE, 'limit' => 15);
    if ($page_type == 'group') {
        $group = get_entity($container_guid);
        if (!elgg_instanceof($group, 'group') || !polls_activated_for_group($group)) {
            forward();
        }
        $params['title'] = elgg_echo('polls:group_polls:listing:title', array(htmlspecialchars($group->name)));
        $params['filter'] = "";
        // set breadcrumb
        elgg_push_breadcrumb(elgg_echo("gvgroups:" . $group->grouptype . "groups"), "groups/" . $group->grouptype);
        elgg_push_breadcrumb($group->name, "polls/group/" . $group->guid);
        elgg_push_context('groups');
        elgg_set_page_owner_guid($container_guid);
        group_gatekeeper();
        $options['container_guid'] = $container_guid;
        $user_guid = elgg_get_logged_in_user_guid();
        if (elgg_get_page_owner_entity()->canWriteToContainer($user_guid)) {
            elgg_register_menu_item('title', array('name' => 'add', 'href' => "polls/add/" . $container_guid, 'text' => elgg_echo('polls:add'), 'class' => 'elgg-button elgg-button-action'));
        }
    } else {
        switch ($page_type) {
            case 'owner':
                $options['owner_guid'] = $container_guid;
                $container_entity = get_user($container_guid);
                elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard");
                elgg_push_breadcrumb($container_entity->name, "polls/owner/" . $container_entity->username);
                if ($user->guid == $container_guid) {
                    $params['title'] = elgg_echo('polls:your');
                    $params['filter_context'] = 'mine';
                } else {
                    $params['title'] = elgg_echo('polls:not_me', array(htmlspecialchars($container_entity->name)));
                    $params['filter_context'] = "";
                }
                break;
            case 'friends':
                $container_entity = get_user($container_guid);
                $friends = get_user_friends($container_guid, ELGG_ENTITIES_ANY_VALUE, 0);
                $options['container_guids'] = array();
                foreach ($friends as $friend) {
                    $options['container_guids'][] = $friend->getGUID();
                }
                $params['filter_context'] = 'friends';
                $params['title'] = elgg_echo('polls:friends');
                elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard");
                elgg_push_breadcrumb($container_entity->name, "polls/owner/" . $container_entity->username);
                elgg_push_breadcrumb(elgg_echo('friends'));
                break;
            case 'all':
                elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard");
                elgg_push_breadcrumb(elgg_echo("polls"));
                $params['filter_context'] = 'all';
                $params['title'] = elgg_echo('item:object:poll');
                break;
        }
        $polls_site_access = elgg_get_plugin_setting('site_access', 'polls');
        if (elgg_is_logged_in() && $polls_site_access != 'admins' || elgg_is_admin_logged_in()) {
            elgg_register_menu_item('title', array('name' => 'add', 'href' => "polls/add", 'text' => elgg_echo('polls:add'), 'class' => 'elgg-button elgg-button-action'));
        }
    }
    if ($page_type == 'friends' && count($options['container_guids']) == 0) {
        // this person has no friends
        $params['content'] = '';
    } else {
        $params['content'] = elgg_list_entities($options);
    }
    if (!$params['content']) {
        $params['content'] = elgg_echo('polls:none');
    }
    $params['sidebar'] = elgg_view('polls/sidebar', array('page' => $page_type));
    $body = elgg_view_layout("content", $params);
    return elgg_view_page($params['title'], $body);
}
Esempio n. 26
0
/**
 * Get page components to list a user's or all webinars.
 * 
 * @param array  $page 
 * @return array
 */
function webinar_get_page_content_list($page = array())
{
    //compilcated input analysing
    $guid_type = $page[0];
    $href = "webinar/{$guid_type}";
    if (isset($page[1])) {
        if ($guid_type == 'all') {
            $guid = 0;
            $filter = $page[1];
        } else {
            if ($guid_type == 'owner' || $guid_type == 'friends') {
                $user = get_user_by_username($page[1]);
                if ($user) {
                    $guid = $user->getGUID();
                } else {
                    register_error(elgg_echo('webinar:error:not_user'));
                    forward("webinar/all");
                }
                $href .= "/{$page['1']}";
                $filter = 'all';
            } else {
                if ($guid_type = 'group' && is_numeric($page[1])) {
                    $guid = $page[1];
                    $href .= "/{$page['1']}";
                    $filter = 'all';
                } else {
                    register_error(elgg_echo('webinar:error:wrong_request'));
                    forward("webinar/all");
                }
            }
        }
        if (isset($page[2])) {
            $filter = $page[2];
        }
    } else {
        $guid = 0;
        $filter = 'all';
    }
    $return = array();
    $options = array('type' => 'object', 'subtype' => 'webinar', 'full_view' => FALSE);
    $filters = array('all', 'upcoming', 'running', 'done');
    //if is valid filter set options for calling metadata search
    if ($filter != 'all' && in_array($filter, $filters)) {
        $options['metadata_names'] = 'status';
        $options['metadata_values'] = $filter;
    }
    //register menu page
    foreach ($filters as $f) {
        elgg_register_menu_item('page', array('name' => "webinar:{$f}", 'text' => elgg_echo("webinar:menu:page:{$f}"), 'href' => $f == 'all' ? $href : "{$href}/{$f}", 'selected' => $f == $filter));
    }
    if (!$guid) {
        $return['filter_context'] = 'all';
        $return['title'] = elgg_echo('webinar:title:site:all');
        //remove the link in the breadcrumb
        elgg_pop_breadcrumb();
        elgg_push_breadcrumb(elgg_echo('webinar:webinars'));
        //create webinar button
        elgg_register_title_button();
    } else {
        $entity = get_entity($guid);
        if ($entity) {
            switch ($guid_type) {
                case 'owner':
                case 'group':
                    //set options
                    $options['container_guid'] = $guid;
                    //set filter
                    if ($guid == elgg_get_logged_in_user_guid()) {
                        $return['filter_context'] = 'mine';
                        $return['title'] = elgg_echo('webinar:title:user:mine');
                        elgg_register_title_button();
                    } else {
                        if (elgg_instanceof($entity, 'group')) {
                            // access check for closed groups
                            group_gatekeeper();
                            $return['filter'] = false;
                            $return['title'] = elgg_echo('webinar:title:group:all', array($entity->name));
                            elgg_register_title_button();
                        } else {
                            // do not show button or select a tab when viewing someone else's posts
                            $return['filter'] = false;
                            $return['title'] = elgg_echo('webinar:title:user:all', array($entity->name));
                        }
                    }
                    //set breadcrumb
                    elgg_push_breadcrumb($entity->name, $entity->getURL());
                    elgg_push_breadcrumb(elgg_echo('webinar:all'));
                    break;
                case 'friends':
                    //set options
                    if (!($friends = get_user_friends($entity->getGUID(), ELGG_ENTITIES_ANY_VALUE, 0))) {
                        register_error(elgg_echo('friends:none:you'));
                        forward("webinar/all");
                    } else {
                        foreach ($friends as $friend) {
                            $options['container_guids'][] = $friend->getGUID();
                        }
                    }
                    //set filter
                    if ($guid == elgg_get_logged_in_user_guid()) {
                        $return['filter_context'] = 'friend';
                        $return['title'] = elgg_echo('webinar:title:friend:mine');
                    } else {
                        $return['filter'] = false;
                        $return['title'] = elgg_echo('webinar:title:friend:user', array($entity->name));
                    }
                    //set breadcrumb
                    elgg_push_breadcrumb($entity->name, "webinar/owner/{$entity->username}");
                    elgg_push_breadcrumb(elgg_echo('friends'));
                    break;
                case 'all':
                default:
                    register_error(elgg_echo('webinar:error:not_found'));
                    forward("webinar/all");
                    break;
            }
        } else {
            register_error(elgg_echo('webinar:error:not_found'));
            forward("webinar/all");
        }
    }
    $list = elgg_list_entities_from_metadata($options);
    if (!$list) {
        $return['content'] = elgg_echo('webinar:error:not_found');
    } else {
        $return['content'] = $list;
    }
    return $return;
}
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 * @author Curverider Ltd
 * @copyright Curverider Ltd 2008-2010
 * @link http://elgg.com/
 */
$group_guid = get_input('group_guid');
set_context('groups');
global $autofeed;
$autofeed = true;
$group = get_entity($group_guid);
if ($group) {
    set_page_owner($group_guid);
    $title = $group->name;
    // Hide some items from closed groups when the user is not logged in.
    $view_all = true;
    $groupaccess = group_gatekeeper(false);
    if (!$groupaccess) {
        $view_all = false;
    }
    $area2 = elgg_view_title($title);
    $area2 .= elgg_view('group/group', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true));
    if ($view_all) {
        //group profile 'items' - these are not real widgets, just contents to display
        $area2 .= elgg_view('groups/profileitems', array('entity' => $group));
        //group members
        $area3 = elgg_view('groups/members', array('entity' => $group));
    } else {
        $area2 .= elgg_view('groups/closedmembership', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true));
    }
    $body = elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3);
} else {
Esempio n. 28
0
/**
 * Dispatches event calendar pages.
 *
 * URLs take the form of
 *  Site event calendar:			event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region>
 *  Single event:       			event_calendar/view/<event_guid>/<title>
 *  New event:        				event_calendar/add
 *  Edit event:       				event_calendar/edit/<event_guid>
 *  Group event calendar:  			event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region>
 *  Add group event:   				event_calendar/add/<group_guid>
 *  Review requests:				event_calendar/review_requests/<event_guid>
 *  Display event subscribers:		event_calendar/display_users/<event_guid>
 *  Events for a user's calendar:	event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region>
 *
 * Title is ignored
 *
 * @param array $page
 * @return null
 */
function event_calendar_page_handler($page)
{
    if (elgg_get_plugin_setting('ical_import_export', 'event_calendar') == "yes") {
        set_input('ical_calendar_title_menu', true);
    }
    elgg_load_library('elgg:event_calendar');
    $page_type = $page[0];
    switch ($page_type) {
        case 'list':
            if (isset($page[1])) {
                $start_date = $page[1];
                set_input('ical_date', $page[1]);
                if (isset($page[2])) {
                    $display_mode = $page[2];
                    set_input('ical_interval', $page[2]);
                    if (isset($page[3])) {
                        $filter_mode = $page[3];
                        switch ($page[3]) {
                            case 'mine':
                                set_input('ical_calendar_filter', 'mine');
                                break;
                            case 'friends':
                                set_input('ical_calendar_filter', 'friends');
                                break;
                            default:
                                set_input('ical_calendar_filter', 'all');
                                break;
                        }
                        if (isset($page[4])) {
                            $region = $page[4];
                            set_input('ical_region', $page[4]);
                        } else {
                            $region = '';
                            set_input('ical_region', '');
                        }
                    } else {
                        $filter_mode = '';
                        set_input('ical_calendar_filter', 'all');
                    }
                } else {
                    $display_mode = '';
                    set_input('ical_interval', '');
                }
            } else {
                $start_date = 0;
                set_input('ical_date', 0);
            }
            echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'view':
            echo event_calendar_get_page_content_view($page[1]);
            break;
        case 'display_users':
            echo event_calendar_get_page_content_display_users($page[1]);
            break;
        case 'manage_users':
            echo event_calendar_get_page_content_manage_users($page[1]);
            break;
        case 'schedule':
        case 'add':
            if (isset($page[1])) {
                group_gatekeeper();
                $group_guid = $page[1];
            } else {
                gatekeeper();
                $group_guid = 0;
            }
            echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]);
            break;
        case 'edit':
            gatekeeper();
            echo event_calendar_get_page_content_edit($page_type, $page[1]);
            break;
        case 'group':
            group_gatekeeper();
            if (isset($page[1])) {
                $group_guid = $page[1];
                set_input('ical_group_guid', $page[1]);
                if (isset($page[2])) {
                    $start_date = $page[2];
                    set_input('ical_date', $page[2]);
                    if (isset($page[3])) {
                        $display_mode = $page[3];
                        set_input('ical_interval', $page[3]);
                        if (isset($page[4])) {
                            $filter_mode = $page[4];
                            switch ($page[4]) {
                                case 'mine':
                                    set_input('ical_calendar_filter', 'mine');
                                    break;
                                case 'friends':
                                    set_input('ical_calendar_filter', 'friends');
                                    break;
                                default:
                                    set_input('ical_calendar_filter', 'all');
                                    break;
                            }
                            if (isset($page[5])) {
                                $region = $page[5];
                                set_input('ical_region', $page[5]);
                            } else {
                                $region = '';
                                set_input('ical_region', '');
                            }
                        } else {
                            $filter_mode = '';
                            set_input('ical_calendar_filter', 'all');
                        }
                    } else {
                        $display_mode = '';
                        set_input('ical_interval', '');
                    }
                } else {
                    $start_date = '';
                    set_input('ical_date', 0);
                }
            } else {
                $group_guid = 0;
                set_input('ical_group_guid', 0);
            }
            echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'owner':
            if (isset($page[1])) {
                $username = $page[1];
                $user = get_user_by_username($username);
                $user_guid = $user->guid;
                if (isset($page[2])) {
                    $start_date = $page[2];
                    if (isset($page[3])) {
                        $display_mode = $page[3];
                        if (isset($page[4])) {
                            $filter_mode = $page[4];
                            if (isset($page[5])) {
                                $region = $page[5];
                            } else {
                                $region = '';
                            }
                        } else {
                            $filter_mode = '';
                        }
                    } else {
                        $display_mode = '';
                    }
                } else {
                    $start_date = '';
                }
            } else {
                $group_guid = 0;
            }
            echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region);
            break;
        case 'review_requests':
            gatekeeper();
            echo event_calendar_get_page_content_review_requests($page[1]);
            break;
        case 'get_fullcalendar_events':
            echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4], $page[5]);
            break;
        case 'ical':
            $resource_vars['action_type'] = $page[1];
            echo elgg_view_resource('event_calendar/export', $resource_vars);
            break;
        default:
            return false;
    }
    return true;
}
Esempio n. 29
0
<?php

$page_owner = elgg_get_page_owner_entity();
$folder_guid = (int) get_input("folder_guid", 0);
$draw_page = get_input("draw_page", true);
$sort_by = get_input("sort_by");
$direction = get_input("direction");
$limit = file_tools_get_list_length();
$offset = (int) get_input("offset", 0);
if (empty($page_owner) || !elgg_instanceof($page_owner, "user") && !elgg_instanceof($page_owner, "group")) {
    forward(REFERER);
}
group_gatekeeper();
if (empty($sort_by)) {
    $sort_value = "e.time_created";
    if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort)) {
        $sort_value = $page_owner->file_tools_sort;
    } elseif ($site_sort_default = elgg_get_plugin_setting("sort", "file_tools")) {
        $sort_value = $site_sort_default;
    }
    $sort_by = $sort_value;
}
if (empty($direction)) {
    $sort_direction_value = "asc";
    if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort_direction)) {
        $sort_direction_value = $page_owner->file_tools_sort_direction;
    } elseif ($site_sort_direction_default = elgg_get_plugin_setting("sort_direction", "file_tools")) {
        $sort_direction_value = $site_sort_direction_default;
    }
    $direction = $sort_direction_value;
}
Esempio n. 30
0
/**
 * Handles all question pages
 *
 * @param array $segments
 */
function questions_page_handler($segments)
{
    elgg_push_breadcrumb(elgg_echo('questions'), "questions/all");
    $pages = dirname(dirname(__FILE__)) . "/pages/questions";
    switch ($segments[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "view":
            set_input('guid', $segments[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "todo":
            if (isset($segments[1]) && is_numeric($segments[1])) {
                set_input("group_guid", $segments[1]);
            }
            include "{$pages}/todo.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $segments[1]);
            include "{$pages}/edit.php";
            break;
        case "group":
            group_gatekeeper();
            set_input("group_guid", $segments[1]);
            $container = get_entity($segments[1]);
            if (!$container instanceof ElggGroup) {
                register_error(elgg_echo('questions:workflow:nogroup'));
                forward(REFERER);
            }
            switch ($segments[2]) {
                case "all":
                    include "{$pages}/owner.php";
                    break;
                case "workflow":
                    if (!questions_workflow_enabled()) {
                        register_error(elgg_echo('questions:workflow:notenabled'));
                        forward(REFERER);
                    }
                    questions_expert_gatekeeper();
                    $workflow = true;
                    include "{$pages}/workflow.php";
                    break;
                default:
                    include "{$pages}/owner.php";
            }
            break;
        case "workflow":
            if (!questions_workflow_enabled()) {
                register_error(elgg_echo('questions:workflow:notenabled'));
                forward(REFERER);
            }
            if (!elgg_is_logged_in()) {
                $_SESSION['last_forward_from'] = current_page_url();
                forward('/login');
            }
            questions_expert_gatekeeper();
            $workflow = true;
            switch ($segments[1]) {
                case "view":
                    set_input('guid', $segments[2]);
                    $question = get_entity($segments[2]);
                    include "{$pages}/view.php";
                    break;
                default:
                    include "{$pages}/workflow.php";
            }
            break;
        case "experts":
            if (isset($segments[1]) && is_numeric($segments[1])) {
                elgg_set_page_owner_guid($segments[1]);
            }
            include "{$pages}/experts.php";
            break;
        case "admin":
            if ($segments[1] == "forms" && $segments[2] == "phase_field") {
                set_input('guid', $segments[3]);
                include dirname(dirname(__FILE__)) . "/pages/forms/phase_field.php";
            } else {
                return false;
            }
            break;
        default:
            forward("questions/all");
            return false;
    }
    return true;
}