コード例 #1
0
ファイル: index.php プロジェクト: hardikk/HNH
function _moduleContent(&$smarty, $module_name)
{
    include_once "libs/paloSantoForm.class.php";
    include_once "libs/paloSantoNetwork.class.php";
    include_once "libs/paloSantoGrid.class.php";
    include_once "modules/{$module_name}/configs/default.conf.php";
    $lang = get_language();
    $base_dir = dirname($_SERVER['SCRIPT_FILENAME']);
    $lang_file = "modules/{$module_name}/lang/{$lang}.lang";
    if (file_exists("{$base_dir}/{$lang_file}")) {
        include_once "{$lang_file}";
    } else {
        include_once "modules/{$module_name}/lang/en.lang";
    }
    //global variables
    global $arrConf;
    global $arrConfModule;
    global $arrLang;
    global $arrLangModule;
    $arrConf = array_merge($arrConf, $arrConfModule);
    $arrLang = array_merge($arrLang, $arrLangModule);
    //folder path for custom templates
    $base_dir = dirname($_SERVER['SCRIPT_FILENAME']);
    $templates_dir = isset($arrConf['templates_dir']) ? $arrConf['templates_dir'] : 'themes';
    $local_templates_dir = "{$base_dir}/modules/{$module_name}/" . $templates_dir . '/' . $arrConf['theme'];
    $arrFormNetwork = array("host" => array("LABEL" => "{$arrLang['Host']} (Ex. host.example.com)", "REQUIRED" => "yes", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "domain", "VALIDATION_EXTRA_PARAM" => ""), "dns1" => array("LABEL" => $arrLang["Primary DNS"], "REQUIRED" => "yes", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "ip", "VALIDATION_EXTRA_PARAM" => ""), "dns2" => array("LABEL" => $arrLang["Secondary DNS"], "REQUIRED" => "no", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "ip", "VALIDATION_EXTRA_PARAM" => ""), "gateway" => array("LABEL" => $arrLang["Default Gateway"], "REQUIRED" => "yes", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "ip", "VALIDATION_EXTRA_PARAM" => ""));
    $arrFormInterfase = array("ip" => array("LABEL" => $arrLang["IP Address"], "REQUIRED" => "yes", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "ip", "VALIDATION_EXTRA_PARAM" => ""), "mask" => array("LABEL" => $arrLang["Network Mask"], "REQUIRED" => "yes", "INPUT_TYPE" => "TEXT", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "mask", "VALIDATION_EXTRA_PARAM" => ""), "type" => array("LABEL" => $arrLang["Interface Type"], "REQUIRED" => "yes", "INPUT_TYPE" => "RADIO", "INPUT_EXTRA_PARAM" => array("static" => "Static", "dhcp" => "DHCP"), "VALIDATION_TYPE" => "text", "VALIDATION_EXTRA_PARAM" => ""), "dev_id" => array("LABEL" => $arrLang["Device"], "REQUIRED" => "yes", "INPUT_TYPE" => "HIDDEN", "INPUT_EXTRA_PARAM" => "", "VALIDATION_TYPE" => "ereg", "VALIDATION_EXTRA_PARAM" => "^eth[[:digit:]]{1,2}\$"));
    $strReturn = "";
    $pNet = new paloNetwork();
    // MANEJO DE ACCIONES
    if (isset($_POST['edit'])) {
        $arrNetwork = $pNet->obtener_configuracion_red();
        if (is_array($arrNetwork)) {
            $arrNetworkData['dns1'] = isset($arrNetwork['dns'][0]) ? $arrNetwork['dns'][0] : '';
            $arrNetworkData['dns2'] = isset($arrNetwork['dns'][1]) ? $arrNetwork['dns'][1] : '';
            $arrNetworkData['host'] = isset($arrNetwork['host']) ? $arrNetwork['host'] : '';
            $arrNetworkData['gateway'] = isset($arrNetwork['gateway']) ? $arrNetwork['gateway'] : '';
        }
        $oForm = new paloForm($smarty, $arrFormNetwork);
        $smarty->assign("ETHERNET_INTERFASES_LIST", "");
        $smarty->assign("CANCEL", $arrLang["Cancel"]);
        $smarty->assign("SAVE", $arrLang["Save"]);
        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
        $smarty->assign("icon", "modules/network_parameters/images/system_network_network_parameters.png");
        $strReturn = $oForm->fetchForm("{$local_templates_dir}/network.tpl", $arrLang["Network Parameters"], $arrNetworkData);
    } else {
        if (isset($_POST['save_network_changes'])) {
            $oForm = new paloForm($smarty, $arrFormNetwork);
            if ($oForm->validateForm($_POST)) {
                $arrNetConf['host'] = $_POST['host'];
                $arrNetConf['dns_ip_1'] = $_POST['dns1'];
                $arrNetConf['dns_ip_2'] = $_POST['dns2'];
                $arrNetConf['gateway_ip'] = $_POST['gateway'];
                $pNet->escribir_configuracion_red_sistema($arrNetConf);
                if (!empty($pNet->errMsg)) {
                    $smarty->assign("mb_message", $pNet->errMsg);
                } else {
                    header("Location: index.php?menu=network");
                }
            } else {
                // Error
                $smarty->assign("mb_title", $arrLang["Validation Error"]);
                $arrErrores = $oForm->arrErroresValidacion;
                $strErrorMsg = "<b>{$arrLang['The following fields contain errors']}:</b><br>";
                foreach ($arrErrores as $k => $v) {
                    $strErrorMsg .= "{$k}, ";
                }
                $strErrorMsg .= "";
                $smarty->assign("mb_message", $strErrorMsg);
                $smarty->assign("CANCEL", $arrLang["Cancel"]);
                $smarty->assign("SAVE", $arrLang["Save"]);
                $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
                $strReturn = $oForm->fetchForm("{$local_templates_dir}/network.tpl", $arrLang["Network Parameters"], $_POST);
            }
            $smarty->assign("icon", "modules/network_parameters/images/system_network_network_parameters.png");
            // Se aplasto el boton de grabar los cambios en la red
        } else {
            if (isset($_POST['cancel_interfase_edit'])) {
                header("Location: index.php?menu=network");
            } else {
                if (isset($_POST['save_interfase_changes'])) {
                    $oForm = new paloForm($smarty, $arrFormInterfase);
                    if ($oForm->validateForm($_POST)) {
                        $smarty->assign("icon", "modules/network_parameters/images/system_network_network_parameters.png");
                        if ($pNet->escribirConfiguracionInterfaseRed($_POST['dev_id'], $_POST['type'], $_POST['ip'], $_POST['mask'])) {
                            header("Location: index.php?menu=network");
                        } else {
                            $smarty->assign("mb_message", $pNet->errMsg);
                        }
                    } else {
                        // Error
                        $smarty->assign("mb_title", $arrLang["Validation Error"]);
                        $arrErrores = $oForm->arrErroresValidacion;
                        $strErrorMsg = "<b>{$arrLang['The following fields contain errors']}:</b><br>";
                        foreach ($arrErrores as $k => $v) {
                            $strErrorMsg .= "{$k}, ";
                        }
                        $strErrorMsg .= "";
                        $smarty->assign("mb_message", $strErrorMsg);
                        $smarty->assign("CANCEL", $arrLang["Cancel"]);
                        $smarty->assign("APPLY_CHANGES", $arrLang["Apply changes"]);
                        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
                        $smarty->assign("EDIT_PARAMETERS", $arrLang["Edit Network Parameters"]);
                        $smarty->assign("icon", "/modules/{$module_name}/images/system_hardware_detector.png");
                        $smarty->assign("CONFIRM_EDIT", $arrLang["Are you sure you want to edit network parameters?"]);
                        $strReturn = $oForm->fetchForm("{$local_templates_dir}/network_edit_interfase.tpl", "{$arrLang['Edit Interface']} \"Ethernet ??\"", $_POST);
                    }
                } else {
                    if (isset($_GET['action']) && $_GET['action'] == "editInterfase") {
                        // TODO: Revisar si el $_GET['id'] contiene un id valido
                        $arrEths = $pNet->obtener_interfases_red_fisicas();
                        $arrEth = $arrEths[$_GET['id']];
                        if (is_array($arrEth)) {
                            $arrInterfaseData['ip'] = $arrEth['Inet Addr'];
                            $arrInterfaseData['mask'] = $arrEth['Mask'];
                            $arrInterfaseData['type'] = $arrEth['Type'];
                            $arrInterfaseData['dev_id'] = $_GET['id'];
                        }
                        $oForm = new paloForm($smarty, $arrFormInterfase);
                        $smarty->assign("CANCEL", $arrLang["Cancel"]);
                        $smarty->assign("APPLY_CHANGES", $arrLang["Apply changes"]);
                        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
                        $smarty->assign("EDIT_PARAMETERS", $arrLang["Edit Network Parameters"]);
                        $smarty->assign("icon", "/modules/{$module_name}/images/system_hardware_detector.png");
                        $smarty->assign("CONFIRM_EDIT", $arrLang["Are you sure you want to edit network parameters?"]);
                        $strReturn = $oForm->fetchForm("{$local_templates_dir}/network_edit_interfase.tpl", "{$arrLang['Edit Interface']} \"" . $arrEth['Name'] . "\"", $arrInterfaseData);
                    } else {
                        // SECCION NETWORK PARAMETERS
                        $arrNetwork = $pNet->obtener_configuracion_red();
                        if (is_array($arrNetwork)) {
                            $arrNetworkData['dns1'] = isset($arrNetwork['dns'][0]) ? $arrNetwork['dns'][0] : '';
                            $arrNetworkData['dns2'] = isset($arrNetwork['dns'][1]) ? $arrNetwork['dns'][1] : '';
                            $arrNetworkData['host'] = isset($arrNetwork['host']) ? $arrNetwork['host'] : '';
                            $arrNetworkData['gateway'] = isset($arrNetwork['gateway']) ? $arrNetwork['gateway'] : '';
                        }
                        $oForm = new paloForm($smarty, $arrFormNetwork);
                        $oForm->setViewMode();
                        // SECCION ETHERNET LIST
                        $arrData = array();
                        $arrEths = $pNet->obtener_interfases_red_fisicas();
                        $end = count($arrEths);
                        foreach ($arrEths as $idEth => $arrEth) {
                            $arrTmp = array();
                            $arrTmp[0] = "&nbsp;<a href='?menu=network&action=editInterfase&id={$idEth}'>" . $arrEth['Name'] . "</a>";
                            $arrTmp[1] = strtoupper($arrEth['Type']);
                            $arrTmp[2] = $arrEth['Inet Addr'];
                            $arrTmp[3] = $arrEth['Mask'];
                            $arrTmp[4] = $arrEth['HWaddr'];
                            $arrTmp[5] = isset($arrEth['HW_info']) ? $arrEth['HW_info'] : '';
                            //- Deberia acotar este campo pues puede ser muy largo
                            $arrTmp[6] = $arrEth['Running'] == "Yes" ? "<font color=green>{$arrLang["Connected"]}</font>" : "<font color=red>{$arrLang["Not Connected"]}</font>";
                            $arrData[] = $arrTmp;
                        }
                        $oGrid = new paloSantoGrid($smarty);
                        $oGrid->pagingShow(false);
                        $arrGrid = array("title" => $arrLang["Ethernet Interfaces List"], "icon" => "/modules/{$module_name}/images/system_hardware_detector.png", "width" => "99%", "start" => "1", "end" => $end, "total" => $end, "columns" => array(0 => array("name" => $arrLang["Device"], "property1" => ""), 1 => array("name" => $arrLang["Type"], "property1" => ""), 2 => array("name" => $arrLang["IP"], "property1" => ""), 3 => array("name" => $arrLang["Mask"], "property1" => ""), 4 => array("name" => $arrLang["MAC Address"], "property1" => ""), 5 => array("name" => $arrLang["HW Info"], "property1" => ""), 6 => array("name" => $arrLang["Status"], "property1" => "")));
                        $htmlGrid = $oGrid->fetchGrid($arrGrid, $arrData, $arrLang);
                        $smarty->assign("ETHERNET_INTERFASES_LIST", $htmlGrid);
                        $smarty->assign("EDIT_PARAMETERS", $arrLang["Edit Network Parameters"]);
                        $smarty->assign("REQUIRED_FIELD", $arrLang["Required field"]);
                        $smarty->assign("icon", "modules/network_parameters/images/system_network_network_parameters.png");
                        // DISPLAY
                        $strReturn = $oForm->fetchForm("{$local_templates_dir}/network.tpl", $arrLang["Network Parameters"], $arrNetworkData);
                    }
                }
            }
        }
    }
    return $strReturn;
}