public function getFieldInput(FlexiTableFieldObject $oField, $oRow) { $sName = $oField->getName(); $aResult = array("#name" => $this->getFieldInputName($sName), "#id" => $this->getFieldInputName($sName) . "_" . FlexiStringUtil::createRandomPassword(8), "#title" => $oField->label, "#required" => $oField->cannull == 1 ? false : true, "#default_value" => $oField->getPHPDefaultValue(), "#dbfield" => $sName, "#insert" => $oField->caninsert, "#update" => $oField->canupdate); switch ($oField->type) { case "string": case "int": case "tinyint": case "smallint": case "mediumint": case "bigint": case "money": case "decimal": case "double": case "email": $aResult["#type"] = "textfield.raw"; break; case "html": $aResult["#type"] = "html.raw"; break; case "text": $aResult["#type"] = "textarea.raw"; break; case "select-text": case "select-tinyint": case "select-smallint": case "select-bigint": case "select-mediumint": case "select-enum": case "select-int": case "select-char": $aResult["#type"] = "select.raw"; $aResult["#options"] = $oField->getOptions(); break; case "check-char": case "check-varchar": case "check-text": $aResult["#type"] = "checkboxes.raw"; $aResult["#options"] = $oField->getOptions(); $aResult["#multiple"] = true; break; case "json": $aResult["#type"] = "textarea.raw"; break; case "date": $aResult["#type"] = "date.raw"; break; case "datetime": $aResult["#type"] = "datetime.raw"; break; case "timestamp": case "timestamp-int": $aResult["#type"] = "datetime.raw"; break; case "monthyear": $aResult["#type"] = "datemonthyear.raw"; break; case "file-varchar": case "file-text": $aResult["#type"] = "file.raw"; $aResult["#savepath"] = $oField->savepath; break; case "image-varchar": case "image-text": $aResult["#type"] = "image.raw"; $aResult["#maximagewidth"] = $this->iMaxImageWidth; $aResult["#savepath"] = $oField->savepath; break; case "multiimage-text": $aResult["#type"] = "multiimage.raw"; $aResult["#maximagewidth"] = $this->iMaxImageWidth; $aResult["#savepath"] = $oField->savepath; $aResult["#uploadcount"] = $oField->uploadcount; $aResult["#uploadseparator"] = $oField->uploadseparator; break; case "hidden": $aResult["#type"] = "hidden.raw"; break; case "html-tiny": $aResult["#type"] = "html.raw"; break; default: throw new Exception("Unsupported type: " . $oField->type); } if (!empty($oField->formsize)) { if (substr($oField->type, 0, 4) == "html" || substr($oField->type, 0, 4) == "text" || substr($oField->type, 0, 4) == "json") { $aSize = explode(",", $oField->formsize); $aResult["#cols"] = $aSize[0]; if (count($aSize) >= 2) { $aResult["#rows"] = $aSize[1]; } } else { //default $aResult["#size"] = $oField->formsize; } } else { } if (isset($oRow[$sName])) { $sValue = $oRow[$sName]; switch ($oField->type) { case "date": case "datetime": //dont need this as actual value is already hidden if ($sValue == "0000-00-00" || $sValue == "0000-00-00 00:00:00") { $sValue = ""; } break; case "timestamp": if (empty($sValue)) { $sValue = ""; } else { $sValue = date("Y-m-d H:i:s", $sValue); } breal; case "check-char": case "check-varchar": case "check-text": $sValue = empty($sValue) ? array() : explode($oField->uploadseparator, $sValue); break; } //switch $aResult["#value"] = $sValue; } return $aResult; }