aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/elgglib.php
diff options
context:
space:
mode:
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);