Browse Source

Added full logic to support cli as well

Matthew Vale 9 years ago
parent
commit
617f835fcc

+ 0 - 0
.project.ROOT


+ 23 - 5
core/databases/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/default_settings/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/domain_settings/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/install/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/menu/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/upgrade/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/user_settings/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
core/users/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
resources/captcha/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
resources/classes/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
resources/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
themes/accessible/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
themes/enhanced/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;

+ 23 - 5
themes/minimized/root.php

@@ -33,16 +33,34 @@
 		}
 	}
 
-// make sure the document_root is set
+	// make sure the document_root is set
 	$_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
-	$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	if(PHP_SAPI == 'cli'){
+		$script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+		$dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+		if (file_exists('/.project.ROOT')) {
+			$path = '/';
+		} else {
+			$i    = 1;
+			$path = '';
+			while ($i < count($dirs)) {
+				$path .= '/' . $dirs[$i];
+				if (file_exists($path. '/.project.ROOT')) {
+					break;
+				}
+				$i++;
+			}
+		}
+		$_SERVER["DOCUMENT_ROOT"] = $path;
+	}else{
+		$_SERVER["DOCUMENT_ROOT"]   = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]);
+	}
 	$_SERVER["DOCUMENT_ROOT"]   = realpath($_SERVER["DOCUMENT_ROOT"]);
-
 // try to detect if a project path is being used
 	if (!defined('PROJECT_PATH')) {
 		if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) {
 			define('PROJECT_PATH', '/fusionpbx');
-		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/README.md')) {
+		} elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/.project.ROOT')) {
 			define('PROJECT_PATH', '');
 		} else {
 			$dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
@@ -50,7 +68,7 @@
 			$path = $_SERVER["DOCUMENT_ROOT"];
 			while ($i < count($dirs)) {
 				$path .= '/' . $dirs[$i];
-				if (file_exists($path. '/README.md')) {
+				if (file_exists($path. '/.project.ROOT')) {
 					break;
 				}
 				$i++;