diff options
Diffstat (limited to 'fs_selfservice/fri/includes/common.php')
-rw-r--r-- | fs_selfservice/fri/includes/common.php | 434 |
1 files changed, 0 insertions, 434 deletions
diff --git a/fs_selfservice/fri/includes/common.php b/fs_selfservice/fri/includes/common.php deleted file mode 100644 index 87f202638..000000000 --- a/fs_selfservice/fri/includes/common.php +++ /dev/null @@ -1,434 +0,0 @@ -<?php - -/** - * @file - * common functions - core handler - */ - -/* - * Checks if user is set and sets - */ -function checkErrorMessage() { - - if ($_SESSION['ari_error']) { - $ret .= "<div class='error'> - " . $_SESSION['ari_error'] . " - </div> - <br>"; - unset($_SESSION['ari_error']); - } - - return $ret; -} - -/* - * Checks modules directory, and configuration, and loaded modules - */ -function loadModules() { - - global $ARI_ADMIN_MODULES; - global $ARI_DISABLED_MODULES; - - global $loaded_modules; - - $modules_path = "./modules"; - if (is_dir($modules_path)) { - - $filter = ".module"; - $recursive_max = 1; - $recursive_count = 0; - $files = getFiles($modules_path,$filter,$recursive_max,$recursive_count); - - foreach($files as $key => $path) { - - // build module object - include_once($path); - $path_parts = pathinfo($path); - list($name,$ext) = split("\.",$path_parts['basename']); - - // check for module and get rank - if (class_exists($name)) { - - $module = new $name(); - - // check if admin module - $found = 0; - if ($ARI_ADMIN_MODULES) { - $admin_modules = split(',',$ARI_ADMIN_MODULES); - foreach ($admin_modules as $key => $value) { - if ($name==$value) { - $found = 1; - break; - } - } - } - - // check if disabled module - $disabled = 0; - if ($ARI_DISABLED_MODULES) { - $disabled_modules = split(',',$ARI_DISABLED_MODULES); - foreach ($disabled_modules as $key => $value) { - if ($name==$value) { - $disabled = 1; - break; - } - } - } - - // if not admin module or admin user add to module name to array - if (!$disabled && (!$found || $_SESSION['ari_user']['admin'])) { - $loaded_modules[$name] = $module; - } - } - } - } - else { - $_SESSION['ari_error'] = _("$path not a directory or not readable"); - } -} - -/** - * Builds database connections - */ -function databaseLogon() { - - global $STANDALONE; - - global $ASTERISKMGR_DBHOST; - - global $AMP_FUNCTIONS_FILES; - global $AMPORTAL_CONF_FILE; - - global $LEGACY_AMP_DBENGINE; - global $LEGACY_AMP_DBFILE; - global $LEGACY_AMP_DBHOST; - global $LEGACY_AMP_DBNAME; - - global $ASTERISKCDR_DBENGINE; - global $ASTERISKCDR_DBFILE; - global $ASTERISKCDR_DBHOST; - global $ASTERISKCDR_DBNAME; - - global $ARI_DISABLED_MODULES; - - global $loaded_modules; - - // This variable is a global in the FreePBX function.inc.php but needs to be - // declared here or the is not seen when parse_amprotaconf() is eventually called - // ?php bug? - // - global $amp_conf_defaults; - - // get user - if ($STANDALONE['use']) { - - $mgrhost = $ASTERISKMGR_DBHOST; - $mgruser = $STANDALONE['asterisk_mgruser']; - $mgrpass = $STANDALONE['asterisk_mgrpass']; - - $asteriskcdr_dbengine = $ASTERISKCDR_DBENGINE; - $asteriskcdr_dbfile = $ASTERISKCDR_DBFILE; - $asteriskcdr_dbuser = $STANDALONE['asteriskcdr_dbuser']; - $asteriskcdr_dbpass = $STANDALONE['asteriskcdr_dbpass']; - $asteriskcdr_dbhost = $ASTERISKCDR_DBHOST; - $asteriskcdr_dbname = $ASTERISKCDR_DBNAME; - } - else { - - $include = 0; - $files = split(';',$AMP_FUNCTIONS_FILES); - foreach ($files as $file) { - if (is_file($file)) { - include_once($file); - $include = 1; - } - } - - if ($include) { - $amp_conf = parse_amportal_conf($AMPORTAL_CONF_FILE); - - $mgrhost = $ASTERISKMGR_DBHOST; - $mgruser = $amp_conf['AMPMGRUSER']; - $mgrpass = $amp_conf['AMPMGRPASS']; - - $amp_dbengine = isset($amp_conf["AMPDBENGINE"]) ? $amp_conf["AMPDBENGINE"] : $LEGACY_AMP_DBENGINE; - $amp_dbfile = isset($amp_conf["AMPDBFILE"]) ? $amp_conf["AMPDBFILE"] : $LEGACY_AMP_DBFILE; - $amp_dbuser = $amp_conf["AMPDBUSER"]; - $amp_dbpass = $amp_conf["AMPDBPASS"]; - $amp_dbhost = isset($amp_conf["AMPDBHOST"]) ? $amp_conf["AMPDBHOST"] : $LEGACY_AMP_DBHOST; - $amp_dbname = isset($amp_conf["AMPDBNAME"]) ? $amp_conf["AMPDBNAME"] : $LEGACY_AMP_DBNAME; - - $asteriskcdr_dbengine = $ASTERISKCDR_DBENGINE; - $asteriskcdr_dbfile = $ASTERISKCDR_DBFILE; - $asteriskcdr_dbuser = $amp_conf["AMPDBUSER"]; - $asteriskcdr_dbpass = $amp_conf["AMPDBPASS"]; - $asteriskcdr_dbhost = $ASTERISKCDR_DBHOST; - $asteriskcdr_dbhost = isset($amp_conf["AMPDBHOST"]) ? $amp_conf["AMPDBHOST"] : $ASTERISKCDR_DBHOST; - $asteriskcdr_dbname = $ASTERISKCDR_DBNAME; - - unset($amp_conf); - } - } - - // asterisk manager interface (berkeley database I think) - global $asterisk_manager_interface; - $asterisk_manager_interface = new AsteriskManagerInterface(); - - $success = $asterisk_manager_interface->Connect($mgrhost,$mgruser,$mgrpass); - if (!$success) { - $_SESSION['ari_error'] = - _("ARI does not appear to have access to the Asterisk Manager.") . " ($errno)<br>" . - _("Check the ARI 'main.conf.php' configuration file to set the Asterisk Manager Account.") . "<br>" . - _("Check /etc/asterisk/manager.conf for a proper Asterisk Manager Account") . "<br>" . - _("make sure [general] enabled = yes and a 'permit=' line for localhost or the webserver."); - return FALSE; - } - - // pear interface databases - $db = new Database(); - - // AMP asterisk database - if (!$STANDALONE['use']) { - $_SESSION['dbh_asterisk'] = $db->logon($amp_dbengine, - $amp_dbfile, - $amp_dbuser, - $amp_dbpass, - $amp_dbhost, - $amp_dbname); - if (!isset($_SESSION['dbh_asterisk'])) { - $_SESSION['ari_error'] .= _("Cannot connect to the $amp_dbname database") . "<br>" . - _("Check AMP installation, asterisk, and ARI main.conf"); - return FALSE; - } - } - - // cdr database - if (in_array('callmonitor',array_keys($loaded_modules))) { - $_SESSION['dbh_cdr'] = $db->logon($asteriskcdr_dbengine, - $asteriskcdr_dbfile, - $asteriskcdr_dbuser, - $asteriskcdr_dbpass, - $asteriskcdr_dbhost, - $asteriskcdr_dbname); - if (!isset($_SESSION['dbh_cdr'])) { - $_SESSION['ari_error'] .= sprintf(_("Cannot connect to the $asteriskcdr_dbname database"),$asteriskcdr_dbname) . "<br>" . - _("Check AMP installation, asterisk, and ARI main.conf"); - return FALSE; - } - } - - return TRUE; -} - -/** - * Logout if needed for any databases - */ -function databaseLogoff() { - - global $asterisk_manager_interface; - - $asterisk_manager_interface->Disconnect(); -} - -/* - * Checks if user is set and sets - */ -function loginBlock() { - - $login = new Login(); - - if (isset($_REQUEST['logout'])) { - $login->Unauth(); - } - - if (!isset($_SESSION['ari_user'])) { - $login->Auth(); - - } - - if (!isset($_SESSION['ari_user'])) { - - // login form - $ret .= $login->GetForm(); - - return $ret; - } -} - -/* - * Main handler for website - */ -function handleBlock() { - - global $ARI_NO_LOGIN; - - global $loaded_modules; - - // check errors here and in login block - $content .= checkErrorMessage(); - - // check logout - if ($_SESSION['ari_user'] && !$ARI_NO_LOGIN) { - $logout = 1; - } - - // if nothing set goto user default page - if (!isset($_REQUEST['m'])) { - $_REQUEST['m'] = $_SESSION['ari_user']['default_page']; - } - // if not function specified then use display page function - if (!isset($_REQUEST['f'])) { - $_REQUEST['f'] = 'display'; - } - - $m = $_REQUEST['m']; // module - $f = $_REQUEST['f']; // function - $a = $_REQUEST['a']; // action - - // set arguments - $args = array(); - foreach($_REQUEST as $key => $value) { - $args[$key] = $value; - } - - // set rank - $ranked_modules = array(); - foreach ($loaded_modules as $module) { - - $module_methods = get_class_methods($module); // note that PHP4 returns all lowercase - while (list($index, $value) = each($module_methods)) { - $module_methods[strtolower($index)] = strtolower($value); - } - reset($module_methods); - - $rank = 99999; - $rank_function = "rank"; - if (in_array(strtolower($rank_function), $module_methods)) { - $rank = $module->$rank_function(); - } - - $ranked_modules[$rank] = $module; - } - ksort($ranked_modules); - - // process modules - foreach ($ranked_modules as $module) { - - // process module - $name = get_class($module); // note PHP4 returns all lowercase - $module_methods = get_class_methods($module); // note PHP4 returns all lowercase - while (list($index, $value) = each($module_methods)) { - $module_methods[strtolower($index)] = strtolower($value); - } - reset($module_methods); - - // init module - $module->init(); - - // add nav menu items - $nav_menu_function = "navMenu"; - if (in_array(strtolower($nav_menu_function), $module_methods)) { - $nav_menu .= $module->$nav_menu_function($args); - } - - if (strtolower($m)==strtolower($name)) { - - // build sub menu - $subnav_menu_function = "navSubMenu"; - if (in_array(strtolower($subnav_menu_function), $module_methods)) { - $subnav_menu .= $module->$subnav_menu_function($args); - } - - // execute function (usually to build content) - if (in_array(strtolower($f), $module_methods)) { - $content .= $module->$f($args); - } - } - } - - // add logout link - if ($logout != '') { - $nav_menu .= "<p><small><small><a href='" . $_SESSION['ARI_ROOT'] . "?logout=1'>" . _("Logout") . "</a></small></small></p>"; - } - - // error message if no content - if (!$content) { - $content .= _("Page Not Found."); - } - - return array($nav_menu,$subnav_menu,$content); -} - -/* - * Main handler for website - */ -function handler() { - - global $ARI_VERSION; - - // version - $ari_version = $ARI_VERSION; - - // check error - $error = $_SESSION['ari_error']; - - // load modules - loadModules(); - - // login to database - $success = databaseLogon(); - if ($success) { - - // check if login is needed - $content = loginBlock(); - if (!isset($content)) { - list($nav_menu,$subnav_menu,$content) = handleBlock(); - } - } - else { - - $display = new Display(); - - $content .= $display->displayHeaderText("ARI"); - $content .= $display->displayLine(); - $content .= checkErrorMessage(); - } - - // log off any databases needed - databaseLogoff(); - - // check for ajax request and refresh or if not build the page - if (isset($_REQUEST['ajax_refresh']) ) { - - echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?> - <response> - <nav_menu><![CDATA[" . $nav_menu . "]]></nav_menu> - <subnav_menu><![CDATA[" . $subnav_menu . "]]></subnav_menu> - <content><![CDATA[" . $content . "]]></content> - </response>"; - } - else { - - // build the page - include_once("./theme/page.tpl.php"); - } -} - -/** - * Includes and run functions - */ - -// create asterisk manager interface singleton -$asterisk_manager_interface = ''; - -// array to keep track of loaded modules -$loaded_modules = array(); - -include_once("./includes/asi.php"); -include_once("./includes/database.php"); -include_once("./includes/display.php"); -include_once("./includes/ajax.php"); - -include_once("./includes/freeside.class.php"); - -?> |