function getAdditionalsDestinations() { require_once "apps/features_code/libs/paloSantoFeaturesCode.class.php"; require_once "apps/shortcut_apps/libs/paloSantoShortcutApps.class.php"; $pFC = new paloFeatureCodePBX($this->_DB, $this->domain); $arrFC = $pFC->getAllFeaturesCode($this->domain); $FCs = array(); $SAs = array(); foreach ($arrFC as $kfc => $fc) { if ($fc['estado'] == "enabled") { $FCs[] = array("label" => $fc['description'], "code" => isset($fc['code']) ? $fc['code'] : $fc['default_code']); } } asort($FCs); $pSA = new paloSantoShortcutApps($this->_DB, $this->domain); $arrSA = $pSA->getShortcutApps($this->domain); foreach ($arrSA as $ksa => $sa) { $SAs[] = array("label" => $sa['description'], "code" => $sa['exten']); } asort($SAs); return array("fc" => $FCs, "sa" => $SAs); }
function applyChanges($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials) { $action = ""; $pORGZ = new paloSantoOrganization($pDB); if ($credentials['userlevel'] == 'superadmin') { $domain = getParameter('organization'); $tmpORG = $pORGZ->getOrganization(array()); $arrOrgz = array(); foreach ($tmpORG as $value) { $arrOrgz[$value["domain"]] = $value["name"]; } if (count($arrOrgz) > 0) { if (!isset($arrOrgz[$domain])) { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("Organization doesn't exist")); return viewFeatures($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } } else { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("It's necesary you create at least one organization so you can use this module")); return viewFeatures($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } } else { $domain = $credentials['domain']; } $arrForm = createFieldForm(); $oForm = new paloForm($smarty, $arrForm); if (!$oForm->validateForm($_POST)) { // Validation basic, not empty and VALIDATION_TYPE $smarty->assign("mb_title", _tr("Validation Error")); $arrErrores = $oForm->arrErroresValidacion; $strErrorMsg = "<b>" . _tr("The following fields contain errors") . ":</b><br/>"; if (is_array($arrErrores) && count($arrErrores) > 0) { foreach ($arrErrores as $k => $v) { $strErrorMsg .= "{$k} [{$v['mensaje']}], "; } } $smarty->assign("mb_message", $strErrorMsg); $action = "edit"; } else { $pFC = new paloFeatureCodePBX($pDB, $domain); $arrFC = $pFC->getAllFeaturesCode($domain); if ($arrFC === false) { $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr($pFC->errMsg)); } else { $arrData = array(); //obtengo las entradas foreach ($arrFC as $feature) { $code = null; $name = $feature["name"]; if ($name != "pickup" && $name != "blind_transfer" && $name != "attended_transfer" && $name != "one_touch_monitor" && $name != "disconnect_call") { $estado = getParameter($name . "_stat"); //si esta o no habilitado el feature if ($estado == "ena_custom") { $code = getParameter($name); } //el code altenativo en caso de que no se quiera usar el de po default } else { $estado = $feature["estado"]; //si esta o no habilitado el feature } $arrData[] = array("name" => $name, "default_code" => $feature["default_code"], "code" => $code, "estado" => $estado); } $pDB->beginTransaction(); $exito = $pFC->editPaloFeatureDB($arrData); if ($exito === true) { $pDB->commit(); $smarty->assign("mb_title", _tr("MESSAGE")); $smarty->assign("mb_message", _tr("Changes applied successfully. ")); //mostramos el mensaje para crear los archivos de ocnfiguracion $pAstConf = new paloSantoASteriskConfig($pDB); $pAstConf->setReloadDialplan($domain, true); } else { $pDB->rollBack(); $smarty->assign("mb_title", _tr("ERROR")); $smarty->assign("mb_message", _tr("Changes couldn't be applied. ") . $pFC->errMsg); $action = "edit"; } } } return viewFeatures($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials, $action); }