version = 2; $layout->blocks["top"] = array(); $layout->containers["all"] = array(); $layout->containers["all"][] = array("name"=>"wrapper", "block"=>"", "substyle"=>1 , "container"=>"edit" ); $layout->containers["edit"] = array(); $layout->containers["edit"][] = array("name"=>"editheader", "block"=>"editheader", "substyle"=>2 ); $layout->containers["edit"][] = array("name"=>"message", "block"=>"message_block", "substyle"=>1 ); $layout->containers["edit"][] = array("name"=>"wrapper", "block"=>"", "substyle"=>1 , "container"=>"fields" ); $layout->containers["fields"] = array(); $layout->containers["fields"][] = array("name"=>"editfields", "block"=>"", "substyle"=>1 ); $layout->containers["fields"][] = array("name"=>"editbuttons", "block"=>"editbuttons", "substyle"=>2 ); $layout->skins["fields"] = "fields"; $layout->skins["edit"] = "1"; $layout->skins["all"] = "empty"; $layout->blocks["top"][] = "all"; $page_layouts["fpi_reg_edit"] = $layout; $layout->skinsparams = array(); $layout->skinsparams["empty"] = array("button"=>"button2"); $layout->skinsparams["menu"] = array("button"=>"button1"); $layout->skinsparams["hmenu"] = array("button"=>"button1"); $layout->skinsparams["undermenu"] = array("button"=>"button1"); $layout->skinsparams["fields"] = array("button"=>"button1"); $layout->skinsparams["form"] = array("button"=>"button1"); $layout->skinsparams["1"] = array("button"=>"button1"); $layout->skinsparams["2"] = array("button"=>"button1"); $layout->skinsparams["3"] = array("button"=>"button1"); $returnJSON = array(); if( sizeof($_POST) == 0 && postvalue('ferror') && !postvalue("editid1") ) { $returnJSON['success'] = false; $returnJSON['message'] = mlang_message("INLINE_ERROR"); $returnJSON['fatalError'] = true; echo printJSON($returnJSON); exit(); } if( sizeof($_POST) == 0 && postvalue('ferror') && postvalue("editid1") ) { if( postvalue('fly') ) { echo -1; exit(); } else $_SESSION["message_edit"] = "<< ".mlang_message("INLINE_ERROR")." >>"; } ///////////////////////////////////////////////////////////// //init variables ///////////////////////////////////////////////////////////// if(postvalue("editType")=="inline") $inlineedit = EDIT_INLINE; elseif(postvalue("editType")==EDIT_POPUP) $inlineedit = EDIT_POPUP; else $inlineedit = EDIT_SIMPLE; $xt = new Xtempl(); $id = postvalue("id"); if(intval($id)==0) $id = 1; // assign an id $xt->assign("id", $id); if($inlineedit == EDIT_INLINE) $templatefile = GetTemplateName("fpi_reg", "inline_edit"); else $templatefile = GetTemplateName("fpi_reg", "edit"); $keys = array(); $savedKeys = array(); $keysChanged = false; $keys["UID"] = postvalue("editid1"); $savedKeys["UID"] = postvalue("editid1"); //array of params for classes $params = array("pageType" => PAGE_EDIT); $params["id"] = $id; $params["keys"] = $keys; $params['tName'] = $strTableName; $params['xt'] = &$xt; $params['mode'] = $inlineedit; $params['locale_info'] = $locale_info; $params['templatefile'] = $templatefile; $params['pageEditLikeInline'] = $inlineedit == EDIT_INLINE; //Get array of tabs for edit page $params['useTabsOnEdit'] = $gSettings->useTabsOnEdit(); if($params['useTabsOnEdit']) $params['arrEditTabs'] = $gSettings->getEditTabs(); $pageObject = new EditPage($params); $pageObject->init(); // For ajax request if($_REQUEST["action"] != "") { if($pageObject->lockingObj) { $arrkeys = explode("&",urldecode(refine($_REQUEST["keys"]))); foreach($arrkeys as $ind=>$val) $arrkeys[$ind]=urldecode($val); if($_REQUEST["action"]=="unlock") { $pageObject->lockingObj->UnlockRecord($strTableName,$arrkeys,$_REQUEST["sid"]); exit(); } else if($_REQUEST["action"]=="lockadmin" && (IsAdmin() || $_SESSION["AccessLevel"] == ACCESS_LEVEL_ADMINGROUP)) { $pageObject->lockingObj->UnlockAdmin($strTableName,$arrkeys,$_REQUEST["startEdit"]=="yes"); if($_REQUEST["startEdit"]=="no") echo "unlock"; else if($_REQUEST["startEdit"]=="yes") echo "lock"; exit(); } else if($_REQUEST["action"]=="confirm") { $lockMessage = ""; if(!$pageObject->lockingObj->ConfirmLock($strTableName, $arrkeys, $lockMessage)) echo $lockMessage; exit(); } } else exit(); } $status = ""; $message = ""; $mesClass = "rnr-error"; $usermessage = ""; $strWhereClause = ""; $showValues = array(); $showRawValues = array(); $showFields = array(); $showDetailKeys = array(); $next = array(); $prev = array(); $enableCtrlsForEditing = true; $error_happened = false; $readevalues = false; $IsSaved = false; $auditObj = GetAuditObject($strTableName); // SearchClause class stuff $_SESSION[$strTableName.'_advsearch'] = serialize($pageObject->searchClauseObj); //Get detail table keys $detailKeys = $pageObject->detailKeysByM; if($pageObject->lockingObj) { $system_attrs = "style='display:none;'"; $system_message = ""; } if ($inlineedit!=EDIT_INLINE) { // add button events if exist $pageObject->addButtonHandlers(); } // Before Process event if($eventObj->exists("BeforeProcessEdit")) $eventObj->BeforeProcessEdit($conn, $pageObject); //For show detail tables on master page edit if($inlineedit!=EDIT_INLINE) { $dpParams = array(); if($pageObject->isShowDetailTables && !isMobile()) { $ids = $id; $pageObject->jsSettings['tableSettings'][$strTableName]['dpParams'] = array('tableNames'=>$dpParams['strTableNames'], 'ids'=>$dpParams['ids']); } } ///////////////////////////////////////////////////////////// // process entered data, read and save ///////////////////////////////////////////////////////////// // proccess captcha if ($inlineedit!=EDIT_INLINE) if($pageObject->captchaExists()) $pageObject->doCaptchaCode(); if(@$_POST["a"] == "edited") { $strWhereClause = whereAdd($strWhereClause,KeyWhere($keys)); $hasDenyDuplicatesFields = $pageObject->pSet->editPageHasDenyDuplicatesFields(); $oldValuesRead = false; if($eventObj->exists("AfterEdit") || $eventObj->exists("BeforeEdit") || $auditObj || $pageObject->isTableGeoUpdatable() || $globalEvents->exists("IsRecordEditable", $strTableName) || $hasDenyDuplicatesFields) { // read old values $rsold = db_query($gQuery->gSQLWhere($strWhereClause), $conn); $dataold = $pageObject->cipherer->DecryptFetchedArray($rsold); $oldValuesRead = true; } if($globalEvents->exists("IsRecordEditable", $strTableName)) { if(!$globalEvents->IsRecordEditable($dataold, true, $strTableName)) return SecurityRedirect($inlineedit); } $evalues = array(); $efilename_values = array(); $blobfields = array(); // processing UID - begin $condition = 1; if($condition) { $control_UID = $pageObject->getControl("UID", $id); $control_UID->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); // update key value if($control_UID->getWebValue()!==false) $keys["UID"] = $control_UID->getWebValue(); } // processing UID - end // processing D8 - begin $condition = 1; if($condition) { $control_D8 = $pageObject->getControl("D8", $id); $control_D8->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D8 - end // processing D9 - begin $condition = 1; if($condition) { $control_D9 = $pageObject->getControl("D9", $id); $control_D9->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D9 - end // processing D10 - begin $condition = 1; if($condition) { $control_D10 = $pageObject->getControl("D10", $id); $control_D10->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D10 - end // processing D11 - begin $condition = 1; if($condition) { $control_D11 = $pageObject->getControl("D11", $id); $control_D11->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D11 - end // processing D12 - begin $condition = 1; if($condition) { $control_D12 = $pageObject->getControl("D12", $id); $control_D12->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D12 - end // processing D13 - begin $condition = 1; if($condition) { $control_D13 = $pageObject->getControl("D13", $id); $control_D13->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing D13 - end // processing E9 - begin $condition = 1; if($condition) { $control_E9 = $pageObject->getControl("E9", $id); $control_E9->readWebValue($evalues, $blobfields, $strWhereClause, $oldValuesRead, $efilename_values); } // processing E9 - end foreach($keys as $i=>$key) { if($key != $savedKeys[$i]) { $keysChanged = true; break; } } foreach($efilename_values as $ekey=>$value) $evalues[$ekey] = $value; // handle locking stuff before saving the record if($pageObject->lockingObj) { $lockmessage = ""; if( $keysChanged ) { $lockResult = $pageObject->lockingObj->ConfirmLock($strTableName,$savedKeys,$lockmessage); if( $lockResult ) $lockResult = $pageObject->lockingObj->LockRecord($strTableName, $keys ); } else { $lockResult = $pageObject->lockingObj->ConfirmLock($strTableName,$savedKeys,$lockmessage); } if( !$lockResult ) { $enableCtrlsForEditing = false; $system_attrs = "style='display:block;'"; if($inlineedit == EDIT_INLINE) { if(IsAdmin() || $_SESSION["AccessLevel"] == ACCESS_LEVEL_ADMINGROUP) $lockmessage = $pageObject->lockingObj->GetLockInfo($strTableName,$savedKeys,false,$id); $returnJSON['success'] = false; $returnJSON['message'] = $lockmessage; $returnJSON['enableCtrls'] = $enableCtrlsForEditing; $returnJSON['confirmTime'] = $pageObject->lockingObj->ConfirmTime; echo printJSON($returnJSON); exit(); } else { if(IsAdmin() || $_SESSION["AccessLevel"] == ACCESS_LEVEL_ADMINGROUP) $system_message = $pageObject->lockingObj->GetLockInfo($strTableName,$savedKeys,true,$id); else $system_message = $lockmessage; } $status = "DECLINED"; $readevalues = true; } } if($readevalues==false) { // do event $retval = true; if($eventObj->exists("BeforeEdit")) $retval=$eventObj->BeforeEdit($evalues,$strWhereClause,$dataold,$keys,$usermessage,(bool)$inlineedit, $pageObject); if($hasDenyDuplicatesFields && $retval) { $changedValues = array(); foreach($evalues as $fieldName => $value) { if($dataold[$fieldName] != $value) { $changedValues[$fieldName] = $value; } } //check if some values are duplicated for the fields not allowing duplicates $retval = !$pageObject->hasDeniedDuplicateValues($changedValues, $usermessage); } // if get save data and user is logged and not check permission if ($evalues && !CheckTablePermissions($strTableName, "E") && isLogged()) { $retval = false; $usermessage = 'You have no permissions to complete this action.'; } // if get save data and user is not logged or guest if ($evalues && ((!CheckTablePermissions($strTableName, "E") && isLoggedAsGuest()) || !isLogged())) { $retval = false; $usermessage = mlang_message("SESSION_EXPIRED1") . "" . mlang_message("SESSION_EXPIRED3") . "" . mlang_message("SESSION_EXPIRED4"); } if($retval && $pageObject->isCaptchaOk) { if($inlineedit!=EDIT_INLINE) $_SESSION[$strTableName."_count_captcha"] = $_SESSION[$strTableName."_count_captcha"]+1; //set updated lat-lng values for all map fileds with 'UpdateLatLng' ticked if( $pageObject->isTableGeoUpdatable() ) $pageObject->setUpdatedLatLng( $evalues, $dataold ); $customEditResult = true; if($eventObj->exists("CustomEdit")) $customEditResult = $eventObj->CustomEdit($evalues, $strWhereClause, $dataold, $keys, $usermessage, (bool)$inlineedit, $pageObject); if(!$customEditResult) { // custom procedure worked $IsSaved = ($usermessage == ""); } else { $IsSaved = DoUpdateRecord($strOriginalTableName,$evalues,$blobfields,$strWhereClause,$id,$pageObject, $pageObject->cipherer); $usermessage = $message; } if($IsSaved) { // Give possibility to all edit controls to clean their data // processing UID - begin $condition = 1; if($condition) { $control_UID->afterSuccessfulSave(); } // processing UID - end // processing D8 - begin $condition = 1; if($condition) { $control_D8->afterSuccessfulSave(); } // processing D8 - end // processing D9 - begin $condition = 1; if($condition) { $control_D9->afterSuccessfulSave(); } // processing D9 - end // processing D10 - begin $condition = 1; if($condition) { $control_D10->afterSuccessfulSave(); } // processing D10 - end // processing D11 - begin $condition = 1; if($condition) { $control_D11->afterSuccessfulSave(); } // processing D11 - end // processing D12 - begin $condition = 1; if($condition) { $control_D12->afterSuccessfulSave(); } // processing D12 - end // processing D13 - begin $condition = 1; if($condition) { $control_D13->afterSuccessfulSave(); } // processing D13 - end // processing E9 - begin $condition = 1; if($condition) { $control_E9->afterSuccessfulSave(); } // processing E9 - end // after edit event if($pageObject->lockingObj) { if( $keysChanged ) { //remove from the locking table a record with the old keys $pageObject->lockingObj->UnlockRecord($strTableName, $savedKeys, ""); } if( $inlineedit == EDIT_INLINE || $inlineedit == EDIT_POPUP && !$pageObject->pSet->useMoveNext() ) { $pageObject->lockingObj->UnlockRecord($strTableName, $keys , ""); } } if($auditObj || $eventObj->exists("AfterEdit")) { foreach($dataold as $idx=>$val) { if(!array_key_exists($idx,$evalues)) $evalues[$idx] = $val; } } if($auditObj) $auditObj->LogEdit($strTableName,$evalues,$dataold,$keys); if($eventObj->exists("AfterEdit")) $eventObj->AfterEdit($evalues,KeyWhere($keys),$dataold,$keys,(bool)$inlineedit, $pageObject); $mesClass = ""; } else { $message = $usermessage; $readevalues = true; $status = "DECLINED"; } } else { $message = $usermessage; $readevalues = true; $status = "DECLINED"; } } // saving was not successful if($readevalues) { if($pageObject->lockingObj && $keysChanged) { // free the record with new key values locked before saving $pageObject->lockingObj->UnlockRecord($strTableName, $keys , ""); } $keys = $savedKeys; } } if($message) $message = "
".$message."
"; // redirect after saving to avoid POSTDATA resending if ($IsSaved && no_output_done() && $inlineedit == EDIT_SIMPLE) { // saving message $_SESSION["message_edit"] = ($message ? $message : ""); // key get query $keyGetQ = ""; $keyGetQ.="editid1=".rawurldecode($keys["UID"])."&"; // cut last & $keyGetQ = substr($keyGetQ, 0, strlen($keyGetQ)-1); // redirect HeaderRedirect("fpi_reg", $pageObject->getPageType(), $keyGetQ); // turned on output buffering, so we need to stop script exit(); } // for PRG rule, to avoid POSTDATA resend. Saving mess in session if ($inlineedit == EDIT_SIMPLE && isset($_SESSION["message_edit"])) { $message = $_SESSION["message_edit"]; unset($_SESSION["message_edit"]); } // lock record before printing controls if($pageObject->lockingObj && !( $IsSaved && ( $inlineedit == EDIT_INLINE || $inlineedit == EDIT_POPUP ) )) { $enableCtrlsForEditing = $pageObject->lockingObj->LockRecord($strTableName, $keys); if(!$enableCtrlsForEditing) { if($inlineedit == EDIT_INLINE) { if(IsAdmin() || $_SESSION["AccessLevel"] == ACCESS_LEVEL_ADMINGROUP) $lockmessage = $pageObject->lockingObj->GetLockInfo($strTableName,$keys,false,$id); else $lockmessage = $pageObject->lockingObj->LockUser; $returnJSON['success'] = false; $returnJSON['message'] = $lockmessage; $returnJSON['enableCtrls'] = $enableCtrlsForEditing; $returnJSON['confirmTime'] = $pageObject->lockingObj->ConfirmTime; echo printJSON($returnJSON); exit(); } $system_attrs = "style='display:block;'"; $system_message = $pageObject->lockingObj->LockUser; if(IsAdmin() || $_SESSION["AccessLevel"] == ACCESS_LEVEL_ADMINGROUP) { $rb = $pageObject->lockingObj->GetLockInfo($strTableName,$keys,true,$id); if($rb!="") $system_message = $rb; } } } if($pageObject->lockingObj && $inlineedit!=EDIT_INLINE) $pageObject->body["begin"] .='
'.$system_message.'
'; $pageObject->setKeys($keys); $pageObject->readEditValues = $readevalues; if($readevalues) $pageObject->editValues = $evalues; // read current values from the database $data = $pageObject->getCurrentRecordInternal(); if(!$data) { if($inlineedit == EDIT_SIMPLE) { HeaderRedirect("fpi_reg", "list", "a=return"); exit(); } else $data = array(); } if($globalEvents->exists("IsRecordEditable", $strTableName)) { if(!$globalEvents->IsRecordEditable($data, true, $strTableName) && $inlineedit != EDIT_INLINE) { return SecurityRedirect($inlineedit); } } //global variable use in BuildEditControl function // show readonly fields $xt->assign("show_key1", $pageObject->showDBValue("UID", $data)); if($readevalues) { $data["UID"] = $evalues["UID"]; $data["D8"] = $evalues["D8"]; $data["D9"] = $evalues["D9"]; $data["D10"] = $evalues["D10"]; $data["D11"] = $evalues["D11"]; $data["D12"] = $evalues["D12"]; $data["D13"] = $evalues["D13"]; $data["E9"] = $evalues["E9"]; } ///////////////////////////////////////////////////////////// // assign values to $xt class, prepare page for displaying ///////////////////////////////////////////////////////////// //Basic includes js files $includes = ""; //javascript code if($inlineedit != EDIT_INLINE) { if($inlineedit == EDIT_SIMPLE) { $includes .= GetBaseScriptsForPage(false); if (!isMobile()) $includes.= "
\r\n"; $pageObject->body["begin"].= $includes; } if(!$pageObject->isAppearOnTabs("UID")) $xt->assign("UID_fieldblock",true); else $xt->assign("UID_tabfieldblock",true); $xt->assign("UID_label",true); if(isEnableSection508()) $xt->assign_section("UID_label",""); if(!$pageObject->isAppearOnTabs("D8")) $xt->assign("D8_fieldblock",true); else $xt->assign("D8_tabfieldblock",true); $xt->assign("D8_label",true); if(isEnableSection508()) $xt->assign_section("D8_label",""); if(!$pageObject->isAppearOnTabs("D9")) $xt->assign("D9_fieldblock",true); else $xt->assign("D9_tabfieldblock",true); $xt->assign("D9_label",true); if(isEnableSection508()) $xt->assign_section("D9_label",""); if(!$pageObject->isAppearOnTabs("D10")) $xt->assign("D10_fieldblock",true); else $xt->assign("D10_tabfieldblock",true); $xt->assign("D10_label",true); if(isEnableSection508()) $xt->assign_section("D10_label",""); if(!$pageObject->isAppearOnTabs("D11")) $xt->assign("D11_fieldblock",true); else $xt->assign("D11_tabfieldblock",true); $xt->assign("D11_label",true); if(isEnableSection508()) $xt->assign_section("D11_label",""); if(!$pageObject->isAppearOnTabs("D12")) $xt->assign("D12_fieldblock",true); else $xt->assign("D12_tabfieldblock",true); $xt->assign("D12_label",true); if(isEnableSection508()) $xt->assign_section("D12_label",""); if(!$pageObject->isAppearOnTabs("D13")) $xt->assign("D13_fieldblock",true); else $xt->assign("D13_tabfieldblock",true); $xt->assign("D13_label",true); if(isEnableSection508()) $xt->assign_section("D13_label",""); if(!$pageObject->isAppearOnTabs("E9")) $xt->assign("E9_fieldblock",true); else $xt->assign("E9_tabfieldblock",true); $xt->assign("E9_label",true); if(isEnableSection508()) $xt->assign_section("E9_label",""); //$xt->assign('editForm',true); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Begin Next Prev button ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(!@$_SESSION[$strTableName."_noNextPrev"] && $inlineedit != EDIT_INLINE) { $next = array(); $prev = array(); $pageObject->getNextPrevRecordKeys($data,"Edit",$next,$prev); } $nextlink = $prevlink = ""; if(count($next)) { $xt->assign("next_button", true); $nextlink.= "editid1=".runner_htmlspecialchars(rawurlencode($next[1-1])); $xt->assign("nextbutton_attrs", "id=\"nextButton".$id."\" align=\"absmiddle\""); } else if( count($prev) ) { $xt->assign("next_button", true); $xt->assign("nextbutton_class", "rnr-invisible-button"); } else $xt->assign("next_button", false); if(count($prev)) { $xt->assign("prev_button", true); $prevlink.= "editid1=".runner_htmlspecialchars(rawurlencode($prev[1-1])); $xt->assign("prevbutton_attrs", "id=\"prevButton".$id."\" align=\"absmiddle\""); } else if( count($next) ) { $xt->assign("prev_button", true); $xt->assign("prevbutton_class", "rnr-invisible-button"); } else $xt->assign("prev_button", false); $xt->assign("resetbutton_attrs",'id="resetButton'.$id.'"'); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //End Next Prev button ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if($inlineedit == EDIT_SIMPLE) { $xt->assign("back_button",true); $xt->assign("backbutton_attrs","id=\"backButton".$id."\""); $xt->assign("mbackbutton_attrs","id=\"extraBackButton".$id."\""); } if($inlineedit == EDIT_POPUP) { $xt->assign("close_button",true); $xt->assign("closebutton_attrs","id=\"closeButton".$id."\""); } // onmouseover event, for changing focus. Needed to proper submit form //$onmouseover = "this.focus();"; //$onmouseover = 'onmouseover="'.$onmouseover.'"'; $xt->assign("save_button",true); if(!$enableCtrlsForEditing) $xt->assign("savebutton_attrs", "id=\"saveButton".$id."\" type=\"disabled\" "); else $xt->assign("savebutton_attrs", "id=\"saveButton".$id."\""); $xt->assign("reset_button",true); $permis = $pageObject->getPermissions(); if($pageObject->pSet->hasViewPage() && $permis['search']) { $xt->assign("view_page_button", true); $xt->assign("view_page_button_attrs","id=\"viewPageButton".$id."\""); } } $xt->assign("message_block",true); $xt->assign("message",$message); if(!strlen($message)) { $xt->displayBrickHidden("message"); } ///////////////////////////////////////////////////////////// //process readonly and auto-update fields ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// // return new data to the List page or report an error ///////////////////////////////////////////////////////////// if (postvalue("a")=="edited" && ($inlineedit == EDIT_INLINE || $inlineedit == EDIT_POPUP)) { if(!$data) $data = $evalues; //Preparation view values // detail tables $keylink = ""; $keylink.= "&key1=".runner_htmlspecialchars(rawurlencode(@$data["UID"])); // UID - $value = $pageObject->showDBValue("UID", $data, $keylink); $showValues["UID"] = $value; $showFields[] = "UID"; $showRawValues["UID"] = substr($data["UID"],0,100); // Title - $value = $pageObject->showDBValue("Title", $data, $keylink); $showValues["Title"] = $value; $showFields[] = "Title"; $showRawValues["Title"] = substr($data["Title"],0,100); // English name - $value = $pageObject->showDBValue("English name", $data, $keylink); $showValues["English name"] = $value; $showFields[] = "English name"; $showRawValues["English name"] = substr($data["English name"],0,100); // Chinese name - $value = $pageObject->showDBValue("Chinese name", $data, $keylink); $showValues["Chinese name"] = $value; $showFields[] = "Chinese name"; $showRawValues["Chinese name"] = substr($data["Chinese name"],0,100); // Tel - $value = $pageObject->showDBValue("Tel", $data, $keylink); $showValues["Tel"] = $value; $showFields[] = "Tel"; $showRawValues["Tel"] = substr($data["Tel"],0,100); // E-mail - $value = $pageObject->showDBValue("E-mail", $data, $keylink); $showValues["E-mail"] = $value; $showFields[] = "E-mail"; $showRawValues["E-mail"] = substr($data["E-mail"],0,100); // Account Type - $value = $pageObject->showDBValue("Account Type", $data, $keylink); $showValues["Account Type"] = $value; $showFields[] = "Account Type"; $showRawValues["Account Type"] = substr($data["Account Type"],0,100); // ID card no - $value = $pageObject->showDBValue("ID card no", $data, $keylink); $showValues["ID card no"] = $value; $showFields[] = "ID card no"; $showRawValues["ID card no"] = substr($data["ID card no"],0,100); // Passport no - $value = $pageObject->showDBValue("Passport no", $data, $keylink); $showValues["Passport no"] = $value; $showFields[] = "Passport no"; $showRawValues["Passport no"] = substr($data["Passport no"],0,100); // Issue Country - $value = $pageObject->showDBValue("Issue Country", $data, $keylink); $showValues["Issue Country"] = $value; $showFields[] = "Issue Country"; $showRawValues["Issue Country"] = substr($data["Issue Country"],0,100); // Nationality - $value = $pageObject->showDBValue("Nationality", $data, $keylink); $showValues["Nationality"] = $value; $showFields[] = "Nationality"; $showRawValues["Nationality"] = substr($data["Nationality"],0,100); // Date of Birth - $value = $pageObject->showDBValue("Date of Birth", $data, $keylink); $showValues["Date of Birth"] = $value; $showFields[] = "Date of Birth"; $showRawValues["Date of Birth"] = substr($data["Date of Birth"],0,100); // sex - $value = $pageObject->showDBValue("sex", $data, $keylink); $showValues["sex"] = $value; $showFields[] = "sex"; $showRawValues["sex"] = substr($data["sex"],0,100); // Residential Address - $value = $pageObject->showDBValue("Residential Address", $data, $keylink); $showValues["Residential Address"] = $value; $showFields[] = "Residential Address"; $showRawValues["Residential Address"] = substr($data["Residential Address"],0,100); // correspondence address - $value = $pageObject->showDBValue("correspondence address", $data, $keylink); $showValues["correspondence address"] = $value; $showFields[] = "correspondence address"; $showRawValues["correspondence address"] = substr($data["correspondence address"],0,100); // Residential Tel - $value = $pageObject->showDBValue("Residential Tel", $data, $keylink); $showValues["Residential Tel"] = $value; $showFields[] = "Residential Tel"; $showRawValues["Residential Tel"] = substr($data["Residential Tel"],0,100); // Date of Birth (day) - $value = $pageObject->showDBValue("Date of Birth (day)", $data, $keylink); $showValues["Date of Birth (day)"] = $value; $showFields[] = "Date of Birth (day)"; $showRawValues["Date of Birth (day)"] = substr($data["Date of Birth (day)"],0,100); // Date of Birth (Month) - $value = $pageObject->showDBValue("Date of Birth (Month)", $data, $keylink); $showValues["Date of Birth (Month)"] = $value; $showFields[] = "Date of Birth (Month)"; $showRawValues["Date of Birth (Month)"] = substr($data["Date of Birth (Month)"],0,100); // Date of Birth (Year) - $value = $pageObject->showDBValue("Date of Birth (Year)", $data, $keylink); $showValues["Date of Birth (Year)"] = $value; $showFields[] = "Date of Birth (Year)"; $showRawValues["Date of Birth (Year)"] = substr($data["Date of Birth (Year)"],0,100); // Employ status - $value = $pageObject->showDBValue("Employ status", $data, $keylink); $showValues["Employ status"] = $value; $showFields[] = "Employ status"; $showRawValues["Employ status"] = substr($data["Employ status"],0,100); // Company post - $value = $pageObject->showDBValue("Company post", $data, $keylink); $showValues["Company post"] = $value; $showFields[] = "Company post"; $showRawValues["Company post"] = substr($data["Company post"],0,100); // Company name - $value = $pageObject->showDBValue("Company name", $data, $keylink); $showValues["Company name"] = $value; $showFields[] = "Company name"; $showRawValues["Company name"] = substr($data["Company name"],0,100); // Business nature - $value = $pageObject->showDBValue("Business nature", $data, $keylink); $showValues["Business nature"] = $value; $showFields[] = "Business nature"; $showRawValues["Business nature"] = substr($data["Business nature"],0,100); // 香港證券現金帳戶 - $value = $pageObject->showDBValue("香港證券現金帳戶", $data, $keylink); $showValues["香港證券現金帳戶"] = $value; $showFields[] = "香港證券現金帳戶"; $showRawValues["香港證券現金帳戶"] = substr($data["香港證券現金帳戶"],0,100); // 香港證券保證金帳戶 - $value = $pageObject->showDBValue("香港證券保證金帳戶", $data, $keylink); $showValues["香港證券保證金帳戶"] = $value; $showFields[] = "香港證券保證金帳戶"; $showRawValues["香港證券保證金帳戶"] = substr($data["香港證券保證金帳戶"],0,100); // 環球證券保證金帳戶 - $value = $pageObject->showDBValue("環球證券保證金帳戶", $data, $keylink); $showValues["環球證券保證金帳戶"] = $value; $showFields[] = "環球證券保證金帳戶"; $showRawValues["環球證券保證金帳戶"] = substr($data["環球證券保證金帳戶"],0,100); // 貴金屬帳戶 - $value = $pageObject->showDBValue("貴金屬帳戶", $data, $keylink); $showValues["貴金屬帳戶"] = $value; $showFields[] = "貴金屬帳戶"; $showRawValues["貴金屬帳戶"] = substr($data["貴金屬帳戶"],0,100); // 期貨帳戶 - $value = $pageObject->showDBValue("期貨帳戶", $data, $keylink); $showValues["期貨帳戶"] = $value; $showFields[] = "期貨帳戶"; $showRawValues["期貨帳戶"] = substr($data["期貨帳戶"],0,100); // Statement post method - $value = $pageObject->showDBValue("Statement post method", $data, $keylink); $showValues["Statement post method"] = $value; $showFields[] = "Statement post method"; $showRawValues["Statement post method"] = substr($data["Statement post method"],0,100); // 主要入帳銀行 - $value = $pageObject->showDBValue("主要入帳銀行", $data, $keylink); $showValues["主要入帳銀行"] = $value; $showFields[] = "主要入帳銀行"; $showRawValues["主要入帳銀行"] = substr($data["主要入帳銀行"],0,100); // 帳戶號碼 - $value = $pageObject->showDBValue("帳戶號碼", $data, $keylink); $showValues["帳戶號碼"] = $value; $showFields[] = "帳戶號碼"; $showRawValues["帳戶號碼"] = substr($data["帳戶號碼"],0,100); // 貨幣 - $value = $pageObject->showDBValue("貨幣", $data, $keylink); $showValues["貨幣"] = $value; $showFields[] = "貨幣"; $showRawValues["貨幣"] = substr($data["貨幣"],0,100); // 入帳銀行帳戶持有人 - $value = $pageObject->showDBValue("入帳銀行帳戶持有人", $data, $keylink); $showValues["入帳銀行帳戶持有人"] = $value; $showFields[] = "入帳銀行帳戶持有人"; $showRawValues["入帳銀行帳戶持有人"] = substr($data["入帳銀行帳戶持有人"],0,100); // SWIFT編號 - $value = $pageObject->showDBValue("SWIFT編號", $data, $keylink); $showValues["SWIFT編號"] = $value; $showFields[] = "SWIFT編號"; $showRawValues["SWIFT編號"] = substr($data["SWIFT編號"],0,100); // D8 - $value = $pageObject->showDBValue("D8", $data, $keylink); $showValues["D8"] = $value; $showFields[] = "D8"; $showRawValues["D8"] = substr($data["D8"],0,100); // D9 - $value = $pageObject->showDBValue("D9", $data, $keylink); $showValues["D9"] = $value; $showFields[] = "D9"; $showRawValues["D9"] = substr($data["D9"],0,100); // D10 - $value = $pageObject->showDBValue("D10", $data, $keylink); $showValues["D10"] = $value; $showFields[] = "D10"; $showRawValues["D10"] = substr($data["D10"],0,100); // D11 - $value = $pageObject->showDBValue("D11", $data, $keylink); $showValues["D11"] = $value; $showFields[] = "D11"; $showRawValues["D11"] = substr($data["D11"],0,100); // D12 - $value = $pageObject->showDBValue("D12", $data, $keylink); $showValues["D12"] = $value; $showFields[] = "D12"; $showRawValues["D12"] = substr($data["D12"],0,100); // D13 - $value = $pageObject->showDBValue("D13", $data, $keylink); $showValues["D13"] = $value; $showFields[] = "D13"; $showRawValues["D13"] = substr($data["D13"],0,100); // 每年收入 - $value = $pageObject->showDBValue("每年收入", $data, $keylink); $showValues["每年收入"] = $value; $showFields[] = "每年收入"; $showRawValues["每年收入"] = substr($data["每年收入"],0,100); // 淨資產值 - $value = $pageObject->showDBValue("淨資產值", $data, $keylink); $showValues["淨資產值"] = $value; $showFields[] = "淨資產值"; $showRawValues["淨資產值"] = substr($data["淨資產值"],0,100); // 流動產值 - $value = $pageObject->showDBValue("流動產值", $data, $keylink); $showValues["流動產值"] = $value; $showFields[] = "流動產值"; $showRawValues["流動產值"] = substr($data["流動產值"],0,100); // 香港上市証券 - $value = $pageObject->showDBValue("香港上市証券", $data, $keylink); $showValues["香港上市証券"] = $value; $showFields[] = "香港上市証券"; $showRawValues["香港上市証券"] = substr($data["香港上市証券"],0,100); // 海外上市證券 - $value = $pageObject->showDBValue("海外上市證券", $data, $keylink); $showValues["海外上市證券"] = $value; $showFields[] = "海外上市證券"; $showRawValues["海外上市證券"] = substr($data["海外上市證券"],0,100); // 香港期貨及期權 - $value = $pageObject->showDBValue("香港期貨及期權", $data, $keylink); $showValues["香港期貨及期權"] = $value; $showFields[] = "香港期貨及期權"; $showRawValues["香港期貨及期權"] = substr($data["香港期貨及期權"],0,100); // 海外期貨及期權 - $value = $pageObject->showDBValue("海外期貨及期權", $data, $keylink); $showValues["海外期貨及期權"] = $value; $showFields[] = "海外期貨及期權"; $showRawValues["海外期貨及期權"] = substr($data["海外期貨及期權"],0,100); // 投資目的 (收入) - $value = $pageObject->showDBValue("投資目的 (收入)", $data, $keylink); $showValues["投資目的 (收入)"] = $value; $showFields[] = "投資目的 (收入)"; $showRawValues["投資目的 (收入)"] = substr($data["投資目的 (收入)"],0,100); // 投資目的 (對沖) - $value = $pageObject->showDBValue("投資目的 (對沖)", $data, $keylink); $showValues["投資目的 (對沖)"] = $value; $showFields[] = "投資目的 (對沖)"; $showRawValues["投資目的 (對沖)"] = substr($data["投資目的 (對沖)"],0,100); // 投資目的 (資本增值) - $value = $pageObject->showDBValue("投資目的 (資本增值)", $data, $keylink); $showValues["投資目的 (資本增值)"] = $value; $showFields[] = "投資目的 (資本增值)"; $showRawValues["投資目的 (資本增值)"] = substr($data["投資目的 (資本增值)"],0,100); // 投資目的 (投機) - $value = $pageObject->showDBValue("投資目的 (投機)", $data, $keylink); $showValues["投資目的 (投機)"] = $value; $showFields[] = "投資目的 (投機)"; $showRawValues["投資目的 (投機)"] = substr($data["投資目的 (投機)"],0,100); // E9 - $value = $pageObject->showDBValue("E9", $data, $keylink); $showValues["E9"] = $value; $showFields[] = "E9"; $showRawValues["E9"] = substr($data["E9"],0,100); // 閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東? - $value = $pageObject->showDBValue("閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東?", $data, $keylink); $showValues["閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東?"] = $value; $showFields[] = "閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東?"; $showRawValues["閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東?"] = substr($data["閣下自己、閣下之配偶、父母、及/或子女是否富泰中順的公司帳戶的董事及/或股東?"],0,100); // 閣下的配偶、及/或子女是否富泰中順的客戶? - $value = $pageObject->showDBValue("閣下的配偶、及/或子女是否富泰中順的客戶?", $data, $keylink); $showValues["閣下的配偶、及/或子女是否富泰中順的客戶?"] = $value; $showFields[] = "閣下的配偶、及/或子女是否富泰中順的客戶?"; $showRawValues["閣下的配偶、及/或子女是否富泰中順的客戶?"] = substr($data["閣下的配偶、及/或子女是否富泰中順的客戶?"],0,100); // 閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權? - $value = $pageObject->showDBValue("閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權?", $data, $keylink); $showValues["閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權?"] = $value; $showFields[] = "閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權?"; $showRawValues["閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權?"] = substr($data["閣下是否個人或與閣下之配偶共同控制任何富泰中順的公司客戶35%或以上的投票權?"],0,100); // 閣下是否與富泰中順任何顧員有親屬關係? - $value = $pageObject->showDBValue("閣下是否與富泰中順任何顧員有親屬關係?", $data, $keylink); $showValues["閣下是否與富泰中順任何顧員有親屬關係?"] = $value; $showFields[] = "閣下是否與富泰中順任何顧員有親屬關係?"; $showRawValues["閣下是否與富泰中順任何顧員有親屬關係?"] = substr($data["閣下是否與富泰中順任何顧員有親屬關係?"],0,100); // 閣下是否香港證監會持牌人或註冊人的顧員? - $value = $pageObject->showDBValue("閣下是否香港證監會持牌人或註冊人的顧員?", $data, $keylink); $showValues["閣下是否香港證監會持牌人或註冊人的顧員?"] = $value; $showFields[] = "閣下是否香港證監會持牌人或註冊人的顧員?"; $showRawValues["閣下是否香港證監會持牌人或註冊人的顧員?"] = substr($data["閣下是否香港證監會持牌人或註冊人的顧員?"],0,100); // 閣下是否此帳戶之最終受益人? - $value = $pageObject->showDBValue("閣下是否此帳戶之最終受益人?", $data, $keylink); $showValues["閣下是否此帳戶之最終受益人?"] = $value; $showFields[] = "閣下是否此帳戶之最終受益人?"; $showRawValues["閣下是否此帳戶之最終受益人?"] = substr($data["閣下是否此帳戶之最終受益人?"],0,100); // (請註明詳情) - $value = $pageObject->showDBValue("(請註明詳情)", $data, $keylink); $showValues["(請註明詳情)"] = $value; $showFields[] = "(請註明詳情)"; $showRawValues["(請註明詳情)"] = substr($data["(請註明詳情)"],0,100); // (請註明詳情)1 - $value = $pageObject->showDBValue("(請註明詳情)1", $data, $keylink); $showValues["(請註明詳情)1"] = $value; $showFields[] = "(請註明詳情)1"; $showRawValues["(請註明詳情)1"] = substr($data["(請註明詳情)1"],0,100); // (請註明詳情)2 - $value = $pageObject->showDBValue("(請註明詳情)2", $data, $keylink); $showValues["(請註明詳情)2"] = $value; $showFields[] = "(請註明詳情)2"; $showRawValues["(請註明詳情)2"] = substr($data["(請註明詳情)2"],0,100); // (請註明詳情) - $value = $pageObject->showDBValue("(請註明詳情) ", $data, $keylink); $showValues["(請註明詳情) "] = $value; $showFields[] = "(請註明詳情) "; $showRawValues["(請註明詳情) "] = substr($data["(請註明詳情) "],0,100); // (請註明詳情)3 - $value = $pageObject->showDBValue("(請註明詳情)3", $data, $keylink); $showValues["(請註明詳情)3"] = $value; $showFields[] = "(請註明詳情)3"; $showRawValues["(請註明詳情)3"] = substr($data["(請註明詳情)3"],0,100); // (請註明詳情)4 - $value = $pageObject->showDBValue("(請註明詳情)4", $data, $keylink); $showValues["(請註明詳情)4"] = $value; $showFields[] = "(請註明詳情)4"; $showRawValues["(請註明詳情)4"] = substr($data["(請註明詳情)4"],0,100); // 閣下於過去三年,曾執行五次或以上有關衍生產品的交易 - $value = $pageObject->showDBValue("閣下於過去三年,曾執行五次或以上有關衍生產品的交易", $data, $keylink); $showValues["閣下於過去三年,曾執行五次或以上有關衍生產品的交易"] = $value; $showFields[] = "閣下於過去三年,曾執行五次或以上有關衍生產品的交易"; $showRawValues["閣下於過去三年,曾執行五次或以上有關衍生產品的交易"] = substr($data["閣下於過去三年,曾執行五次或以上有關衍生產品的交易"],0,100); // 閣下現時或過去擁有與衍生產品有關的工作經驗 - $value = $pageObject->showDBValue("閣下現時或過去擁有與衍生產品有關的工作經驗", $data, $keylink); $showValues["閣下現時或過去擁有與衍生產品有關的工作經驗"] = $value; $showFields[] = "閣下現時或過去擁有與衍生產品有關的工作經驗"; $showRawValues["閣下現時或過去擁有與衍生產品有關的工作經驗"] = substr($data["閣下現時或過去擁有與衍生產品有關的工作經驗"],0,100); // 職位 - $value = $pageObject->showDBValue("職位", $data, $keylink); $showValues["職位"] = $value; $showFields[] = "職位"; $showRawValues["職位"] = substr($data["職位"],0,100); // 公司名稱 - $value = $pageObject->showDBValue("公司名稱", $data, $keylink); $showValues["公司名稱"] = $value; $showFields[] = "公司名稱"; $showRawValues["公司名稱"] = substr($data["公司名稱"],0,100); // 工作年期 - $value = $pageObject->showDBValue("工作年期", $data, $keylink); $showValues["工作年期"] = $value; $showFields[] = "工作年期"; $showRawValues["工作年期"] = substr($data["工作年期"],0,100); // 有關工作經驗詳情 - $value = $pageObject->showDBValue("有關工作經驗詳情", $data, $keylink); $showValues["有關工作經驗詳情"] = $value; $showFields[] = "有關工作經驗詳情"; $showRawValues["有關工作經驗詳情"] = substr($data["有關工作經驗詳情"],0,100); // 閣下曾接受有關衍生產品的培訓或修讀相關課程 - $value = $pageObject->showDBValue("閣下曾接受有關衍生產品的培訓或修讀相關課程", $data, $keylink); $showValues["閣下曾接受有關衍生產品的培訓或修讀相關課程"] = $value; $showFields[] = "閣下曾接受有關衍生產品的培訓或修讀相關課程"; $showRawValues["閣下曾接受有關衍生產品的培訓或修讀相關課程"] = substr($data["閣下曾接受有關衍生產品的培訓或修讀相關課程"],0,100); // 詳情 - $value = $pageObject->showDBValue("詳情", $data, $keylink); $showValues["詳情"] = $value; $showFields[] = "詳情"; $showRawValues["詳情"] = substr($data["詳情"],0,100); // 閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生 - $value = $pageObject->showDBValue("閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生", $data, $keylink); $showValues["閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生"] = $value; $showFields[] = "閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生"; $showRawValues["閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生"] = substr($data["閣下確認已仔細閱讀及完全明白,由 富泰中順提供,並以閣下所選擇之語言(英文或中文)的「風險披露聲明或就在交易所買賣的衍生產品所附帶的風險作出解釋」 。閣下並願意承擔交易相關衍生"],0,100); // Title1 - $value = $pageObject->showDBValue("Title1", $data, $keylink); $showValues["Title1"] = $value; $showFields[] = "Title1"; $showRawValues["Title1"] = substr($data["Title1"],0,100); // English name1 - $value = $pageObject->showDBValue("English name1", $data, $keylink); $showValues["English name1"] = $value; $showFields[] = "English name1"; $showRawValues["English name1"] = substr($data["English name1"],0,100); // Chinese name1 - $value = $pageObject->showDBValue("Chinese name1", $data, $keylink); $showValues["Chinese name1"] = $value; $showFields[] = "Chinese name1"; $showRawValues["Chinese name1"] = substr($data["Chinese name1"],0,100); // Tel1 - $value = $pageObject->showDBValue("Tel1", $data, $keylink); $showValues["Tel1"] = $value; $showFields[] = "Tel1"; $showRawValues["Tel1"] = substr($data["Tel1"],0,100); // E-mail1 - $value = $pageObject->showDBValue("E-mail1", $data, $keylink); $showValues["E-mail1"] = $value; $showFields[] = "E-mail1"; $showRawValues["E-mail1"] = substr($data["E-mail1"],0,100); // ID card no1 - $value = $pageObject->showDBValue("ID card no1", $data, $keylink); $showValues["ID card no1"] = $value; $showFields[] = "ID card no1"; $showRawValues["ID card no1"] = substr($data["ID card no1"],0,100); // Passport no1 - $value = $pageObject->showDBValue("Passport no1", $data, $keylink); $showValues["Passport no1"] = $value; $showFields[] = "Passport no1"; $showRawValues["Passport no1"] = substr($data["Passport no1"],0,100); // Issue Country1 - $value = $pageObject->showDBValue("Issue Country1", $data, $keylink); $showValues["Issue Country1"] = $value; $showFields[] = "Issue Country1"; $showRawValues["Issue Country1"] = substr($data["Issue Country1"],0,100); // Nationality1 - $value = $pageObject->showDBValue("Nationality1", $data, $keylink); $showValues["Nationality1"] = $value; $showFields[] = "Nationality1"; $showRawValues["Nationality1"] = substr($data["Nationality1"],0,100); // Date of Birth1 - $value = $pageObject->showDBValue("Date of Birth1", $data, $keylink); $showValues["Date of Birth1"] = $value; $showFields[] = "Date of Birth1"; $showRawValues["Date of Birth1"] = substr($data["Date of Birth1"],0,100); // sex1 - $value = $pageObject->showDBValue("sex1", $data, $keylink); $showValues["sex1"] = $value; $showFields[] = "sex1"; $showRawValues["sex1"] = substr($data["sex1"],0,100); // Residential Address1 - $value = $pageObject->showDBValue("Residential Address1", $data, $keylink); $showValues["Residential Address1"] = $value; $showFields[] = "Residential Address1"; $showRawValues["Residential Address1"] = substr($data["Residential Address1"],0,100); // correspondence address1 - $value = $pageObject->showDBValue("correspondence address1", $data, $keylink); $showValues["correspondence address1"] = $value; $showFields[] = "correspondence address1"; $showRawValues["correspondence address1"] = substr($data["correspondence address1"],0,100); // Residential Tel1 - $value = $pageObject->showDBValue("Residential Tel1", $data, $keylink); $showValues["Residential Tel1"] = $value; $showFields[] = "Residential Tel1"; $showRawValues["Residential Tel1"] = substr($data["Residential Tel1"],0,100); // Date of Birth (day)1 - $value = $pageObject->showDBValue("Date of Birth (day)1", $data, $keylink); $showValues["Date of Birth (day)1"] = $value; $showFields[] = "Date of Birth (day)1"; $showRawValues["Date of Birth (day)1"] = substr($data["Date of Birth (day)1"],0,100); // Date of Birth (Month)1 - $value = $pageObject->showDBValue("Date of Birth (Month)1", $data, $keylink); $showValues["Date of Birth (Month)1"] = $value; $showFields[] = "Date of Birth (Month)1"; $showRawValues["Date of Birth (Month)1"] = substr($data["Date of Birth (Month)1"],0,100); // Date of Birth (Year)1 - $value = $pageObject->showDBValue("Date of Birth (Year)1", $data, $keylink); $showValues["Date of Birth (Year)1"] = $value; $showFields[] = "Date of Birth (Year)1"; $showRawValues["Date of Birth (Year)1"] = substr($data["Date of Birth (Year)1"],0,100); // Employ status1 - $value = $pageObject->showDBValue("Employ status1", $data, $keylink); $showValues["Employ status1"] = $value; $showFields[] = "Employ status1"; $showRawValues["Employ status1"] = substr($data["Employ status1"],0,100); // Company post1 - $value = $pageObject->showDBValue("Company post1", $data, $keylink); $showValues["Company post1"] = $value; $showFields[] = "Company post1"; $showRawValues["Company post1"] = substr($data["Company post1"],0,100); // Company name1 - $value = $pageObject->showDBValue("Company name1", $data, $keylink); $showValues["Company name1"] = $value; $showFields[] = "Company name1"; $showRawValues["Company name1"] = substr($data["Company name1"],0,100); // Business nature1 - $value = $pageObject->showDBValue("Business nature1", $data, $keylink); $showValues["Business nature1"] = $value; $showFields[] = "Business nature1"; $showRawValues["Business nature1"] = substr($data["Business nature1"],0,100); // QQ - $value = $pageObject->showDBValue("QQ", $data, $keylink); $showValues["QQ"] = $value; $showFields[] = "QQ"; $showRawValues["QQ"] = substr($data["QQ"],0,100); // WeChat - $value = $pageObject->showDBValue("WeChat", $data, $keylink); $showValues["WeChat"] = $value; $showFields[] = "WeChat"; $showRawValues["WeChat"] = substr($data["WeChat"],0,100); // QQ1 - $value = $pageObject->showDBValue("QQ1", $data, $keylink); $showValues["QQ1"] = $value; $showFields[] = "QQ1"; $showRawValues["QQ1"] = substr($data["QQ1"],0,100); // WeChat1 - $value = $pageObject->showDBValue("WeChat1", $data, $keylink); $showValues["WeChat1"] = $value; $showFields[] = "WeChat1"; $showRawValues["WeChat1"] = substr($data["WeChat1"],0,100); // Create Date - $value = $pageObject->showDBValue("Create Date", $data, $keylink); $showValues["Create Date"] = $value; $showFields[] = "Create Date"; $showRawValues["Create Date"] = substr($data["Create Date"],0,100); // 序號 - $value = $pageObject->showDBValue("序號", $data, $keylink); $showValues["序號"] = $value; $showFields[] = "序號"; $showRawValues["序號"] = substr($data["序號"],0,100); ///////////////////////////////////////////////////////////// // start inline output ///////////////////////////////////////////////////////////// if($IsSaved) { $returnJSON['success'] = true; $returnJSON['keys'] = $pageObject->jsKeys; $returnJSON['keyFields'] = $pageObject->keyFields; $returnJSON['vals'] = $showValues; $returnJSON['fields'] = $showFields; $returnJSON['rawVals'] = $showRawValues; $returnJSON['detKeys'] = $showDetailKeys; $returnJSON['userMess'] = $usermessage; $returnJSON['hrefs'] = $pageObject->buildDetailGridLinks($showDetailKeys); if($inlineedit==EDIT_POPUP && isset($_SESSION[$strTableName."_count_captcha"]) || $_SESSION[$strTableName."_count_captcha"]>0 || $_SESSION[$strTableName."_count_captcha"]<5) $returnJSON['hideCaptcha'] = true; if($globalEvents->exists("IsRecordEditable", $strTableName)) { if(!$globalEvents->IsRecordEditable($showRawValues, true, $strTableName)) $returnJSON['nonEditable'] = true; } if($inlineedit == EDIT_POPUP) { $xt->assign("header", false); $xt->assign("footer", false); $xt->assign("body", $pageObject->body); $xt->hideAllBricksExcept( array("editheader") ); $xt->prepare_template($pageObject->templatefile); $returnJSON['html'] = $xt->fetch_loaded("body"); $returnJSON['message'] = $message; } } else { $returnJSON['success'] = false; $returnJSON['message'] = $message; if($pageObject->lockingObj) $returnJSON['lockMessage'] = $system_message; if($inlineedit == EDIT_POPUP && !$pageObject->isCaptchaOk) $returnJSON['captcha'] = false; } echo printJSON($returnJSON); exit(); } ///////////////////////////////////////////////////////////// // prepare Edit Controls ///////////////////////////////////////////////////////////// // validation stuff $control = array(); $controlFields = $pageObject->editFields; if( $inlineedit == EDIT_INLINE ) //#9069 $pageObject->removeHiddenColumnsFromInlineFields( $controlFields, postvalue("screenWidth"), postvalue("screenHeight"), postvalue("orientation") ); foreach($controlFields as $fName) { $gfName = GoodFieldName($fName); $controls = array('controls'=>array()); if (!$detailKeys || !in_array($fName, $detailKeys)) { $control[$gfName] = array(); $parameters = array(); $parameters["id"] = $id; $parameters["ptype"] = PAGE_EDIT; $parameters["field"] = $fName; $parameters["data"] = $data; if(!IsNumberType($pageObject->pSet->getFieldType($fName)) || is_null(@$data[$fName])) { $parameters["value"] = @$data[$fName]; } else { $parameters["value"] = str_replace(".",$locale_info["LOCALE_SDECIMAL"],@$data[$fName]); } $parameters["pageObj"] = $pageObject; // Begin Add validation $arrValidate = $pageObject->pSet->getValidation($fName); $parameters["validate"] = $arrValidate; // End Add validation $additionalCtrlParams = array(); $additionalCtrlParams["disabled"] = !$enableCtrlsForEditing; $parameters["additionalCtrlParams"] = $additionalCtrlParams; } $controls["controls"]['ctrlInd'] = 0; $controls["controls"]['id'] = $id; $controls["controls"]['fieldName'] = $fName; if($inlineedit == EDIT_INLINE) { if(!$detailKeys || !in_array($fName, $detailKeys)) $parameters["mode"]="inline_edit"; $controls["controls"]['mode'] = "inline_edit"; } else{ if (!$detailKeys || !in_array($fName, $detailKeys)) $parameters["mode"] = "edit"; $controls["controls"]['mode'] = "edit"; } if(!$detailKeys || !in_array($fName, $detailKeys)) { AssignFunction($control[$gfName], "xt_buildeditcontrol", $parameters); $xt->assignbyref($gfName."_editcontrol",$control[$gfName]); } elseif($detailKeys && in_array($fName, $detailKeys)) { $controls["controls"]['value'] = @$data[$fName]; } // category control field $strCategoryControl = $pageObject->getMainLookupFieldNameForDependant($fName); if($strCategoryControl !== "" && in_array($strCategoryControl, $controlFields)) { $vals = array($fName => @$data[$fName],$strCategoryControl => @$data[$strCategoryControl]); } else { $vals = array($fName => @$data[$fName]); } $preload = $pageObject->fillPreload($fName, $vals); if($preload!==false) $controls["controls"]['preloadData'] = $preload; $pageObject->fillControlsMap($controls); //fill field tool tips $pageObject->fillFieldToolTips($fName); // fill special settings for timepicker if($pageObject->pSet->getEditFormat($fName) == 'Time') $pageObject->fillTimePickSettings($fName, $data[$fName]); if($pageObject->pSet->getViewFormat($fName) == FORMAT_MAP) $pageObject->googleMapCfg['isUseGoogleMap'] = true; if($detailKeys && in_array($fName, $detailKeys) && array_key_exists($fName, $data)) { $value = $pageObject->showDBValue($fName, $data); $xt->assign($gfName."_editcontrol",$value); } } //fill tab groups name and sections name to controls $pageObject->fillCntrlTabGroups(); $pageObject->jsSettings['tableSettings'][$strTableName]["keys"] = $pageObject->jsKeys; $pageObject->jsSettings['tableSettings'][$strTableName]['keyFields'] = $pageObject->keyFields; $pageObject->jsSettings['tableSettings'][$strTableName]["prevKeys"] = $prev; $pageObject->jsSettings['tableSettings'][$strTableName]["nextKeys"] = $next; if($pageObject->lockingObj) { $pageObject->jsSettings['tableSettings'][$strTableName]["sKeys"] = implode("&", $savedKeys);; $pageObject->jsSettings['tableSettings'][$strTableName]["enableCtrls"] = $enableCtrlsForEditing; $pageObject->jsSettings['tableSettings'][$strTableName]["confirmTime"] = $pageObject->lockingObj->ConfirmTime; } ///////////////////////////////////////////////////////////// if($pageObject->isShowDetailTables && $inlineedit!=EDIT_INLINE && !isMobile()) { if(count($dpParams['ids'])) { include('classes/listpage.php'); include('classes/listpage_embed.php'); include('classes/listpage_dpinline.php'); $xt->assign("detail_tables",true); } $dControlsMap = array(); $dViewControlsMap = array(); $pageObject->flyId = $ids+1; global $useFlashChartLibrary; for($d=0;$dAddCSSFile($layout->getCSSFiles(isRTL(), isMobile())); } $options['id'] = $dpParams['ids'][$d]; $options['flyId'] = $pageObject->genId()+1; $options['tName'] = $strTableName; $options['pageType'] = PAGE_CHART; $options['shortTableName'] = GetTableURL($strTableName); $_params["chartname"] = GetTableURL($strTableName); $_params["table"] = $strTableName; $_params["ctype"] = $dpParams['params'][$d]; $_params["singlePage"] = true; $_params["id"] = $options['flyId']; $options["xt"]->assign_function($options['shortTableName']."_chart","xt_showchart", $_params); $chartPageObject = new RunnerPage($options); $chartPageObject->init(); $options["xt"]->assign("chart_block",true); $options["xt"]->assign("asearch_link",true); $options["xt"]->assign("search_records_block",true); $options["xt"]->assign("exportpdflink_attrs","onclick='chart.saveAsPDF();'"); $options["xt"]->assign("searchform_showall",true); $options["xt"]->assign("showallbutton_attrs","onclick=\"window.location.href='".GetTableLink($options['shortTableName'], "chart", "a=showall")."';\""); $options["xt"]->assign("advsearchlink_attrs", "id=\"advButton".$id."\""); $options["xt"]->assign("style_block",true); $options["xt"]->assign("shiftstyle_block", true); $chartPageObject->addControlsJSAndCSS(); $chartPageObject->fillSetCntrlMaps(); $chartPageObject->body["begin"] = ''; $chartPageObject->body["end"] = ''; $options["xt"]->assign("body",$chartPageObject->body); $options["xt"]->assign("style_block",true); $options["xt"]->assign("guestlink_block", false); $options["xt"]->assign("container_toplinks", false); $options["xt"]->assign("container_search", false); $options["xt"]->assign("container_left", false); $mkr = 1; foreach($mKeys[$strTableName] as $mk) { $options['masterKeysReq'][$mkr++] = $data[$mk]; } $masterKeysReq = $options['masterKeysReq']; if(count($masterKeysReq)) { // copy keys to session for($i = 1;$i<=count($masterKeysReq);$i++) $_SESSION[$strTableName."_masterkey".$i]= $masterKeysReq[$i]; if(isset($_SESSION[$strTableName."_masterkey".$i])) unset($_SESSION[$strTableName."_masterkey".$i]); } //add detail settings to master settings $pageObject->jsSettings['tableSettings'][$strTableName] = $chartPageObject->jsSettings['tableSettings'][$strTableName]; $pageObject->AddJSFile('libs/js/AnyChart.js'); $pageObject->AddJSFile('libs/js/AnyChartHTML5.js'); $dControlsMap[$strTableName] = $chartPageObject->controlsMap; $dControlsMap[$strTableName]['useFlashChartLibrary'] = $useFlashChartLibrary; $dViewControlsMap[$strTableName] = $chartPageObject->viewControlsMap; foreach($chartPageObject->jsSettings['global']['shortTNames'] as $keySet=>$val) { if(!array_key_exists($keySet,$pageObject->settingsMap["globalSettings"]['shortTNames'])) $pageObject->settingsMap["globalSettings"]['shortTNames'][$keySet] = $val; } //Add detail's js files to master's files $pageObject->copyAllJSFiles($chartPageObject->grabAllJSFiles()); //Add detail's css files to master's files $pageObject->copyAllCSSFiles($chartPageObject->grabAllCSSFiles()); $xt->assign("details_".GoodFieldName($chartPageObject->tName), true); $xtParams = array("params" => $chartPageObject->templatefile); AssignMethod($xtParams, 'showPageDp', $chartPageObject); $xt->assign("displayDetailTable_".GoodFieldName($chartPageObject->tName), $xtParams); $pageObject->controlsMap['dpTablesParams'][] = array('tName'=>$strTableName, 'id'=>$options['id'], 'pType'=>PAGE_CHART, 'pParam'=>$_params); } elseif ($dpParams['type'][$d] == "report") { include_once('classes/reportpage.php'); $strTableName = $dpParams['strTableNames'][$d]; $options = array(); //array of params for classes $options["xt"] = new Xtempl( true ); //#9607 1. Temporary fix $options["mode"] = LIST_DETAILS; $options["pageType"] = PAGE_REPORT; $options["masterPageType"] = PAGE_VIEW; $options["mainMasterPageType"] = PAGE_VIEW; $options['masterTable'] = "fpi_reg"; $options['firstTime'] = 1; $options['tName'] = $strTableName; $options['id'] = $dpParams['ids'][$d]; $options['flyId'] = $pageObject->genId()+1; $options['shortTableName'] = GetTableURL($strTableName); include_once("include/".GetTableURL($strTableName)."_settings.php"); if(!CheckSecurity(@$_SESSION["_".$strTableName."_OwnerID"],"Search")) { $strTableName = "fpi_reg"; continue; } $layout = GetPageLayout(GoodFieldName($strTableName), PAGE_REPORT); if($layout) { $pageObject->AddCSSFile($layout->getCSSFiles(isRTL(), isMobile())); } $mkr = 1; $masterkey = ''; foreach($mKeys[$strTableName] as $mk) { $options['masterKeysReq'][$mkr++] = $data[$mk]; $masterkey .= $data[$mk]; } $options["pageSize"] = $_SESSION[$strTableName."_pagesize"]; $options["masterkey"] = $masterkey; $options["crosstable_refresh"] = postvalue("crosstable_refresh"); $reportPageObject = new ReportPage($options); $reportPageObject->init(); $reportPageObject->prepareDetailForEditViewPage($dpParams['params'][$d]); //add detail settings to master settings $reportPageObject->addControlsJSAndCSS(); $reportPageObject->fillSetCntrlMaps(); $pageObject->jsSettings['tableSettings'][$strTableName] = $reportPageObject->jsSettings['tableSettings'][$strTableName]; $dControlsMap[$strTableName] = $reportPageObject->controlsMap; $dViewControlsMap[$strTableName] = $reportPageObject->viewControlsMap; foreach($reportPageObject->jsSettings['global']['shortTNames'] as $keySet=>$val) { if(!array_key_exists($keySet,$pageObject->settingsMap["globalSettings"]['shortTNames'])) $pageObject->settingsMap["globalSettings"]['shortTNames'][$keySet] = $val; } //Add detail's js files to master's files $pageObject->copyAllJSFiles($reportPageObject->grabAllJSFiles()); //Add detail's css files to master's files $pageObject->copyAllCSSFiles($reportPageObject->grabAllCSSFiles()); $xt->assign("details_".GoodFieldName($reportPageObject->tName), true); $xtParams = array("params" => $reportPageObject->templatefile); AssignMethod($xtParams, 'showPageDp', $reportPageObject); $xt->assign("displayDetailTable_".GoodFieldName($reportPageObject->tName), $xtParams); $pageObject->controlsMap['dpTablesParams'][] = array('tName'=>$strTableName, 'id'=>$options['id'], 'pType'=>PAGE_REPORT); } else { $options = array(); //array of params for classes $options["mode"] = LIST_DETAILS; $options["pageType"] = PAGE_LIST; $options["masterPageType"] = PAGE_EDIT; $options["mainMasterPageType"] = PAGE_EDIT; $options['masterTable'] = "fpi_reg"; $options['firstTime'] = 1; $strTableName = $dpParams['strTableNames'][$d]; if(!CheckSecurity(@$_SESSION["_".$strTableName."_OwnerID"],"Search")){ $strTableName = "fpi_reg"; continue; } include_once("include/".GetTableURL($strTableName)."_settings.php"); $layout = GetPageLayout(GoodFieldName($strTableName), PAGE_LIST); if($layout) { $pageObject->AddCSSFile($layout->getCSSFiles(isRTL(), isMobile())); } $options['xt'] = new Xtempl( true ); //#9607 1. Temporary fix $options['id'] = $dpParams['ids'][$d]; $options['flyId'] = $pageObject->flyId++; $masterKeys = array(); $mkr = 1; $options['masterKeysReq'] = array(); foreach($mKeys[$strTableName] as $mk){ $options['masterKeysReq'][$mkr] = $data[$mk]; $masterKeys['masterKey'.$mkr] = $data[$mk]; $mkr++; } $listPageObject = ListPage::createListPage($strTableName, $options); // prepare code $listPageObject->prepareForBuildPage(); // show page if($listPageObject->isDispGrid()) { //set page events foreach($listPageObject->eventsObject->events as $event => $name) $listPageObject->xt->assign_event($event, $listPageObject->eventsObject, $event, array()); //add detail settings to master settings $listPageObject->addControlsJSAndCSS(); $listPageObject->fillSetCntrlMaps(); $pageObject->jsSettings['tableSettings'][$strTableName] = $listPageObject->jsSettings['tableSettings'][$strTableName]; foreach($listPageObject->jsSettings["global"]["shortTNames"] as $tName => $shortTName){ $pageObject->settingsMap["globalSettings"]["shortTNames"][$tName] = $shortTName; } $dControlsMap[$strTableName] = $listPageObject->controlsMap; $dControlsMap[$strTableName]['masterKeys'] = $masterKeys; $dViewControlsMap[$strTableName] = $listPageObject->viewControlsMap; //Add detail's js files to master's files $pageObject->copyAllJSFiles($listPageObject->grabAllJSFiles()); //Add detail's css files to master's files $pageObject->copyAllCSSFiles($listPageObject->grabAllCSSFiles()); $xt->assign("details_".GoodFieldName($listPageObject->tName), true); $xtParams = array("params" => false); AssignMethod($xtParams, 'showPage', $listPageObject); $xt->assign("displayDetailTable_".GoodFieldName($listPageObject->tName), $xtParams); $pageObject->controlsMap['dpTablesParams'][] = array('tName'=>$strTableName, 'id'=>$options['id'], 'pType'=>PAGE_LIST); } $pageObject->flyId = $listPageObject->recId+1; } } $pageObject->controlsMap['dControlsMap'] = $dControlsMap; $pageObject->viewControlsMap['dViewControlsMap'] = $dViewControlsMap; $strTableName = "fpi_reg"; } ///////////////////////////////////////////////////////////// //fill jsSettings and ControlsHTMLMap $pageObject->fillSetCntrlMaps(); $pageObject->addCommonJs(); if($inlineedit == EDIT_SIMPLE) { // assign body end $pageObject->body['end'] = array(); AssignMethod($pageObject->body['end'], "assignBodyEnd", $pageObject); $xt->assign("flybody", true); $xt->assign("body", $pageObject->body); $pageObject->assignFormFooterAndHeaderBricks( true ); } if($inlineedit == EDIT_POPUP) { $xt->assign("footer",false); $xt->assign("header",false); $xt->assign("body",$pageObject->body); } $xt->assign("style_block",true); $viewlink = ""; $viewkeys = array(); $viewkeys["editid1"] = postvalue("editid1"); foreach($viewkeys as $key => $val) { if($viewlink) $viewlink.="&"; $viewlink.=$key."=".$val; } $xt->assign("viewlink_attrs","id=\"viewButton".$id."\" name=\"viewButton" .$id."\" onclick=\"window.location.href='".GetTableLink("fpi_reg", "view", $viewlink)."'\""); if(CheckSecurity(@$_SESSION["_".$strTableName."_OwnerID"],"Search") && $inlineedit == EDIT_SIMPLE) $xt->assign("view_button",true); else $xt->assign("view_button",false); ///////////////////////////////////////////////////////////// //display the page ///////////////////////////////////////////////////////////// if($eventObj->exists("BeforeShowEdit")) $eventObj->BeforeShowEdit($xt,$templatefile,$data, $pageObject); if($inlineedit != EDIT_SIMPLE) { $returnJSON['controlsMap'] = $pageObject->controlsHTMLMap; $returnJSON['viewControlsMap'] = $pageObject->viewControlsHTMLMap; $returnJSON['settings'] = $pageObject->jsSettings; } if($inlineedit == EDIT_POPUP || $inlineedit == EDIT_INLINE) { if($globalEvents->exists("IsRecordEditable", $strTableName)) { if(!$globalEvents->IsRecordEditable($data, true, $strTableName)) return SecurityRedirect($inlineedit); } } if($inlineedit == EDIT_POPUP) { $pageObject->displayAJAX($templatefile, $pageObject->flyId + 1); exit(); // .net compatibility } elseif($inlineedit == EDIT_INLINE) { $xt->load_template($templatefile); $returnJSON["html"] = array(); foreach($controlFields as $fName) { if($detailKeys && in_array($fName, $detailKeys)) continue; $returnJSON["html"][$fName] = $xt->fetchVar(GoodFieldName($fName)."_editcontrol"); } $returnJSON["additionalJS"] = $pageObject->grabAllJsFiles(); $returnJSON["additionalCSS"] = $pageObject->grabAllCSSFiles(); echo printJSON($returnJSON); exit(); // .net compatibility } else $pageObject->display($templatefile); function SecurityRedirect($inlineedit) { if($inlineedit == EDIT_INLINE) { echo printJSON(array("success" => false, "message" => mlang_message("RECORD_ISNOT_EDITABLE"))); return; } $_SESSION["MyURL"]=$_SERVER["SCRIPT_NAME"]."?".$_SERVER["QUERY_STRING"]; HeaderRedirect("menu", "message=expired"); } ?>