Exemple #1
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($page[1]);
            break;
        case 'add':
            discussion_handle_edit_page('add', $page[1]);
            break;
        case 'edit':
            discussion_handle_edit_page('edit', $page[1]);
            break;
        case 'view':
            discussion_handle_view_page($page[1]);
            break;
        default:
            return false;
    }
    return true;
}
Exemple #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;
}
Exemple #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
 */
function discussion_page_handler($page)
{
    elgg_load_library('elgg:discussion');
    elgg_push_breadcrumb(elgg_echo('discussion'), 'discussion/all');
    switch ($page[0]) {
        case 'all':
            discussion_handle_all_page();
            break;
        case 'owner':
            discussion_handle_list_page($page[1]);
            break;
        case 'add':
            discussion_handle_edit_page('add', $page[1]);
            break;
        case 'edit':
            discussion_handle_edit_page('edit', $page[1]);
            break;
        case 'view':
            discussion_handle_view_page($page[1]);
            break;
    }
}
Exemple #4
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>
 *  Redirect old urls:     threaded_forums/<guid> -> discussion/owner/<guid>
 *
 * @param array $page Array of url segments for routing
 */
function threads_page_handler($page, $handler)
{
    // Old urls
    if ($handler == 'threaded_forums') {
        forward('discussion/owner/' . $page[0]);
    }
    elgg_load_library('elgg:groups');
    elgg_load_library('elgg:discussion');
    elgg_push_breadcrumb(elgg_echo('discussion'), 'discussion/all');
    switch ($page[0]) {
        case 'all':
            discussion_handle_all_page();
            break;
        case 'owner':
            discussion_handle_list_page($page[1]);
            break;
        case 'add':
            discussion_handle_edit_page('add', $page[1]);
            break;
        case 'edit':
            discussion_handle_edit_page('edit', $page[1]);
            break;
        case 'view':
            discussion_handle_view_page($page[1]);
            break;
    }
}