334 lines
8.9 KiB
PHP
Executable File
334 lines
8.9 KiB
PHP
Executable File
<?php
|
||
/*************************************************
|
||
File name: getParameter.php
|
||
Author: Cui Ticun
|
||
Version: 9.00.00
|
||
Date: 2007-7-1
|
||
Description:这是一个后台程序,供operWebFunc.inc调用来完成参数的修改和存储
|
||
Calls:
|
||
Called:
|
||
|
||
History:
|
||
No.1:
|
||
Author:
|
||
Date:
|
||
Version:
|
||
Description:
|
||
*************************************************/
|
||
require("../../inc/lib.inc");
|
||
$DEBUG = 0;
|
||
$sysId=$_REQUEST['sysId'];
|
||
$tmpStr=$_REQUEST['tmpStr'];
|
||
$instanceNo=$_REQUEST['instanceNo'];
|
||
$language = $_REQUEST['lan'];
|
||
$tmpStr = str_replace('.','_',$_REQUEST['oidStr']);
|
||
$id = 'ID_' . $sysId . '_' . $tmpStr . '_' . '_ist' . $instanceNo;
|
||
$newId = "New".$id;
|
||
$inputID = 'Input'.$id;
|
||
$saveId = 'Save'.$id;
|
||
// Display_Type
|
||
define("DO_NOT_DISPLAY",0);
|
||
define("PULLDOWN_MENU",1);
|
||
define("TEXTBOX",2);
|
||
define("LABEL",3);
|
||
define("RADIO_BUTTON",4);
|
||
define("PUSH_BUTTON",5);
|
||
define("CHECKBOX",6);
|
||
define("TEXTAREA",7);
|
||
define("CONFIRM_PUSH_BUTTON",8);
|
||
|
||
|
||
function getLevelWhere($objIdStr)
|
||
{
|
||
$levelArr=explode('.',$objIdStr);
|
||
for($j=0;$j<sizeof($levelArr);$j++){
|
||
$levelNo=$j+1;
|
||
${"level_$levelNo"}=$levelArr[$j];
|
||
if($Debug) echo "<BR>levelArr[$j]={$levelArr[$j]}";
|
||
if($j == 0){
|
||
$levelWhere ="level_$levelNo='${"level_$levelNo"}'";
|
||
}else{
|
||
$levelWhere .=" AND level_$levelNo='${"level_$levelNo"}'";
|
||
}
|
||
}
|
||
return($levelWhere);
|
||
}
|
||
|
||
/*************************************************
|
||
Function: // translate
|
||
Description: // Transfer the value to string
|
||
// e.g. AdminState=2 --> AdminState=Unlocked
|
||
Calls: //
|
||
Called By: //
|
||
Table Accessed: //
|
||
Table Updated: //
|
||
Input: //
|
||
Output: //
|
||
Return: //
|
||
Others: //
|
||
*************************************************/
|
||
function translate($input,$data)
|
||
{
|
||
$found=-1;
|
||
if ($data)
|
||
{
|
||
$items=split("[;=]",$data);
|
||
$no_of_items=count($items);
|
||
|
||
for ($i=0;$i<$no_of_items;$i+=2) {
|
||
if ( $input == $items[$i+1] ) {
|
||
$found=$i;
|
||
break;
|
||
}
|
||
}
|
||
if ($found != -1)
|
||
return($items[$found]);
|
||
else
|
||
return('Undefined Value ('.$input.')');
|
||
}
|
||
return($input);
|
||
}
|
||
|
||
/*************************************************
|
||
Function: // getInnerValue
|
||
Description: // 当用户点击参数时,生成输入框或下拉菜单,供用户输入
|
||
Calls: //
|
||
Called By: //
|
||
Table Accessed: //
|
||
Table Updated: //
|
||
Input: //
|
||
Output: //
|
||
Return: //
|
||
Others: //
|
||
*************************************************/
|
||
|
||
function getInnerValue($sysId,$oidStr,$instanceNo=0,$otherWhereStr='',$showStr,$inputValueType)
|
||
{
|
||
global $language,$Debug,$inputID;
|
||
$sysIdArr = explode('_',$sysId);
|
||
$sysTypeNo = $sysIdArr[0];
|
||
$sysNo = $sysIdArr[1];
|
||
$subSysNo = $sysIdArr[2];
|
||
$objDb = 'OBJ_'.$sysTypeNo;
|
||
$paraConfTable = $objDb.".paramConf";
|
||
if($sysTypeNo[0]=='2')//Plat
|
||
$paraTable=$objDb.".param_".$sysNo;
|
||
else
|
||
$paraTable=$objDb.".param_99";
|
||
|
||
if(strlen($showStr)>0){
|
||
echo "<input id=\"$inputID\" type=\"text\" class=\"text\" value=\"\" onchange=\"$chechFnc\">";
|
||
return "";
|
||
}
|
||
|
||
if($Debug) echo "<br>$paramConfTable<br>";
|
||
|
||
//选择语言版本
|
||
if($language == 'eng'){
|
||
$objNameField=name_2;
|
||
$objSetField=setTemplate_2 ; //语种2
|
||
}else{
|
||
$objNameField=name_1;
|
||
$objSetField=setTemplate_1 ; //语种1(默认语种)
|
||
}
|
||
|
||
if($Debug) echo "<br>getValue = $getValue";
|
||
|
||
$objWhereStr = getLevelWhere($oidStr);
|
||
|
||
$objSql = "SELECT $objNameField,$objSetField,operType,valueType,minValue,maxValue FROM $paraConfTable WHERE $objWhereStr";
|
||
$objResult = mysqli_query($pubConn ,$objSql);
|
||
$objRows = @mysqli_fetch_array($objResult);
|
||
$setTemplate = $objRows[$objSetField];
|
||
$operType = $objRows[operType];
|
||
|
||
$paraSql = " SELECT initValue FROM $paraTable WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo' ";
|
||
$paraResult = mysqli_query($pubConn,$paraSql);
|
||
$paraRow = mysqli_fetch_array($paraResult);
|
||
$getValue = $paraRow[initValue];
|
||
if($DEBUG)
|
||
echo "<br>getValue=$getValue";
|
||
|
||
switch($operType){
|
||
case 2://Text Box
|
||
//=============input type=====================
|
||
$inputValueType=$inputValueType+0;
|
||
|
||
if($inputValueType==1){//===only can input the dec num====
|
||
$chechFnc = "checkInput(this,10)";
|
||
}else if($inputValueType==2){//===only can input the hex num====
|
||
$chechFnc = "checkInput(this,16)";
|
||
}else if($inputValueType==3){//====can input all character
|
||
$chechFnc = "";
|
||
}else if($inputValueType==4){//=====can put only dec num but include blank
|
||
$chechFnc = "checkInput_patch(this)";
|
||
}
|
||
|
||
echo "<input id=\"$inputID\" type=\"text\" class=\"text\" value=\"$getValue\" onchange=\"$chechFnc\">";
|
||
return $getValue;
|
||
break;
|
||
case 1://PULLDOWN_MENU
|
||
$menu_items=split("[;=]", $setTemplate);
|
||
$no_of_menu_items=count($menu_items);
|
||
$isSelected = 0;
|
||
echo "<select id=\"$inputID\" size=\"1\">";
|
||
for($j=0;$j< $no_of_menu_items;$j+=2)
|
||
{
|
||
$tmpValue=$menu_items[$j+1];
|
||
echo "<option value=$tmpValue";
|
||
if ($getValue == $menu_items[$j+1])
|
||
{
|
||
echo " selected>";
|
||
$isSelected = 1;
|
||
$selectedValue=$getValue;
|
||
}
|
||
else
|
||
{
|
||
echo ">";
|
||
}
|
||
echo "$menu_items[$j] </option>\n";
|
||
}
|
||
|
||
if ($isSelected == 0){
|
||
echo "<option value=\"$selectValue\" selected>Undefined Value</option>";
|
||
$selectedValue = "Undefined Value";
|
||
}
|
||
echo "</select>";
|
||
return $selectedValue;
|
||
break;
|
||
default: echo "<br>Error:operType =|$operType|";
|
||
break;
|
||
}//end of switch(..)
|
||
}//end getInnerValue
|
||
|
||
function getParamValue(&$initEquRead,$sysId,$oidStr,$instanceNo=0,$otherWhereStr='',$inputValueType)
|
||
{
|
||
global $language;
|
||
//$Debug=1;
|
||
$sysIdArr = explode('_',$sysId);
|
||
$sysTypeNo = $sysIdArr[0];
|
||
$sysNo = $sysIdArr[1];
|
||
$subSysNo = $sysIdArr[2];
|
||
$objDb = 'OBJ_'.$sysTypeNo;
|
||
$paraConfTable = $objDb.".paramConf";
|
||
if($sysTypeNo[0]=='2')//Plat
|
||
$paraTable=$objDb.".param_".$sysNo;
|
||
else
|
||
$paraTable=$objDb.".param_99";
|
||
|
||
if($language == 'eng'){
|
||
$objNameField=name_2;
|
||
$objSetField=setTemplate_2 ; //语种2
|
||
}else{
|
||
$objNameField=name_1;
|
||
$objSetField=setTemplate_1 ; //语种1(默认语种)
|
||
}
|
||
|
||
$objWhereStr = getLevelWhere($oidStr);
|
||
|
||
$objSql = "SELECT $objNameField,$objSetField,valueType,minValue,maxValue FROM $paraConfTable WHERE $objWhereStr";
|
||
$objResult = mysqli_query($pubConn ,$objSql);
|
||
$objRows = @mysqli_fetch_array($objResult);
|
||
$setTemplate = $objRows[$objSetField];
|
||
|
||
$paraSql = " SELECT initValue,readValue FROM $paraTable WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo' ";
|
||
$paraResult = mysqli_query($pubConn,$paraSql);
|
||
$paraRow = mysqli_fetch_array($paraResult);
|
||
$initGetValue = $paraRow[initValue];
|
||
$readGetValue = $paraRow[readValue];
|
||
|
||
$initEquRead = false;
|
||
if($initGetValue == $readGetValue)
|
||
$initEquRead = true;
|
||
else
|
||
$initEquRead = false;
|
||
$returnValue=translate($initGetValue,$setTemplate);
|
||
|
||
if($DEBUG)
|
||
echo "<br>returnValue=$returnValue";
|
||
return $returnValue;
|
||
}//end getParamValue
|
||
|
||
function setParamValue($setValue,$sysId,$oidStr,$instanceNo=0,$otherWhereStr='',$inputValueType)
|
||
{
|
||
$sysIdArr = explode('_',$sysId);
|
||
$sysTypeNo = $sysIdArr[0];
|
||
$sysNo = $sysIdArr[1];
|
||
$subSysNo = $sysIdArr[2];
|
||
$objDb = 'OBJ_'.$sysTypeNo;
|
||
$paraConfTable = $objDb.".paramConf";
|
||
if($sysTypeNo[0]=='2')//Plat
|
||
$paraTable=$objDb.".param_".$sysNo;
|
||
else
|
||
$paraTable=$objDb.".param_99";
|
||
|
||
|
||
$objWhereStr = getLevelWhere($oidStr);
|
||
|
||
//$setValue = strtoupper($setValue);
|
||
$updSql = "UPDATE $paraTable SET initValue = '$setValue'
|
||
WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo'";
|
||
if($DEBUG)
|
||
echo "<br>updSql=$updSql";
|
||
mysqli_query($pubConn,$updSql);
|
||
echo mysqli_error($pubConn);
|
||
}//end setParamValue
|
||
|
||
//0: flag
|
||
echo $flag;
|
||
echo "###";
|
||
|
||
if($flag=='getVar')//用户点击的是参数
|
||
{
|
||
//1: idName
|
||
echo $newId;
|
||
echo "###";
|
||
|
||
//2:innerStr
|
||
$oldValue=getInnerValue($sysId,$oidStr,$instanceNo,$otherWhereStr,$showStr,$inputValueType);
|
||
if(strlen($doingOtherUlr)>0)
|
||
{
|
||
$doingOtherUlr .= "&oldValue=$oldValue";
|
||
$doingOtherUlr=urlencode($doingOtherUlr);
|
||
}
|
||
echo " <span id=\"$saveId\" style=\"cursor:pointer\" onclick=\"javascript:getPar('saveVar','$language','$sysId','$oidStr','$instanceNo','$inputID','$doingOtherUlr','$otherWhereStr','$showStr','$inputValueType');\"><font color=\"blue\"><b> SAVE <b></font></span>";
|
||
}
|
||
|
||
if($flag=='saveVar')//用户点击的是右边的‘Save’
|
||
{
|
||
|
||
//1: idName
|
||
echo $id;
|
||
echo "###";
|
||
|
||
//2: innerStr
|
||
setParamValue($setValue,$sysId,$oidStr,$instanceNo,$otherWhereStr,$inputValueType);
|
||
$newValue = getParamValue($initEquRead,$sysId,$oidStr,$instanceNo,$otherWhereStr,$inputValueType);
|
||
if(strlen($showStr))
|
||
echo $showStr;
|
||
else{
|
||
if(strlen($newValue)>0)
|
||
echo $newValue;
|
||
else
|
||
echo "--";
|
||
}
|
||
echo "###";
|
||
|
||
//3: isEqual
|
||
if($initEquRead||strlen($showStr)) //initValue == readValue
|
||
echo "1";
|
||
else
|
||
echo "0";
|
||
echo "###";
|
||
|
||
//4: doingOtherUlr
|
||
if(strlen($doingOtherUlr)>0)
|
||
{
|
||
$doingOtherUlr .= "&newValue=$newValue";
|
||
}
|
||
echo $doingOtherUlr;
|
||
}
|
||
?>
|
||
|
||
|