if (($temppath != "") && App::directory_usable($temppath)) {
// We have a temp path and it is usable
- return realpath($temppath);
+ return App::realpath($temppath);
}
// We don't have a working preconfigured temp path, so we take the system path.
// Check if it is usable
if (($temppath != "") && App::directory_usable($temppath)) {
// Always store the real path, not the path through symlinks
- $temppath = realpath($temppath);
+ $temppath = App::realpath($temppath);
// To avoid any interferences with other systems we create our own directory
$new_temppath = $temppath . "/" . $a->get_hostname();
$itemcache = get_config('system', 'itemcache');
if (($itemcache != "") && App::directory_usable($itemcache)) {
- return realpath($itemcache);
+ return App::realpath($itemcache);
}
$temppath = get_temppath();
set_config('system', 'hide_help', $hide_help);
if ($itemcache != '') {
- $itemcache = realpath($itemcache);
+ $itemcache = App::realpath($itemcache);
}
set_config('system', 'itemcache', $itemcache);
set_config('system', 'max_comments', $max_comments);
if ($temppath != '') {
- $temppath = realpath($temppath);
+ $temppath = App::realpath($temppath);
}
set_config('system', 'temppath', $temppath);
if ($basepath != '') {
- $basepath = realpath($basepath);
+ $basepath = App::realpath($basepath);
}
set_config('system', 'basepath', $basepath);
$basepath = $_SERVER['PWD'];
}
- return $basepath;
+ return self::realpath($basepath);
+ }
+
+ /**
+ * @brief Returns a normalized file path
+ *
+ * This is a wrapper for the "realpath" function.
+ * That function cannot detect the real path when some folders aren't readable.
+ * Since this could happen with some hosters we need to handle this.
+ *
+ * @param string $path The path that is about to be normalized
+ * @return string normalized path - when possible
+ */
+ public static function realpath($path) {
+ $normalized = realpath($path);
+
+ if (!is_bool($normalized)) {
+ return $normalized;
+ } else {
+ return $path;
+ }
}
function get_scheme() {