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