/** * Re-route some url handler */ function gvfiles_route_file_handler($hook, $type, $return_value, $params) { /** * $return_value contains: * $return_value['handler'] => requested handler * $return_value['segments'] => url parts ($page) */ $result = $return_value; if (!empty($return_value) && is_array($return_value)) { $page = $return_value['segments']; elgg_load_library('elgg:file'); $file_dir = elgg_get_plugins_path() . 'gvfiles/pages/'; switch ($page[0]) { case 'all': file_register_toggle(); include "{$file_dir}/world.php"; $result = false; break; case 'view': case 'read': // Elgg 1.7 compatibility set_input('guid', $page[1]); include "{$file_dir}/view.php"; $result = false; break; case 'owner': file_register_toggle(); include "{$file_dir}/owner.php"; $result = false; break; case 'group': file_register_toggle(); include "{$file_dir}/owner.php"; $result = false; break; case 'add': include "{$file_dir}/upload.php"; $result = false; break; case 'edit': set_input('guid', $page[1]); include "{$file_dir}/edit.php"; $result = false; break; } } return $result; }
/** * Dispatches file pages. * URLs take the form of * All files: file/all * User's files: file/owner/<username> * Friends' files: file/friends/<username> * View file: file/view/<guid>/<title> * New file: file/add/<guid> * Edit file: file/edit/<guid> * Group files: file/group/<guid>/all * Download: file/download/<guid> * * Title is ignored * * @param array $page * @return bool */ function file_page_handler($page) { if (!isset($page[0])) { $page[0] = 'all'; } $file_dir = elgg_get_plugins_path() . 'file/pages/file'; $page_type = $page[0]; switch ($page_type) { case 'owner': file_register_toggle(); include "{$file_dir}/owner.php"; break; case 'friends': file_register_toggle(); include "{$file_dir}/friends.php"; break; case 'view': case 'read': // Elgg 1.7 compatibility set_input('guid', $page[1]); include "{$file_dir}/view.php"; break; case 'add': include "{$file_dir}/upload.php"; break; case 'edit': set_input('guid', $page[1]); include "{$file_dir}/edit.php"; break; case 'search': file_register_toggle(); include "{$file_dir}/search.php"; break; case 'group': file_register_toggle(); include "{$file_dir}/owner.php"; break; case 'all': file_register_toggle(); include "{$file_dir}/world.php"; break; case 'download': set_input('guid', $page[1]); include "{$file_dir}/download.php"; break; default: return false; } return true; }
/** * Dispatches file pages. * URLs take the form of * All files: file/all * User's files: file/owner/<username> * Friends' files: file/friends/<username> * View file: file/view/<guid>/<title> * New file: file/add/<guid> * Edit file: file/edit/<guid> * Group files: file/group/<guid>/all * Download: file/download/<guid> * * Title is ignored * * @param array $page * @return bool */ function file_page_handler($page) { if (!isset($page[0])) { $page[0] = 'all'; } $file_dir = elgg_get_plugins_path() . 'file/pages/file'; $page_type = $page[0]; switch ($page_type) { case 'owner': file_register_toggle(); include "{$file_dir}/owner.php"; break; case 'friends': file_register_toggle(); include "{$file_dir}/friends.php"; break; case 'read': // Elgg 1.7 compatibility register_error(elgg_echo("changebookmark")); forward("file/view/{$page[1]}"); break; case 'view': set_input('guid', $page[1]); include "{$file_dir}/view.php"; break; case 'add': include "{$file_dir}/upload.php"; break; case 'edit': set_input('guid', $page[1]); include "{$file_dir}/edit.php"; break; case 'search': file_register_toggle(); include "{$file_dir}/search.php"; break; case 'group': file_register_toggle(); include "{$file_dir}/owner.php"; break; case 'all': file_register_toggle(); include "{$file_dir}/world.php"; break; case 'download': set_input('guid', $page[1]); include "{$file_dir}/download.php"; break; /*case 'release': include elgg_get_plugins_path() . 'file/cron/releaser.php'; break;*/ /*case 'release': include elgg_get_plugins_path() . 'file/cron/releaser.php'; break;*/ case 'access': include "{$file_dir}/accessCollections.php"; break; default: return false; } return true; }
/** * Dispatches file pages. * URLs take the form of * All files: file/all * User's files: file/owner/<username> * Friends' files: file/friends/<username> * View file: file/view/<guid>/<title> * New file: file/add/<guid> * Edit file: file/edit/<guid> * Group files: file/group/<guid>/all * Download: file/download/<guid> * * Title is ignored * * @param array $page * @return bool */ function file_page_handler($page) { if (!isset($page[0])) { $page[0] = 'all'; } $page_type = $page[0]; switch ($page_type) { case 'owner': file_register_toggle(); echo elgg_view_resource('file/owner'); break; case 'friends': file_register_toggle(); echo elgg_view_resource('file/friends'); break; case 'view': echo elgg_view_resource('file/view', ['guid' => $page[1]]); break; case 'add': echo elgg_view_resource('file/upload'); break; case 'edit': echo elgg_view_resource('file/edit', ['guid' => $page[1]]); break; case 'search': file_register_toggle(); echo elgg_view_resource('file/search'); break; case 'group': file_register_toggle(); echo elgg_view_resource('file/owner'); break; case 'all': file_register_toggle(); echo elgg_view_resource('file/world'); break; case 'download': echo elgg_view_resource('file/download', ['guid' => $page[1]]); break; default: return false; } return true; }
/** * Dispatcher for videos. * URLs take the form of * All videos: videos/all * User's videos: videos/owner/<username> * Friends' videos: videos/friends/<username> * View video: videos/view/<guid>/<title> * New video: videos/add/<guid> (container: user, group, parent) * Edit video: videos/edit/<guid> * Group videos: videos/group/<guid>/owner * Title is ignored * @param array $page */ function videos_page_handler($page) { elgg_load_library('elgg:videos'); elgg_push_breadcrumb(elgg_echo('videos'), 'videos/mostviewed'); elgg_push_context('videos'); if (substr_count($page[0], 'group:')) { preg_match('/group\\:([0-9]+)/i', $page[0], $matches); $guid = $matches[1]; if ($entity = get_entity($guid)) { videos_url_forwarder($page); } } $user = get_user_by_username($page[0]); if ($user) { videos_url_forwarder($page); } $pages = dirname(__FILE__) . '/pages/videos'; 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 "playlist": include "{$pages}/playlist.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 'featured': include "{$pages}/featured.php"; break; case 'youtube': include "{$pages}/youtube.php"; break; case 'mostviewed': include "{$pages}/mostviewed.php"; break; case 'popular': file_register_toggle(); include "{$pages}/popular.php"; break; case 'group': group_gatekeeper(); include "{$pages}/owner.php"; break; default: return false; } elgg_pop_context(); return true; }