$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;
Exemple #2
0
 /**
  * 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;
         }
     }
 }