aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/elgglib.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-28 23:14:07 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-28 23:14:07 +0000
commitfcf9dcf201ed1088b84c38236d43d5d4f1c2e2e3 (patch)
tree7266c58a02bd39b6f8caa27f075d603804476766 /engine/lib/elgglib.php
parent46f148fd07db8f61dcc44c1d6827311c13cdf1c3 (diff)
downloadelgg-fcf9dcf201ed1088b84c38236d43d5d4f1c2e2e3.tar.gz
elgg-fcf9dcf201ed1088b84c38236d43d5d4f1c2e2e3.tar.bz2
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
Diffstat (limited to 'engine/lib/elgglib.php')
-rw-r--r--engine/lib/elgglib.php41
1 files changed, 39 insertions, 2 deletions
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;
@@ -3352,6 +3377,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
*/
define('ACCESS_DEFAULT', -1);