$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( IsFloatType( $pageObject->pSet->getFieldType($fName) ) && !is_null( @$data[$fName] ) ) { if( $pageObject->pSet->getHTML5InputType( $fName ) == "number" ) { // no thousand delimiters, only dot as decimal delimiter $parameters["value"] = formatNumberForHTML5(@$data[$fName]); } else { $parameters["value"] = str_replace(".", $locale_info["LOCALE_SDECIMAL"], @$data[$fName]); } } else { $parameters["value"] = @$data[$fName]; } $parameters["pageObj"] = $pageObject; // Begin Add validation $arrValidate = $pageObject->pSet->getValidation($fName); $parameters["validate"] = $arrValidate;
/** * Prepare edit controls */ public function prepareEditControls() { global $locale_info; if ($this->mode == EDIT_INLINE) { $fields = $this->editFields; $this->removeHiddenColumnsFromInlineFields($fields, $this->screenWidth, $this->screenHeight, $this->orientation); $this->editFields = $fields; } // prepare values $data = $this->getCurrentRecordInternal(); if ($this->readEditValues) { foreach ($this->editFields as $f) { if (!isset($this->newRecordData[$f])) { continue; } $editFormat = $this->pSet->getEditFormat($f); if ($editFormat != EDIT_FORMAT_DATABASE_FILE && $editFormat != EDIT_FORMAT_DATABASE_IMAGE && $editFormat != EDIT_FORMAT_READONLY) { $data[$f] = $this->newRecordData[$f]; } } } $control = array(); foreach ($this->editFields as $fName) { $gfName = GoodFieldName($fName); $isDetKeyField = in_array($fName, $this->detailKeysByM); $control[$gfName] = array(); $controls = array(); $controls["controls"] = array(); $controls["controls"]['ctrlInd'] = 0; $controls["controls"]['id'] = $this->id; $controls["controls"]['fieldName'] = $fName; $parameters = array(); $parameters["id"] = $this->id; $parameters["ptype"] = PAGE_EDIT; $parameters["field"] = $fName; $parameters["pageObj"] = $this; $parameters["value"] = @$data[$fName]; if (!$isDetKeyField) { if (IsFloatType($this->pSet->getFieldType($fName)) && !is_null(@$data[$fName])) { if ($this->pSet->getHTML5InputType($fName) == "number") { // no thousand delimiters, only dot as decimal delimiter $parameters["value"] = formatNumberForHTML5(@$data[$fName]); } else { $parameters["value"] = str_replace(".", $locale_info["LOCALE_SDECIMAL"], @$data[$fName]); } } $parameters["validate"] = $this->pSet->getValidation($fName); $additionalCtrlParams = array(); $additionalCtrlParams["disabled"] = $this->controlsDisabled; $parameters["additionalCtrlParams"] = $additionalCtrlParams; } $controlMode = $this->mode == EDIT_INLINE ? "inline_edit" : "edit"; $parameters["mode"] = $controlMode; $controls["controls"]['mode'] = $controlMode; if ($this->pSet->isUseRTE($fName) && $this->pSet->isAutoUpdatable($fName)) { $_SESSION[$this->sessionPrefix . "_" . $fName . "_rte"] = GetAutoUpdateValue($fName, PAGE_EDIT); $control[$gfName]["params"]["mode"] = "add"; } if ($isDetKeyField) { $controls["controls"]['value'] = @$data[$fName]; $parameters["extraParams"] = array(); $parameters["extraParams"]["getDetKeyReadOnlyCtrl"] = true; // to the ReadOnly control show the detail key cotnrol's value $this->readOnlyFields[$fName] = $this->showDBValue($fName, $data); } AssignFunction($control[$gfName], "xt_buildeditcontrol", $parameters); $this->xt->assignbyref($gfName . "_editcontrol", $control[$gfName]); // category control field $strCategoryControl = $this->getMainLookupFieldNameForDependant($fName); if (strlen($strCategoryControl) && in_array($strCategoryControl, $this->editFields)) { $vals = array($fName => @$data[$fName], $strCategoryControl => @$data[$strCategoryControl]); } else { $vals = array($fName => @$data[$fName]); } $preload = $this->fillPreload($fName, $vals); if ($preload !== false) { $controls["controls"]['preloadData'] = $preload; } $this->fillControlsMap($controls); $this->fillFieldToolTips($fName); // fill special settings for timepicker if ($this->pSet->getEditFormat($fName) == 'Time') { $this->fillTimePickSettings($fName, $data[$fName]); } if ($this->pSet->getViewFormat($fName) == FORMAT_MAP) { $this->googleMapCfg['isUseGoogleMap'] = true; } } }