- if ( $old_path === '' || $old_path == "''" ) {
- return "''";
- } elseif ( preg_match("/^(\/|http)/", $old_path) ) {
- return "'" . $old_path . "'";
- } elseif ( preg_match("/^(\$|SM_PATH)/", $old_path) ) {
- return $old_path;
- }
-
- $new_path = '';
- $rel_path = explode("../", $old_path);
- if ( count($rel_path) > 2 ) {
- // Since we're relative to the config dir,
- // more than 1 ../ puts us OUTSIDE the SM tree.
- // get full path to config.php, then pop the filename
- $abs_path = explode('/', realpath (SM_PATH . 'config/config.php'));
- array_pop ($abs_path);
- foreach ( $rel_path as $subdir ) {
- if ( $subdir === '' ) {
- array_pop ($abs_path);
- } else {
- array_push($abs_path, $subdir);
- }
- }
- foreach ($abs_path as $subdir) {
- $new_path .= $subdir . '/';
- }
- $new_path = "'$new_path'";
- } elseif ( count($rel_path) > 1 ) {
- // we're within the SM tree, prepend SM_PATH
- $new_path = str_replace('../',"SM_PATH . '", $old_path . "'");
- } else {
- // Last, if it's a relative path without a .. prefix,
- // we're somewhere within the config dir, so prepend
- // SM_PATH . 'config/
- $new_path = "SM_PATH . 'config/" . $old_path . "'";
- }
- return $new_path;
+ if ( $old_path === '' || $old_path == "''" ) {
+ return "''";
+ } elseif ( preg_match("/^(\/|http)/", $old_path) ) {
+ return "'" . $old_path . "'";
+ } elseif ( preg_match("/^(\$|SM_PATH)/", $old_path) ) {
+ return $old_path;
+ }
+
+ $new_path = '';
+ $rel_path = explode("../", $old_path);
+ if ( count($rel_path) > 2 ) {
+ // Since we're relative to the config dir,
+ // more than 1 ../ puts us OUTSIDE the SM tree.
+ // get full path to config.php, then pop the filename
+ $abs_path = explode('/', realpath (SM_PATH . 'config/config.php'));
+ array_pop ($abs_path);
+ foreach ( $rel_path as $subdir ) {
+ if ( $subdir === '' ) {
+ array_pop ($abs_path);
+ } else {
+ array_push($abs_path, $subdir);
+ }
+ }
+ foreach ($abs_path as $subdir) {
+ $new_path .= $subdir . '/';
+ }
+ $new_path = "'$new_path'";
+ } elseif ( count($rel_path) > 1 ) {
+ // we're within the SM tree, prepend SM_PATH
+ $new_path = str_replace('../',"SM_PATH . '", $old_path . "'");
+ } else {
+ // Last, if it's a relative path without a .. prefix,
+ // we're somewhere within the config dir, so prepend
+ // SM_PATH . 'config/
+ $new_path = "SM_PATH . 'config/" . $old_path . "'";
+ }
+ return $new_path;