Exemplo n.º 1
0
/**
 * Stripe related pages
 *
 * @param array $page
 * @param string $handler
 * @return boolean
 */
function stripe_page_handler($page, $handler)
{
    gatekeeper();
    $username = elgg_extract(0, $page, false);
    if ($username) {
        $user = get_user_by_username($username);
    }
    if (!elgg_instanceof($user) || !$user->canEdit()) {
        $user = elgg_get_logged_in_user_entity();
        forward("{$handler}/{$user->username}");
    }
    elgg_set_context('settings');
    elgg_set_page_owner_guid($user->guid);
    elgg_push_breadcrumb(elgg_echo('stripe:billing'), 'billing');
    $context = elgg_extract(1, $page, 'cards');
    $action = elgg_extract(2, $page, 'all');
    $view = "stripe/pages/{$context}/{$action}";
    if (elgg_view_exists($view)) {
        $params = array('entity' => $user, 'id' => elgg_extract(3, $page, false), 'context' => $page);
        $title = elgg_echo("stripe:{$context}:{$action}");
        $content = elgg_view($view, $params);
        $sidebar = elgg_view('stripe/sidebar', $params);
        $filter = elgg_view("stripe/filters/{$context}/{$action}", $params);
    }
    if ($content) {
        if (elgg_is_xhr()) {
            echo $content;
        } else {
            $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'sidebar' => $sidebar, 'filter' => $filter));
            echo elgg_view_page($title, $layout);
        }
        return true;
    }
    return false;
}
Exemplo n.º 2
0
/**
 * Page handler for generic comments manipulation.
 *
 * @param array $page
 * @return bool
 * @access private
 */
function _elgg_comments_page_handler($page)
{
    switch ($page[0]) {
        case 'edit':
            elgg_gatekeeper();
            if (empty($page[1])) {
                register_error(elgg_echo('generic_comment:notfound'));
                forward(REFERER);
            }
            $comment = get_entity($page[1]);
            if (!$comment instanceof \ElggComment || !$comment->canEdit()) {
                register_error(elgg_echo('generic_comment:notfound'));
                forward(REFERER);
            }
            $target = $comment->getContainerEntity();
            if (!$target instanceof \ElggEntity) {
                register_error(elgg_echo('generic_comment:notfound'));
                forward(REFERER);
            }
            $title = elgg_echo('generic_comments:edit');
            elgg_push_breadcrumb($target->getDisplayName(), $target->getURL());
            elgg_push_breadcrumb($title);
            $params = array('entity' => $target, 'comment' => $comment, 'is_edit_page' => true);
            $content = elgg_view_form('comment/save', null, $params);
            $params = array('content' => $content, 'title' => $title, 'filter' => '');
            $body = elgg_view_layout('content', $params);
            echo elgg_view_page($title, $body);
            return true;
            break;
        default:
            return false;
            break;
    }
}
Exemplo n.º 3
0
/**
 * CRUD page handler
 *
 * URLs take the form of
 *  List crud objects in group:   <crud_type>/owner/<guid>
 *  View crud object:             <crud_type>/view/<guid>
 *  Add crud object:              <crud_type>/add/<guid>
 *  Edit crud object:             <crud_type>/edit/<guid>
 *
 * @param array $page Array of url segments for routing
 * @return bool
 */
function crud_page_handler($page)
{
    elgg_load_library('elgg:crud');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $page_url = current_page_url();
    $site_url = elgg_get_site_url();
    $current_url = str_replace($site_url, "", $page_url);
    $crud_type = current(explode('/', $current_url));
    $crud_handler = crud_get_handler($crud_type);
    $crud_module = $crud_handler->module;
    elgg_push_breadcrumb(elgg_echo($crud_module), '');
    switch ($page[0]) {
        case 'owner':
        case 'group':
            crud_handle_list_page($crud_handler, $page[1]);
            break;
        case 'add':
            crud_handle_edit_page($crud_handler, 'add', $page[1]);
            break;
        case 'edit':
            crud_handle_edit_page($crud_handler, 'edit', $page[1]);
            break;
        case 'view':
            crud_handle_view_page($crud_handler, $page[1]);
            break;
        case 'edit_general':
            crud_handle_edit_page($crud_handler, 'edit_general', $page[1]);
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 4
0
/**
 * View a single blogbook
 *
 * @package Elggtblogs
 */
function recursive_breadcrumb($tblog)
{
    if ($tblog->parent_guid != '') {
        recursive_breadcrumb(get_entity($tblog->parent_guid));
    }
    elgg_push_breadcrumb($tblog->title, "/blogbook/view/{$tblog->guid}");
}
Exemplo n.º 5
0
function au_group_tag_menu_page_handler($page, $identifier)
{
    //show the page of search results
    // assumes url of group/guid/tag
    // if the tag is 'all' then will display a tagcloud
    switch ($page[0]) {
        case 'group':
            $entity = get_entity($page[1]);
            if (!elgg_instanceof($entity, 'group') || $entity->au_group_tag_menu_enable == 'no') {
                return false;
            }
            elgg_push_breadcrumb($entity->name, $entity->getURL());
            //should be OK if this is empty
            $tag = $page[2];
            elgg_push_breadcrumb($tag);
            if ($tag == "all") {
                //show a tag cloud for all group tags
                //arbitrarily set to a max of 640 tags - should be enough for anyone :-)
                $title = elgg_echo("au_group_tag_menu:tagcloud");
                $options = array('container_guid' => $entity->getGUID(), 'type' => 'object', 'threshold' => 0, 'limit' => 640, 'tag_names' => array('tags'));
                $thetags = elgg_get_tags($options);
                //make it an alphabetical tag cloud, not with most popular first
                sort($thetags);
                //find the highest tag count for scaling the font
                $max = 0;
                foreach ($thetags as $key) {
                    if ($key->total > $max) {
                        $max = $key->total;
                    }
                }
                $content = "  ";
                //loop through and generate tags so they display nicely
                //in the group, not as a dumb search page
                foreach ($thetags as $key) {
                    $url = elgg_get_site_url() . "group_tag_menu/group/" . $entity->getGUID() . "/" . urlencode($key->tag);
                    $taglink = elgg_view('output/url', array('text' => ' ' . $key->tag, 'href' => $url, 'title' => "{$key->tag} ({$key->total})", 'rel' => 'tag'));
                    //  get the font size for the tag (taken from elgg's own tagcloud code - not sure I love this)
                    $size = round(log($key->total) / log($max + 0.0001) * 100) + 30;
                    if ($size < 100) {
                        $size = 100;
                    }
                    // generate the link
                    $content .= " <a href='{$url}' style='font-size:{$size}%'>" . $key->tag . "</a> &nbsp; ";
                }
            } else {
                //show the results for the selected tag
                $title = elgg_echo("au_group_tag_menu:title") . "{$tag}";
                $options = array('type' => 'object', 'metadata_name' => 'tags', 'metadata_value' => $tag, 'container_guid' => $entity->guid, 'full_view' => false);
                $content = elgg_list_entities_from_metadata($options);
            }
            //display the page
            if (!$content) {
                $content = elgg_echo('au_group_tag_menu:noresults');
            }
            $layout = elgg_view_layout('content', array('title' => elgg_view_title($title), 'content' => $content, 'filter' => false));
            echo elgg_view_page($title, $layout);
            break;
    }
    return true;
}
Exemplo n.º 6
0
/**
 * Returns HTML to edit a blog post.
 *
 * @param int $guid
 * @param int annotation id optional revision to edit
 * @return string html
 */
function blog_get_page_content_edit($guid, $revision = NULL)
{
    $vars = array();
    if ($guid) {
        $blog = get_entity((int) $guid);
        if (elgg_instanceof($blog, 'object', 'blog') && $blog->canEdit()) {
            $vars['entity'] = $blog;
            if ($revision) {
                $revision = get_annotation((int) $revision);
                $vars['revision'] = $revision;
                if (!$revision || !($revision->entity_guid == $guid)) {
                    $content = elgg_echo('blog:error:revision_not_found');
                }
            }
            elgg_push_breadcrumb($blog->title, $blog->getURL());
            elgg_push_breadcrumb(elgg_echo('edit'));
            $content = elgg_view('blog/forms/edit', $vars);
            $sidebar = elgg_view('blog/sidebar_revisions', array('entity' => $blog));
            //$sidebar .= elgg_view('blog/sidebar_related');
        } else {
            $content = elgg_echo('blog:error:post_not_found');
        }
    } else {
        elgg_push_breadcrumb(elgg_echo('blog:new'));
        $content = elgg_view('blog/forms/edit', $vars);
        //$sidebar = elgg_view('blog/sidebar_related');
    }
    return array('content' => $content, 'sidebar' => $sidebar);
}
Exemplo n.º 7
0
 /**
  * Listen to the blog page handler, to takeover some pages
  *
  * @param string $hook         "route"
  * @param string $type         "blog"
  * @param array  $return_value the current page_handler params
  * @param null   $params       null
  *
  * @return array|bool
  */
 public static function blog($hook, $type, $return_value, $params)
 {
     if (empty($return_value) || !is_array($return_value)) {
         // someone else had a route hook
         return $return_value;
     }
     $page = elgg_extract("segments", $return_value);
     if (empty($page)) {
         return $return_value;
     }
     $pages_path = elgg_get_plugins_path() . "blog_tools/pages/";
     switch ($page[0]) {
         case "owner":
             $user = get_user_by_username($page[1]);
             if (!empty($user)) {
                 $return_value = false;
                 // push all blogs breadcrumb
                 elgg_push_breadcrumb(elgg_echo("blog:blogs"), "blog/all");
                 set_input("owner_guid", $user->guid);
                 include $pages_path . "owner.php";
             }
             break;
         case "read":
             // Elgg 1.7 compatibility
         // Elgg 1.7 compatibility
         case "view":
             if (!elgg_is_logged_in()) {
                 $setting = elgg_get_plugin_setting("advanced_gatekeeper", "blog_tools");
                 if ($setting != "no") {
                     if (isset($page[1]) && !get_entity($page[1])) {
                         elgg_gatekeeper();
                     }
                 }
             }
             set_input("guid", $page[1]);
             // to be used in the blog_tools/full/related view
             break;
         case "add":
         case "edit":
             $return_value = false;
             // push all blogs breadcrumb
             elgg_push_breadcrumb(elgg_echo("blog:blogs"), "blog/all");
             set_input("page_type", $page[0]);
             if (isset($page[1])) {
                 set_input("guid", $page[1]);
             }
             if (isset($page[2])) {
                 set_input("revision", $page[2]);
             }
             include $pages_path . "edit.php";
             break;
         case "featured":
             $return_value = false;
             include $pages_path . "featured.php";
             break;
     }
     return $return_value;
 }
Exemplo n.º 8
0
Arquivo: start.php Projeto: rasul/Elgg
/**
 * 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>/owner
 *  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');
    elgg_push_context('bookmarks');
    // 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;
}
Exemplo n.º 9
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;
}
Exemplo n.º 10
0
 public function testCrumbLinksAreNormalized()
 {
     $this->markTestIncomplete('Needs DB');
     // TODO make this unnecessary
     elgg_set_view_location('output/url', __DIR__ . '/../../../views/');
     elgg_set_view_location('navigation/breadcrumbs', __DIR__ . '/../../../views/');
     elgg_push_breadcrumb('test', 'link');
     $html = elgg_view('navigation/breadcrumbs');
     $this->assertNotFalse(strpos($html, '"http://localhost/link"'));
 }
Exemplo n.º 11
0
function etherpad_page_handler($page, $handler)
{
    // 	elgg_load_library('elgg:pages');
    if ($handler == 'pages') {
        // add the jquery treeview files for navigation
        elgg_load_js('jquery-treeview');
        elgg_load_css('jquery-treeview');
    }
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo($handler), "{$handler}/all");
    $base_dir = elgg_get_plugins_path() . "etherpad/pages/{$handler}";
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            include "{$base_dir}/owner.php";
            break;
        case 'friends':
            include "{$base_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', $page[1]);
            include "{$base_dir}/view.php";
            break;
        case 'add':
            set_input('guid', $page[1]);
            include "{$base_dir}/new.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$base_dir}/edit.php";
            break;
        case 'group':
            include "{$base_dir}/owner.php";
            break;
        case 'history':
            set_input('guid', $page[1]);
            include "{$base_dir}/history.php";
            break;
        case 'revision':
            set_input('id', $page[1]);
            include "{$base_dir}/revision.php";
            break;
        case 'all':
            include "{$base_dir}/world.php";
            break;
        case "cross":
            include "{$base_dir}/cross.php";
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 12
0
function get_create_forms($page)
{
    $parent_guid = 0;
    switch ($page[0]) {
        case "blog":
            echo "<h2>Add a Blog</h2>";
            elgg_load_library('elgg:blog');
            $body_vars = blog_prepare_form_vars();
            echo elgg_view_form('blog/save', array(), array_merge($body_vars, $vars));
            exit;
        case "event":
            echo "<h2>Add an Event</h2>";
            elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
            echo elgg_view("event_manager/forms/event/edit");
            exit;
        case "group":
            echo "<h2>" . elgg_echo('groups:add') . "</h2>";
            elgg_load_library('elgg:groups');
            elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
            elgg_push_breadcrumb($title);
            if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) {
                $content = elgg_view('groups/edit');
            } else {
                $content = elgg_echo('groups:cantcreate');
            }
            echo $content;
            exit;
        case "project":
            echo "<h2>" . elgg_echo('projects:add') . "</h2>";
            $vars = projects_prepare_form_vars(null, $parent_guid);
            $content = elgg_view_form('projects/edit', array('enctype' => 'multipart/form-data'), $vars);
            echo $content;
            exit;
        case "page":
            elgg_load_library('elgg:pages');
            echo "<h2>" . elgg_echo('pages:add') . "</h2>";
            $vars = pages_prepare_form_vars(null, $parent_guid);
            $content = elgg_view_form('pages/edit', array(), $vars);
            echo $content;
            exit;
        case "answer":
            echo "<h2>" . elgg_echo('answers:add') . "</h2>";
            elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
            echo elgg_view("answers/forms/question", array('container_guid' => elgg_get_page_owner_guid()));
            exit;
        case "task":
            elgg_load_library('elgg:tasks');
            echo "<h2>" . elgg_echo('tasks:add') . "</h2>";
            $vars = tasks_prepare_form_vars(null, $parent_guid);
            $content = elgg_view_form('tasks/edit', array(), $vars);
            echo $content;
            exit;
    }
}
Exemplo n.º 13
0
 public function pushBreadcrumbs(ElggEntity $entity)
 {
     $breadcrumbs = $this->getBreadcrumbs($entity);
     foreach ($breadcrumbs as $breadcrumb) {
         $text = elgg_extract('text', $breadcrumb, '');
         $href = elgg_extract('href', $breadcrumb);
         if ($text) {
             elgg_push_breadcrumb($text, $href);
         }
     }
 }
Exemplo n.º 14
0
 public function testTrailingNonLinkIsRemoved()
 {
     $this->markTestIncomplete('Needs DB');
     // TODO make this unnecessary
     elgg_set_view_location('output/url', __DIR__ . '/../../../views/');
     elgg_set_view_location('navigation/breadcrumbs', __DIR__ . '/../../../views/');
     elgg_push_breadcrumb('Foo', 'foo');
     elgg_push_breadcrumb('Bar');
     $html = elgg_view('navigation/breadcrumbs');
     $this->assertFalse(strpos($html, 'Bar'));
 }
Exemplo n.º 15
0
function avatar_wall_page_handler($page)
{
    elgg_push_breadcrumb(elgg_echo('avatar_wall:title'));
    $title = elgg_echo('avatar_wall:title');
    $area = elgg_view('avatar_wall/wall');
    // Format page
    $body = elgg_view('page/layouts/one_column', array('content' => $area, 'title' => $title));
    // Draw it
    echo elgg_view_page(elgg_echo('avatar_wall:title'), $body);
    return true;
}
Exemplo n.º 16
0
/**
 * Dispatcher for webinar.
 * URLs take the form of
 *  All webinar:      		webinar/all
 *  View webinar: 	  		webinar/view/<guid>
 *  Add webinar:      		webinar/new/<guid_container> (container: user, group)
 *  Edit webinar:     		webinar/edit/<guid>
 *  User's webinar:   		webinar/owner/<username>/
 *  User friends's webinar:	webinar/friends/<username>/
 *  Group webinar:    		webinar/group/<guid>/all
 *  Relationship to webinar : webinar/<attendee | registered>/<guid>
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function webinar_page_handler($page)
{
    elgg_load_library('elgg:webinar');
    // push all webinars breadcrumb
    elgg_push_breadcrumb(elgg_echo('webinar:webinars'), "webinar/all");
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $page_type = $page[0];
    switch ($page_type) {
        case 'all':
        case "owner":
        case 'friends':
        case "group":
            $params = webinar_get_page_content_list($page);
            break;
        case "view":
            if (isset($page[1]) && is_numeric($page[1])) {
                $params = webinar_get_page_content_view($page[1]);
            } else {
                return false;
            }
            break;
        case "add":
        case "edit":
            gatekeeper();
            if (isset($page[1]) && is_numeric($page[1])) {
                $params = webinar_get_page_content_edit($page_type, $page[1]);
            } else {
                return false;
            }
            break;
        case "attendee":
        case "registered":
            if (isset($page[1]) && is_numeric($page[1])) {
                $params = webinar_get_page_content_relationships($page_type, $page[1]);
            } else {
                return false;
            }
            break;
        default:
            return false;
            break;
    }
    if (isset($params['sidebar'])) {
        $params['sidebar'] .= elgg_view('webinar/sidebar', array('page' => $page_type));
    } else {
        $params['sidebar'] = elgg_view('webinar/sidebar', array('page' => $page_type));
    }
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page($params['title'], $body);
    return true;
}
Exemplo n.º 17
0
/**
 * Dispatcher for projects.
 * URLs take the form of
 *  All projects:        projects/all
 *  User's projects:     projects/owner/<username>
 *  Friends' projects:   projects/friends/<username>
 *  View project:        projects/view/<guid>/<title>
 *  New project:         projects/add/<guid> (container: user, group, parent)
 *  Edit project:        projects/edit/<guid>
 *  History of project:  projects/history/<guid>
 *  Revision of project: projects/revision/<id>
 *  Group projects:      projects/group/<guid>/all
 *
 * Title is ignored
 *
 * @param array $project
 * @return bool
 */
function changeReqs_page_handler($changeReqs)
{
    if (!isset($changeReqs[0])) {
        $changeReqs[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('changeReqss'), 'changeReqs/all');
    $base_dir = elgg_get_plugins_path() . 'changeRequests/pages/changeReqs';
    $changeReqs_type = $changeReqs[0];
    switch ($changeReqs_type) {
        case 'request':
            set_input('guid', $changeReqs[1]);
            include "{$base_dir}/request.php";
            break;
        case 'search':
            include "{$base_dir}/search.php";
            break;
        case 'owner':
            include "{$base_dir}/owner.php";
            break;
        case 'friends':
            include "{$base_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', $changeReqs[1]);
            include "{$base_dir}/view.php";
            break;
        case 'add':
            set_input('guid', $changeReqs[1]);
            include "{$base_dir}/new.php";
            break;
        case 'edit':
            set_input('guid', $changeReqs[1]);
            include "{$base_dir}/edit.php";
            break;
        case 'group':
            include "{$base_dir}/owner.php";
            break;
        case 'history':
            set_input('guid', $changeReqs[1]);
            include "{$base_dir}/history.php";
            break;
        case 'revision':
            set_input('id', $changeReqs[1]);
            include "{$base_dir}/revision.php";
            break;
        case 'all':
            include "{$base_dir}/world.php";
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 18
0
/**
 * Prepare the add/edit form variables
 *
 * @param ElggObject $video A video object.
 * @return array
 */
function videos_get_page_content_featured($guid = NULL)
{
    $return = array();
    $options = array('type' => 'object', 'subtype' => 'videos', 'full_view' => FALSE, 'limit' => 10, 'metadata_name_value_pairs' => array(array("name" => "featured", "value" => true)));
    $list = elgg_list_entities_from_metadata($options);
    $return['filter_context'] = 'Featured';
    $return['content'] = $list;
    $return['title'] = elgg_echo('videos:title:featured');
    elgg_push_breadcrumb($crumbs_title, "Featured");
    elgg_register_title_button();
    return $return;
}
Exemplo n.º 19
0
/**
 * poll page handler; allows the use of fancy URLs
 *
 * @param array $page From the page_handler function
 * @return true|false Depending on success
 */
function poll_page_handler($page)
{
    elgg_load_library('elgg:poll');
    elgg_push_breadcrumb(elgg_echo('item:object:poll'), "poll/all");
    $page_type = $page[0];
    switch ($page_type) {
        case "view":
            echo poll_get_page_view($page[1]);
            break;
        case "all":
            echo poll_get_page_list($page_type);
            break;
        case "add":
        case "edit":
            $container = null;
            if (isset($page[1])) {
                $container = $page[1];
            }
            echo poll_get_page_edit($page_type, $container);
            break;
        case "friends":
        case "owner":
            $username = $page[1];
            $user = get_user_by_username($username);
            $user_guid = $user->guid;
            echo poll_get_page_list($page_type, $user_guid);
            break;
        case "group":
            echo poll_get_page_list($page_type, $page[1]);
            break;
        default:
            $user = get_user_by_username($page_type);
            if ($user instanceof ElggUser) {
                if (isset($page[1])) {
                    switch ($page[1]) {
                        case "read":
                            forward("/poll/view/{$page[2]}");
                            break;
                        case "friends":
                            forward("/poll/friends/{$user->username}");
                            break;
                    }
                    // If the URL is just 'poll/username' forward to polls page of this user
                } else {
                    forward("/poll/owner/{$user->username}");
                    break;
                }
            }
            return false;
            break;
    }
    return true;
}
Exemplo n.º 20
0
/**
 * Dispatches blog pages.
 * URLs take the form of
 *  All blogs:       blog/all
 *  User's blogs:    blog/owner/<username>
 *  Friends' blog:   blog/friends/<username>
 *  User's archives: blog/archives/<username>/<time_start>/<time_stop>
 *  Blog post:       blog/view/<guid>/<title>
 *  New post:        blog/add/<guid>
 *  Edit post:       blog/edit/<guid>/<revision>
 *  Preview post:    blog/preview/<guid>
 *  Group blog:      blog/group/<guid>/all
 *
 * Title is ignored
 *
 * @todo no archives for all blogs or friends
 *
 * @param array $page
 * @return bool
 */
function blog_page_handler($page)
{
    elgg_load_library('elgg:blog');
    // push all blogs breadcrumb
    elgg_push_breadcrumb(elgg_echo('blog:blogs'), "blog/all");
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            set_input('username', $page[1]);
            echo elgg_view_resource('blog/owner');
            break;
        case 'friends':
            set_input('username', $page[1]);
            echo elgg_view_resource('blog/friends');
            break;
        case 'archive':
            set_input('username', $page[1]);
            set_input('lower', $page[2]);
            set_input('upper', $page[3]);
            echo elgg_view_resource('blog/archive');
            break;
        case 'view':
            set_input('guid', $page[1]);
            echo elgg_view_resource('blog/view');
            break;
        case 'add':
            set_input('guid', $page[1]);
            echo elgg_view_resource('blog/add');
            break;
        case 'edit':
            set_input('guid', $page[1]);
            set_input('revision', $page[2]);
            echo elgg_view_resource('blog/edit');
            break;
        case 'group':
            set_input('group_guid', $page[1]);
            set_input('page_type', $page[2]);
            set_input('lower', $page[3]);
            set_input('upper', $page[4]);
            echo elgg_view_resource('blog/group');
            break;
        case 'all':
            echo elgg_view_resource('blog/all');
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 21
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;
}
Exemplo n.º 22
0
/**
 * Dispatches blog pages.
 * URLs take the form of
 *  All blogs:       blog/all
 *  User's blogs:    blog/owner/<username>
 *  Friends' blog:   blog/friends/<username>
 *  User's archives: blog/archives/<username>/<time_start>/<time_stop>
 *  Blog post:       blog/view/<guid>/<title>
 *  New post:        blog/add/<guid>
 *  Edit post:       blog/edit/<guid>/<revision>
 *  Preview post:    blog/preview/<guid>
 *  Group blog:      blog/group/<guid>/all
 *
 * Title is ignored
 *
 * @todo no archives for all blogs or friends
 *
 * @param array $page
 * @return bool
 */
function blog_page_handler($page)
{
    elgg_load_library('elgg:blog');
    // push all blogs breadcrumb
    elgg_push_breadcrumb(elgg_echo('blog:blogs'), 'blog/all');
    $page_type = elgg_extract(0, $page, 'all');
    $resource_vars = ['page_type' => $page_type];
    switch ($page_type) {
        case 'owner':
            $resource_vars['username'] = elgg_extract(1, $page);
            echo elgg_view_resource('blog/owner', $resource_vars);
            break;
        case 'friends':
            $resource_vars['username'] = elgg_extract(1, $page);
            echo elgg_view_resource('blog/friends', $resource_vars);
            break;
        case 'archive':
            $resource_vars['username'] = elgg_extract(1, $page);
            $resource_vars['lower'] = elgg_extract(2, $page);
            $resource_vars['upper'] = elgg_extract(3, $page);
            echo elgg_view_resource('blog/archive', $resource_vars);
            break;
        case 'view':
            $resource_vars['guid'] = elgg_extract(1, $page);
            echo elgg_view_resource('blog/view', $resource_vars);
            break;
        case 'add':
            $resource_vars['guid'] = elgg_extract(1, $page);
            echo elgg_view_resource('blog/add', $resource_vars);
            break;
        case 'edit':
            $resource_vars['guid'] = elgg_extract(1, $page);
            $resource_vars['revision'] = elgg_extract(2, $page);
            echo elgg_view_resource('blog/edit', $resource_vars);
            break;
        case 'group':
            $resource_vars['group_guid'] = elgg_extract(1, $page);
            $resource_vars['subpage'] = elgg_extract(2, $page);
            $resource_vars['lower'] = elgg_extract(3, $page);
            $resource_vars['upper'] = elgg_extract(4, $page);
            echo elgg_view_resource('blog/group', $resource_vars);
            break;
        case 'all':
            echo elgg_view_resource('blog/all', $resource_vars);
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 23
0
function sched_conf_get_page_content_edit($page_type, $guid)
{
    $vars = array();
    $vars['id'] = 'sched-conf-edit';
    $vars['name'] = 'sched_conf_edit';
    // just in case a feature adds an image upload
    $vars['enctype'] = 'multipart/form-data';
    $body_vars = array();
    if ($page_type == 'edit') {
        $title = elgg_echo('sched_conf:edit_conf_title');
        $conf = get_entity((int) $guid);
        if (elgg_instanceof($conf, 'object', 'conference') && $conf->canEdit()) {
            $body_vars['conference'] = $conf;
            $body_vars['form_data'] = sched_conf_prepare_edit_form_vars($conf);
            $conf_container = get_entity($conf->container_guid);
            if (elgg_instanceof($conf_container, 'group')) {
                elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/' . $conf->container_guid);
            } else {
                elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'), 'event_calendar/list');
            }
            elgg_push_breadcrumb(elgg_echo('sched_conf:edit_conf_title'));
            $content = elgg_view_form('sched_conf/edit', $vars, $body_vars);
        } else {
            $content = elgg_echo('sched_conf:error_edit');
        }
    } else {
        $title = elgg_echo('sched_conf:add_conf_title');
        if ($guid) {
            // add to group
            $group = get_entity($guid);
            if (elgg_instanceof($group, 'group')) {
                $body_vars['group_guid'] = $guid;
                elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/' . $guid);
                elgg_push_breadcrumb(elgg_echo('sched_conf:add_conf_title'));
                $body_vars['form_data'] = event_calendar_prepare_edit_form_vars();
                $content = elgg_view_form('sched_conf/edit', $vars, $body_vars);
            } else {
                $content = elgg_echo('sched_conf:no_group');
            }
        } else {
            elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'), 'event_calendar/list');
            elgg_push_breadcrumb(elgg_echo('sched_conf:add_conf_title'));
            $body_vars['form_data'] = sched_conf_prepare_edit_form_vars();
            $content = elgg_view_form('sched_conf/edit', $vars, $body_vars);
        }
    }
    $params = array('title' => $title, 'content' => $content, 'filter' => '');
    $body = elgg_view_layout("content", $params);
    return elgg_view_page($title, $body);
}
Exemplo n.º 24
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;
}
Exemplo n.º 25
0
 /**
  * Handle all /answers URLs
  *
  * @param array $page URL segments
  *
  * @return bool
  */
 public static function answers($page)
 {
     elgg_push_breadcrumb(elgg_echo('questions'), 'questions/all');
     $params = [];
     switch (elgg_extract(0, $page)) {
         case 'edit':
             $params['guid'] = (int) elgg_extract(1, $page);
             echo elgg_view_resource('answers/edit', $params);
             break;
         default:
             forward('questions/all');
             return false;
     }
     return true;
 }
Exemplo n.º 26
0
/**
 * Recurses the page tree and adds the breadcrumbs for all ancestors
 *
 * @param ElggObject $page Page entity
 */
function pages_prepare_parent_breadcrumbs($page)
{
    if ($page && $page->parent_guid) {
        $parents = array();
        $parent = get_entity($page->parent_guid);
        while ($parent) {
            array_push($parents, $parent);
            $parent = get_entity($parent->parent_guid);
        }
        while ($parents) {
            $parent = array_pop($parents);
            elgg_push_breadcrumb($parent->title, $parent->getURL());
        }
    }
}
Exemplo n.º 27
0
/**
 * Dispatche chat pages.
 *
 * @param array $page
 * @return bool
 */
function chat_page_handler($page)
{
    elgg_load_library('chat');
    if (!isset($page[0])) {
        elgg_push_breadcrumb(elgg_echo('chat'));
        $page[0] = 'all';
    } else {
        elgg_push_breadcrumb(elgg_echo('chat'), 'chat/all');
    }
    switch ($page[0]) {
        case 'messages':
            include __DIR__ . '/messages.php';
            return true;
        case 'notifier':
            include __DIR__ . '/notifier.php';
            return true;
        case 'owner':
            $user = get_user_by_username($page[1]);
            $params = chat_all($user->guid);
            break;
        case 'friends':
            $user = get_user_by_username($page[1]);
            $params = chat_friends($user->guid);
            break;
        case 'add':
            gatekeeper();
            $params = chat_edit();
            break;
        case 'edit':
            gatekeeper();
            $params = chat_edit($page[1]);
            break;
        case 'view':
            $params = chat_view($page[1]);
            break;
        case 'members':
            gatekeeper();
            $params = chat_add_members($page[1]);
            break;
        case 'all':
        default:
            $params = chat_all();
            break;
    }
    $body = elgg_view_layout('content', $params);
    echo elgg_view_page('test', $body);
    return true;
}
Exemplo n.º 28
0
/**
 * Handles all answer pages
 *
 * @param array $segments
 *
 * @return bool
 */
function answers_page_handler($segments)
{
    elgg_push_breadcrumb(elgg_echo('questions'), 'questions/all');
    $pages = dirname(dirname(__FILE__)) . '/pages/answers';
    switch ($segments[0]) {
        case 'edit':
            elgg_gatekeeper();
            set_input('guid', $segments[1]);
            include "{$pages}/edit.php";
            break;
        default:
            forward('questions/all');
            return false;
    }
    return true;
}
Exemplo n.º 29
0
/**
 * Dispatcher for pages.
 * URLs take the form of
 *  All pages:        pages/all
 *  User's pages:     pages/owner/<username>
 *  Friends' pages:   pages/friends/<username>
 *  View page:        pages/view/<guid>/<title>
 *  New page:         pages/add/<guid> (container: user, group, parent)
 *  Edit page:        pages/edit/<guid>
 *  History of page:  pages/history/<guid>
 *  Revision of page: pages/revision/<id>
 *  Group pages:      pages/group/<guid>/all
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function pages_page_handler($page)
{
    elgg_load_library('elgg:pages');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('pages'), 'pages/all');
    $base_dir = elgg_get_plugins_path() . 'pages/pages/pages';
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            include "{$base_dir}/owner.php";
            break;
        case 'friends':
            include "{$base_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', $page[1]);
            include "{$base_dir}/view.php";
            break;
        case 'add':
            set_input('guid', $page[1]);
            include "{$base_dir}/new.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$base_dir}/edit.php";
            break;
        case 'group':
            include "{$base_dir}/owner.php";
            break;
        case 'history':
            set_input('guid', $page[1]);
            include "{$base_dir}/history.php";
            break;
        case 'revision':
            set_input('id', $page[1]);
            include "{$base_dir}/revision.php";
            break;
        case 'all':
            include "{$base_dir}/world.php";
            break;
        default:
            return false;
    }
    return true;
}
Exemplo n.º 30
0
 /**
  * /poll page handler
  *
  * @param array $page url segments
  *
  * @return bool
  */
 public static function pollHandler($page)
 {
     $pages_root = elgg_get_plugins_path() . 'poll/pages/';
     $include_file = false;
     switch ($page[0]) {
         case 'add':
             $include_file = "{$pages_root}poll/add.php";
             break;
         case 'view':
             if (isset($page[1]) && is_numeric($page[1])) {
                 set_input('guid', $page[1]);
             }
             $include_file = "{$pages_root}poll/view.php";
             break;
         case 'all':
             $include_file = "{$pages_root}poll/all.php";
             break;
         case 'owner':
             $include_file = "{$pages_root}poll/owner.php";
             break;
         case 'friends':
             $include_file = "{$pages_root}poll/friends.php";
             break;
         case 'group':
             if (isset($page[1]) && is_numeric($page[1])) {
                 elgg_set_page_owner_guid($page[1]);
             }
             $include_file = "{$pages_root}poll/owner.php";
             break;
         case 'edit':
             if (isset($page[1]) && is_numeric($page[1])) {
                 set_input('guid', $page[1]);
             }
             $include_file = "{$pages_root}poll/edit.php";
             break;
         default:
             forward('poll/all');
             break;
     }
     if (!empty($include_file)) {
         elgg_push_breadcrumb(elgg_echo('poll:menu:site'), 'poll/all');
         include $include_file;
         return true;
     }
     return false;
 }