diff --git a/app/conference_profiles/app_config.php b/app/conference_profiles/app_config.php
new file mode 100644
index 0000000000..819eb5dbfb
--- /dev/null
+++ b/app/conference_profiles/app_config.php
@@ -0,0 +1,123 @@
+
\ No newline at end of file
diff --git a/app/conference_profiles/app_languages.php b/app/conference_profiles/app_languages.php
new file mode 100644
index 0000000000..5049114615
--- /dev/null
+++ b/app/conference_profiles/app_languages.php
@@ -0,0 +1,105 @@
+
\ No newline at end of file
diff --git a/app/conference_profiles/app_menu.php b/app/conference_profiles/app_menu.php
new file mode 100644
index 0000000000..916074c4eb
--- /dev/null
+++ b/app/conference_profiles/app_menu.php
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profile_delete.php b/app/conference_profiles/conference_profile_delete.php
new file mode 100644
index 0000000000..28af7911fe
--- /dev/null
+++ b/app/conference_profiles/conference_profile_delete.php
@@ -0,0 +1,41 @@
+get();
+
+//get the id
+ if (count($_GET)>0) {
+ $id = check_str($_GET["id"]);
+ }
+
+//delete the data
+ if (strlen($id)>0) {
+ //delete conference_profile
+ $sql = "delete from v_conference_profiles ";
+ $sql .= "where conference_profile_uuid = '$id' ";
+ $sql .= "and domain_uuid = '$domain_uuid' ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ unset($sql);
+ }
+
+//redirect the user
+ $_SESSION['message'] = $text['message-delete'];
+ header('Location: conference_profiles.php');
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profile_edit.php b/app/conference_profiles/conference_profile_edit.php
new file mode 100644
index 0000000000..752486885c
--- /dev/null
+++ b/app/conference_profiles/conference_profile_edit.php
@@ -0,0 +1,203 @@
+get();
+
+//action add or update
+ if (isset($_REQUEST["id"])) {
+ $action = "update";
+ $conference_profile_uuid = check_str($_REQUEST["id"]);
+ }
+ else {
+ $action = "add";
+ }
+
+//get http post variables and set them to php variables
+ if (count($_POST)>0) {
+ $profile_name = check_str($_POST["profile_name"]);
+ $profile_enabled = check_str($_POST["profile_enabled"]);
+ $profile_description = check_str($_POST["profile_description"]);
+ }
+
+if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
+
+ $msg = '';
+ if ($action == "update") {
+ $conference_profile_uuid = check_str($_POST["conference_profile_uuid"]);
+ }
+
+ //check for all required data
+ if (strlen($profile_name) == 0) { $msg .= $text['message-required']." ".$text['label-profile_name']."
\n"; }
+ if (strlen($profile_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-profile_enabled']."
\n"; }
+ //if (strlen($profile_description) == 0) { $msg .= $text['message-required']." ".$text['label-profile_description']."
\n"; }
+ if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
+ require_once "resources/header.php";
+ require_once "resources/persist_form_var.php";
+ echo "
\n";
+ echo "
\n";
+ echo $msg." ";
+ echo " |
\n";
+ persistformvar($_POST);
+ echo "
\n";
+ require_once "resources/footer.php";
+ return;
+ }
+
+ //add or update the database
+ if ($_POST["persistformvar"] != "true") {
+ if ($action == "add" && permission_exists('conference_profile_add')) {
+ $sql = "insert into v_conference_profiles ";
+ $sql .= "(";
+ $sql .= "domain_uuid, ";
+ $sql .= "conference_profile_uuid, ";
+ $sql .= "profile_name, ";
+ $sql .= "profile_enabled, ";
+ $sql .= "profile_description ";
+ $sql .= ")";
+ $sql .= "values ";
+ $sql .= "(";
+ $sql .= "'$domain_uuid', ";
+ $sql .= "'".uuid()."', ";
+ $sql .= "'$profile_name', ";
+ $sql .= "'$profile_enabled', ";
+ $sql .= "'$profile_description' ";
+ $sql .= ")";
+ $db->exec(check_sql($sql));
+ unset($sql);
+
+ $_SESSION["message"] = $text['message-add'];
+ header("Location: conference_profiles.php");
+ return;
+
+ } //if ($action == "add")
+
+ if ($action == "update" && permission_exists('conference_profile_edit')) {
+ $sql = "update v_conference_profiles set ";
+ $sql .= "profile_name = '$profile_name', ";
+ $sql .= "profile_enabled = '$profile_enabled', ";
+ $sql .= "profile_description = '$profile_description' ";
+ $sql .= "where conference_profile_uuid = '$conference_profile_uuid'";
+ $sql .= "and domain_uuid = '$domain_uuid' ";
+ $db->exec(check_sql($sql));
+ unset($sql);
+
+ $_SESSION["message"] = $text['message-update'];
+ header("Location: conference_profiles.php");
+ return;
+
+ } //if ($action == "update")
+ } //if ($_POST["persistformvar"] != "true")
+} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
+
+//pre-populate the form
+ if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
+ $conference_profile_uuid = check_str($_GET["id"]);
+ $sql = "select * from v_conference_profiles ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= "and conference_profile_uuid = '$conference_profile_uuid' ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ foreach ($result as &$row) {
+ $profile_name = $row["profile_name"];
+ $profile_enabled = $row["profile_enabled"];
+ $profile_description = $row["profile_description"];
+ }
+ unset ($prep_statement);
+ }
+
+//show the header
+ require_once "resources/header.php";
+
+//show the content
+ echo "";
+ echo "
";
+
+ if ($action == "update") {
+ require "conference_profile_params.php";
+ }
+
+//include the footer
+ require_once "resources/footer.php";
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profile_param_delete.php b/app/conference_profiles/conference_profile_param_delete.php
new file mode 100644
index 0000000000..56453cb05c
--- /dev/null
+++ b/app/conference_profiles/conference_profile_param_delete.php
@@ -0,0 +1,42 @@
+get();
+
+//get the id
+ if (count($_GET)>0) {
+ $id = check_str($_GET["id"]);
+ $conference_profile_uuid = check_str($_GET["conference_profile_uuid"]);
+ }
+
+//delete the data
+ if (strlen($id)>0) {
+ //delete conference_profile_param
+ $sql = "delete from v_conference_profile_params ";
+ $sql .= "where conference_profile_param_uuid = '$id' ";
+ $sql .= "and domain_uuid = '$domain_uuid' ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ unset($sql);
+ }
+
+//redirect the user
+ $_SESSION['message'] = $text['message-delete'];
+ header('Location: conference_profile_param_edit.php?id='.$conference_profile_uuid);
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profile_param_edit.php b/app/conference_profiles/conference_profile_param_edit.php
new file mode 100644
index 0000000000..10e966095b
--- /dev/null
+++ b/app/conference_profiles/conference_profile_param_edit.php
@@ -0,0 +1,225 @@
+get();
+
+//action add or update
+ if (isset($_REQUEST["id"])) {
+ $action = "update";
+ $conference_profile_param_uuid = check_str($_REQUEST["id"]);
+ }
+ else {
+ $action = "add";
+ }
+
+//set the parent uuid
+ if (strlen($_GET["conference_profile_uuid"]) > 0) {
+ $conference_profile_uuid = check_str($_GET["conference_profile_uuid"]);
+ }
+
+//get http post variables and set them to php variables
+ if (count($_POST)>0) {
+ $profile_param_name = check_str($_POST["profile_param_name"]);
+ $profile_param_value = check_str($_POST["profile_param_value"]);
+ $profile_param_enabled = check_str($_POST["profile_param_enabled"]);
+ $profile_param_description = check_str($_POST["profile_param_description"]);
+ }
+
+if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) {
+
+ $msg = '';
+ if ($action == "update") {
+ $conference_profile_param_uuid = check_str($_POST["conference_profile_param_uuid"]);
+ }
+
+ //check for all required data
+ if (strlen($profile_param_name) == 0) { $msg .= $text['message-required']." ".$text['label-profile_param_name']."
\n"; }
+ if (strlen($profile_param_value) == 0) { $msg .= $text['message-required']." ".$text['label-profile_param_value']."
\n"; }
+ if (strlen($profile_param_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-profile_param_enabled']."
\n"; }
+ //if (strlen($profile_param_description) == 0) { $msg .= $text['message-required']." ".$text['label-profile_param_description']."
\n"; }
+ if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
+ require_once "resources/header.php";
+ require_once "resources/persist_form_var.php";
+ echo "\n";
+ echo "
\n";
+ echo $msg." ";
+ echo " |
\n";
+ persistformvar($_POST);
+ echo "
\n";
+ require_once "resources/footer.php";
+ return;
+ }
+
+ //add or update the database
+ if ($_POST["persistformvar"] != "true") {
+ if ($action == "add" && permission_exists('conference_profile_param_add')) {
+ $sql = "insert into v_conference_profile_params ";
+ $sql .= "(";
+ $sql .= "domain_uuid, ";
+ $sql .= "conference_profile_param_uuid, ";
+ $sql .= "conference_profile_uuid, ";
+ $sql .= "profile_param_name, ";
+ $sql .= "profile_param_value, ";
+ $sql .= "profile_param_enabled, ";
+ $sql .= "profile_param_description ";
+ $sql .= ")";
+ $sql .= "values ";
+ $sql .= "(";
+ $sql .= "'$domain_uuid', ";
+ $sql .= "'".uuid()."', ";
+ $sql .= "'$conference_profile_uuid', ";
+ $sql .= "'$profile_param_name', ";
+ $sql .= "'$profile_param_value', ";
+ $sql .= "'$profile_param_enabled', ";
+ $sql .= "'$profile_param_description' ";
+ $sql .= ")";
+ $db->exec(check_sql($sql));
+ unset($sql);
+
+ $_SESSION["message"] = $text['message-add'];
+ header('Location: conference_profile_edit.php?id='.$conference_profile_uuid);
+ return;
+
+ } //if ($action == "add")
+
+ if ($action == "update" && permission_exists('conference_profile_param_edit')) {
+ $sql = "update v_conference_profile_params set ";
+ $sql .= "conference_profile_uuid = '$conference_profile_uuid', ";
+ $sql .= "profile_param_name = '$profile_param_name', ";
+ $sql .= "profile_param_value = '$profile_param_value', ";
+ $sql .= "profile_param_enabled = '$profile_param_enabled', ";
+ $sql .= "profile_param_description = '$profile_param_description' ";
+ $sql .= "where conference_profile_param_uuid = '$conference_profile_param_uuid'";
+ $sql .= "and domain_uuid = '$domain_uuid' ";
+ $db->exec(check_sql($sql));
+ unset($sql);
+
+ $_SESSION["message"] = $text['message-update'];
+ header('Location: conference_profile_edit.php?id='.$conference_profile_uuid);
+ return;
+
+ } //if ($action == "update")
+ } //if ($_POST["persistformvar"] != "true")
+} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
+
+//pre-populate the form
+ if (count($_GET) > 0 && $_POST["persistformvar"] != "true") {
+ $conference_profile_param_uuid = check_str($_GET["id"]);
+ $sql = "select * from v_conference_profile_params ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= "and conference_profile_param_uuid = '$conference_profile_param_uuid' ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ foreach ($result as &$row) {
+ $profile_param_name = $row["profile_param_name"];
+ $profile_param_value = $row["profile_param_value"];
+ $profile_param_enabled = $row["profile_param_enabled"];
+ $profile_param_description = $row["profile_param_description"];
+ }
+ unset ($prep_statement);
+ }
+
+//show the header
+ require_once "resources/header.php";
+
+//show the content
+ echo "";
+ echo "
";
+
+//include the footer
+ require_once "resources/footer.php";
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profile_params.php b/app/conference_profiles/conference_profile_params.php
new file mode 100644
index 0000000000..055349b8de
--- /dev/null
+++ b/app/conference_profiles/conference_profile_params.php
@@ -0,0 +1,164 @@
+get();
+
+//get variables used to control the order
+ $order_by = check_str($_GET["order_by"]);
+ $order = check_str($_GET["order"]);
+
+//add the search term
+ $search = check_str($_GET["search"]);
+ if (strlen($search) > 0) {
+ $sql_search = "and (";
+ $sql_search .= "profile_param_name like '%".$search."%'";
+ $sql_search .= "or profile_param_value like '%".$search."%'";
+ $sql_search .= "or profile_param_enabled like '%".$search."%'";
+ $sql_search .= "or profile_param_description like '%".$search."%'";
+ $sql_search .= ")";
+ }
+//additional includes
+ require_once "resources/header.php";
+ require_once "resources/paging.php";
+
+//prepare to page the results
+ $sql = "select count(*) as num_rows from v_conference_profile_params ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= $sql_search;
+ $sql .= "and conference_profile_uuid = '$conference_profile_uuid' ";
+ if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
+ $prep_statement = $db->prepare($sql);
+ if ($prep_statement) {
+ $prep_statement->execute();
+ $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
+ if ($row['num_rows'] > 0) {
+ $num_rows = $row['num_rows'];
+ }
+ else {
+ $num_rows = '0';
+ }
+ }
+
+//prepare to page the results
+ $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
+ $param = "";
+ $page = $_GET['page'];
+ if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
+ list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
+ $offset = $rows_per_page * $page;
+
+//get the list
+ $sql = "select * from v_conference_profile_params ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= $sql_search;
+ $sql .= "and conference_profile_uuid = '$conference_profile_uuid' ";
+ if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
+ $sql .= "limit $rows_per_page offset $offset ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ unset ($prep_statement, $sql);
+
+//alternate the row style
+ $c = 0;
+ $row_style["0"] = "row_style0";
+ $row_style["1"] = "row_style1";
+
+//show the content
+ echo "\n";
+ echo " \n";
+ echo " | ".$text['title-conference_profile_params']." | \n";
+ echo " \n";
+ echo "
\n";
+ echo " \n";
+ echo " \n";
+ echo " ".$text['title_description-conference_profile_param']."
\n";
+ echo " | \n";
+ echo "
\n";
+ echo "
\n";
+
+ echo "\n";
+ echo "\n";
+ echo th_order_by('profile_param_name', $text['label-profile_param_name'], $order_by, $order);
+ echo th_order_by('profile_param_value', $text['label-profile_param_value'], $order_by, $order);
+ echo th_order_by('profile_param_enabled', $text['label-profile_param_enabled'], $order_by, $order);
+ echo th_order_by('profile_param_description', $text['label-profile_param_description'], $order_by, $order);
+ echo "| ";
+ if (permission_exists('conference_profile_param_add')) {
+ echo "$v_link_label_add";
+ }
+ else {
+ echo " \n";
+ }
+ echo " | \n";
+ echo "
\n";
+
+ if (is_array($result)) {
+ foreach($result as $row) {
+ if (permission_exists('conference_profile_param_edit')) {
+ $tr_link = "href='conference_profile_param_edit.php?conference_profile_uuid=".$row['conference_profile_uuid']."&id=".$row['conference_profile_param_uuid']."'";
+ }
+ echo "
\n";
+ echo " | ".$row['profile_param_name']." | \n";
+ echo " ".$row['profile_param_value']." | \n";
+ echo " ".$row['profile_param_enabled']." | \n";
+ echo " ".$row['profile_param_description']." | \n";
+ echo " ";
+ if (permission_exists('conference_profile_param_edit')) {
+ echo "$v_link_label_edit";
+ }
+ if (permission_exists('conference_profile_param_delete')) {
+ echo "$v_link_label_delete";
+ }
+ echo " | \n";
+ echo "
\n";
+ if ($c==0) { $c=1; } else { $c=0; }
+ } //end foreach
+ unset($sql, $result, $row_count);
+ } //end if results
+
+ echo "\n";
+ echo "\n";
+ echo " \n";
+ echo " \n";
+ echo " | | \n";
+ echo " $paging_controls | \n";
+ echo " ";
+ if (permission_exists('conference_profile_param_add')) {
+ echo "$v_link_label_add";
+ }
+ else {
+ echo " ";
+ }
+ echo " | \n";
+ echo " \n";
+ echo " \n";
+ echo " | \n";
+ echo "
\n";
+ echo "
";
+ echo "
";
+
+//include the footer
+ require_once "resources/footer.php";
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/conference_profiles.php b/app/conference_profiles/conference_profiles.php
new file mode 100644
index 0000000000..084174d619
--- /dev/null
+++ b/app/conference_profiles/conference_profiles.php
@@ -0,0 +1,159 @@
+get();
+
+//get variables used to control the order
+ $order_by = check_str($_GET["order_by"]);
+ $order = check_str($_GET["order"]);
+
+//add the search term
+ $search = check_str($_GET["search"]);
+ if (strlen($search) > 0) {
+ $sql_search = "and (";
+ $sql_search .= "profile_name like '%".$search."%'";
+ $sql_search .= "or profile_enabled like '%".$search."%'";
+ $sql_search .= "or profile_description like '%".$search."%'";
+ $sql_search .= ")";
+ }
+//additional includes
+ require_once "resources/header.php";
+ require_once "resources/paging.php";
+
+//prepare to page the results
+ $sql = "select count(*) as num_rows from v_conference_profiles ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= $sql_search;
+ if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
+ $prep_statement = $db->prepare($sql);
+ if ($prep_statement) {
+ $prep_statement->execute();
+ $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
+ if ($row['num_rows'] > 0) {
+ $num_rows = $row['num_rows'];
+ }
+ else {
+ $num_rows = '0';
+ }
+ }
+
+//prepare to page the results
+ $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
+ $param = "";
+ $page = $_GET['page'];
+ if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
+ list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
+ $offset = $rows_per_page * $page;
+
+//get the list
+ $sql = "select * from v_conference_profiles ";
+ $sql .= "where domain_uuid = '$domain_uuid' ";
+ $sql .= $sql_search;
+ if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
+ $sql .= "limit $rows_per_page offset $offset ";
+ $prep_statement = $db->prepare(check_sql($sql));
+ $prep_statement->execute();
+ $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+ unset ($prep_statement, $sql);
+
+//alternate the row style
+ $c = 0;
+ $row_style["0"] = "row_style0";
+ $row_style["1"] = "row_style1";
+
+//show the content
+ echo "\n";
+ echo " \n";
+ echo " | ".$text['title-conference_profiles']." | \n";
+ echo " \n";
+ echo "
\n";
+ echo " \n";
+ echo " \n";
+ echo " ".$text['title_description-conference_profile']."
\n";
+ echo " | \n";
+ echo "
\n";
+ echo "
\n";
+
+ echo "\n";
+ echo "\n";
+ echo th_order_by('profile_name', $text['label-profile_name'], $order_by, $order);
+ echo th_order_by('profile_enabled', $text['label-profile_enabled'], $order_by, $order);
+ echo th_order_by('profile_description', $text['label-profile_description'], $order_by, $order);
+ echo "| ";
+ if (permission_exists('conference_profile_add')) {
+ echo "$v_link_label_add";
+ }
+ else {
+ echo " \n";
+ }
+ echo " | \n";
+ echo "
\n";
+
+ if (is_array($result)) {
+ foreach($result as $row) {
+ if (permission_exists('conference_profile_edit')) {
+ $tr_link = "href='conference_profile_edit.php?id=".$row['conference_profile_uuid']."'";
+ }
+ echo "
\n";
+ echo " | ".$row['profile_name']." | \n";
+ echo " ".$row['profile_enabled']." | \n";
+ echo " ".$row['profile_description']." | \n";
+ echo " ";
+ if (permission_exists('conference_profile_edit')) {
+ echo "$v_link_label_edit";
+ }
+ if (permission_exists('conference_profile_delete')) {
+ echo "$v_link_label_delete";
+ }
+ echo " | \n";
+ echo "
\n";
+ if ($c==0) { $c=1; } else { $c=0; }
+ } //end foreach
+ unset($sql, $result, $row_count);
+ } //end if results
+
+ echo "\n";
+ echo "\n";
+ echo " \n";
+ echo " \n";
+ echo " | | \n";
+ echo " $paging_controls | \n";
+ echo " ";
+ if (permission_exists('conference_profile_add')) {
+ echo "$v_link_label_add";
+ }
+ else {
+ echo " ";
+ }
+ echo " | \n";
+ echo " \n";
+ echo " \n";
+ echo " | \n";
+ echo "
\n";
+ echo "
";
+ echo "
";
+
+//include the footer
+ require_once "resources/footer.php";
+
+?>
\ No newline at end of file
diff --git a/app/conference_profiles/root.php b/app/conference_profiles/root.php
new file mode 100644
index 0000000000..6fdf32f37b
--- /dev/null
+++ b/app/conference_profiles/root.php
@@ -0,0 +1,90 @@
+
+ Portions created by the Initial Developer are Copyright (C) 2008-2012
+ the Initial Developer. All Rights Reserved.
+
+ Contributor(s):
+ Mark J Crane
+*/
+
+// make sure the PATH_SEPARATOR is defined
+ umask(2);
+ if (!defined("PATH_SEPARATOR")) {
+ if (strpos($_ENV["OS"], "Win") !== false) {
+ define("PATH_SEPARATOR", ";");
+ } else {
+ define("PATH_SEPARATOR", ":");
+ }
+ }
+
+ if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html';
+
+ // make sure the document_root is set
+ $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]);
+ if(PHP_SAPI == 'cli'){
+ chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME));
+ $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]);
+ $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME));
+ if (file_exists('/project_root.php')) {
+ $path = '/';
+ } else {
+ $i = 1;
+ $path = '';
+ while ($i < count($dirs)) {
+ $path .= '/' . $dirs[$i];
+ if (file_exists($path. '/project_root.php')) {
+ 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"]. '/project_root.php')) {
+ define('PROJECT_PATH', '');
+ } else {
+ $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME)));
+ $i = 1;
+ $path = $_SERVER["DOCUMENT_ROOT"];
+ while ($i < count($dirs)) {
+ $path .= '/' . $dirs[$i];
+ if (file_exists($path. '/project_root.php')) {
+ break;
+ }
+ $i++;
+ }
+ if(!file_exists($path. '/project_root.php')){
+ die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance");
+ }
+ $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path);
+ define('PROJECT_PATH', $project_path);
+ }
+ $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH);
+ set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]);
+ }
+
+?>
\ No newline at end of file