Esempio n. 1
0
File: start.php Progetto: elgg/elgg
/**
 * Discussion page handler
 *
 * URLs take the form of
 *  All topics in site:    discussion/all
 *  List topics in forum:  discussion/owner/<guid>
 *  View discussion topic: discussion/view/<guid>
 *  Add discussion topic:  discussion/add/<guid>
 *  Edit discussion topic: discussion/edit/<guid>
 *
 * @param array $page Array of url segments for routing
 * @return bool
 */
function discussion_page_handler($page)
{
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('discussion'), 'discussion/all');
    switch ($page[0]) {
        case 'all':
            echo elgg_view_resource('discussion/all');
            break;
        case 'owner':
            echo elgg_view_resource('discussion/owner', ['guid' => elgg_extract(1, $page)]);
            break;
        case 'group':
            echo elgg_view_resource('discussion/group', ['guid' => elgg_extract(1, $page)]);
            break;
        case 'add':
            echo elgg_view_resource('discussion/add', ['guid' => elgg_extract(1, $page)]);
            break;
        case 'reply':
            switch (elgg_extract(1, $page)) {
                case 'edit':
                    echo elgg_view_resource('discussion/reply/edit', ['guid' => elgg_extract(2, $page)]);
                    break;
                case 'view':
                    discussion_redirect_to_reply(elgg_extract(2, $page), elgg_extract(3, $page));
                    break;
                default:
                    return false;
            }
            break;
        case 'edit':
            echo elgg_view_resource('discussion/edit', ['guid' => elgg_extract(1, $page)]);
            break;
        case 'view':
            echo elgg_view_resource('discussion/view', ['guid' => elgg_extract(1, $page)]);
            break;
        default:
            return false;
    }
    return true;
}
Esempio n. 2
0
/**
 * Discussion page handler
 *
 * URLs take the form of
 *  All topics in site:    discussion/all
 *  List topics in forum:  discussion/owner/<guid>
 *  View discussion topic: discussion/view/<guid>
 *  Add discussion topic:  discussion/add/<guid>
 *  Edit discussion topic: discussion/edit/<guid>
 *
 * @param array $page Array of url segments for routing
 * @return bool
 */
function discussion_page_handler($page)
{
    elgg_load_library('elgg:discussion');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('discussion'), 'discussion/all');
    switch ($page[0]) {
        case 'all':
            discussion_handle_all_page();
            break;
        case 'owner':
            discussion_handle_list_page(elgg_extract(1, $page));
            break;
        case 'add':
            discussion_handle_edit_page('add', elgg_extract(1, $page));
            break;
        case 'reply':
            switch (elgg_extract(1, $page)) {
                case 'edit':
                    discussion_handle_reply_edit_page('edit', elgg_extract(2, $page));
                    break;
                case 'view':
                    discussion_redirect_to_reply(elgg_extract(2, $page), elgg_extract(3, $page));
                    break;
                default:
                    return false;
            }
            break;
        case 'edit':
            discussion_handle_edit_page('edit', elgg_extract(1, $page));
            break;
        case 'view':
            discussion_handle_view_page(elgg_extract(1, $page));
            break;
        default:
            return false;
    }
    return true;
}
Esempio n. 3
0
/**
 * Discussion page handler
 *
 * URLs take the form of
 *  All topics in site:    discussion/all
 *  List topics in forum:  discussion/owner/<guid>
 *  View discussion topic: discussion/view/<guid>
 *  Add discussion topic:  discussion/add/<guid>
 *  Edit discussion topic: discussion/edit/<guid>
 *
 * @param array $page Array of url segments for routing
 * @return bool
 */
function discussion_page_handler($page)
{
    elgg_load_library('elgg:discussion');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('discussion'), 'discussion/all');
    switch ($page[0]) {
        case 'all':
            echo elgg_view_resource('discussion/all');
            break;
        case 'owner':
            set_input('owner_guid', elgg_extract(1, $page));
            echo elgg_view_resource('discussion/owner');
            break;
        case 'add':
            set_input('guid', elgg_extract(1, $page));
            echo elgg_view_resource('discussions/add');
            break;
        case 'reply':
            switch (elgg_extract(1, $page)) {
                case 'edit':
                    set_input('guid', elgg_extract(2, $page));
                    echo elgg_view_resource('discussion/reply/edit');
                    break;
                case 'view':
                    discussion_redirect_to_reply(elgg_extract(2, $page), elgg_extract(3, $page));
                    break;
                default:
                    return false;
            }
            break;
        case 'edit':
            set_input('guid', elgg_extract(1, $page));
            echo elgg_view_resource('discussion/edit');
            break;
        case 'view':
            set_input('guid', elgg_extract(1, $page));
            echo elgg_view_resource('discussion/view');
            break;
        default:
            return false;
    }
    return true;
}