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);
 }
Example #2
0
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);
}