From fcf9dcf201ed1088b84c38236d43d5d4f1c2e2e3 Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 28 May 2010 23:14:07 +0000 Subject: Refs #2115: Added elgg_is_valid_view_type(). Currently calculated at each load but will want to cache like view paths. Cleaned up autoregister_views() and load_plugins() code. Added spaces between function params in numerous places. C'mon guys...spaces are free. git-svn-id: http://code.elgg.org/elgg/trunk@6274 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/elgglib.php | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'engine/lib/elgglib.php') diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 110cafcab..9d0bae0b6 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -1473,6 +1473,8 @@ function autoregister_views($view_base, $folder, $base_location_path, $viewtype) if ($handle = opendir($folder)) { while ($view = readdir($handle)) { if (!in_array($view,array('.','..','.svn','CVS')) && !is_dir($folder . "/" . $view)) { + // this includes png files because some icons are stored within view directories. + // See commit [1705] if ((substr_count($view,".php") > 0) || (substr_count($view,".png") > 0)) { if (!empty($view_base)) { $view_base_new = $view_base . "/"; @@ -1480,9 +1482,9 @@ function autoregister_views($view_base, $folder, $base_location_path, $viewtype) $view_base_new = ""; } - set_view_location($view_base_new . str_replace(".php","",$view), $base_location_path, $viewtype); + set_view_location($view_base_new . str_replace('.php', '', $view), $base_location_path, $viewtype); } - } else if (!in_array($view,array('.','..','.svn','CVS')) && is_dir($folder . "/" . $view)) { + } else if (!in_array($view, array('.', '..', '.svn', 'CVS')) && is_dir($folder . "/" . $view)) { if (!empty($view_base)) { $view_base_new = $view_base . "/"; } else { @@ -1491,7 +1493,10 @@ function autoregister_views($view_base, $folder, $base_location_path, $viewtype) autoregister_views($view_base_new . $view, $folder . "/" . $view, $base_location_path, $viewtype); } } + return TRUE; } + + return FALSE; } /** @@ -3151,11 +3156,26 @@ function __elgg_shutdown_hook() { * @return unknown_type */ function elgg_init() { + global $CONFIG; + // Page handler for JS register_page_handler('js','js_page_handler'); // Register an event triggered at system shutdown register_shutdown_function('__elgg_shutdown_hook'); + + // discover the built-in view types + // @todo cache this + $view_path = $CONFIG->viewpath; + $CONFIG->view_types = array(); + + $views = scandir($view_path); + + foreach ($views as $view) { + if ('.' !== substr($view, 0, 1) && is_dir($view_path . $view)) { + $CONFIG->view_types[] = $view; + } + } } function elgg_walled_garden_index() { @@ -3342,6 +3362,11 @@ function elgg_http_url_is_identical($url1, $url2, $ignore_params = array('offset return TRUE; } +/** + * Checks walled garden status upon Elgg init. + * + * @since 1.8 + */ function elgg_walled_garden() { global $CONFIG; @@ -3351,6 +3376,18 @@ function elgg_walled_garden() { } } +/** + * Checks if $view_type is valid on this installation. + * + * @param string $view_type + * @return bool + */ +function elgg_is_valid_view_type($view_type) { + global $CONFIG; + + return in_array($view_type, $CONFIG->view_types); +} + /** * Some useful constant definitions */ -- cgit v1.2.3