/** * 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; }
/** * 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; }
/** * 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; } }
/** * 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; } }