/** * methods that returns the differents fields of of the model * @param string $field the name of the column of the field * @return html returns an html string for the form */ public function getFormFromField($field, $contextField) { //if the field is in the the database and is available for form , we can include it in the response if (in_array($field, array_keys($this->arrayFields)) && ($this->arrayFields[$field]["isVisibleInForm"] == "true" && $contextField == "ficheContext") || $this->arrayFields[$field]["isFilterVisible"] == "true" && $contextField == "filterContext") { $preValue; //variable that contains the current saved value if it exists if ($this->arrayFields[$field]["key"] != "MUL") { if ($this->arrayFields[$field]["isPictureField"] == "false" && $this->arrayFields[$field]["isFileField"] == "false") { //if it is a small or medium text if (preg_match("#varchar#", $this->arrayFields[$field]["type"])) { if ($this->superReplace(array("varchar" => "", "(" => "", ")" => ""), $this->arrayFields[$field]["type"]) <= 150) { if ($this->arrayFields[$field]["isColorPickerField"] == "true") { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField colorPickerClass " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/>"; } else { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/>"; } } else { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <textarea class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\">" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "</textarea>"; } } //if it is a text if (preg_match("#text#", $this->arrayFields[$field]["type"])) { if ($this->arrayFields[$field]["isRichTextEditorField"] == "true") { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <textarea class=\"formField " . $contextField . " rteClass\" id=\"" . $field . "_s_" . $contextField . "\">" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "</textarea>"; } else { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <textarea class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\">" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "</textarea>"; } } //if it is a number if (preg_match("#int#", $this->arrayFields[$field]["type"])) { if ($this->arrayFields[$field]["isBooleanField"] == "true") { return "<br/><br/><label class=\"cbLabel\">" . $this->arrayFields[$field]["formLabel"] . "</label> <br/> <select class=\"formField " . $contextField . " boolField\" id=\"" . $field . "_s_" . $contextField . "\"><option value=\"0\" " . ($this->isSavedElement && $this->arrayFields[$field]["currentValue"] == 0 ? "selected=\"selected\"" : "") . ">" . $this->arrayFields[$field]["false_label"] . "</option><option value=\"1\" " . ($this->isSavedElement && $this->arrayFields[$field]["currentValue"] == 1 ? "selected=\"selected\"" : "") . ">" . $this->arrayFields[$field]["true_label"] . "</option></select><br/><br/>"; } if ($this->arrayFields[$field]["isDateField"] == "true") { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField " . $contextField . " pickerClass\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? myTools::getDateFromTimeAndCustomFormat($this->arrayFields[$field]["currentValue"], $this->gInfos->getGlobalInfoForNodeAndTable("global_date_format", $this->tableName)) : "") . "\"/>"; } return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/>"; } if (preg_match("#decimal#", $this->arrayFields[$field]["type"])) { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/>"; } if (preg_match("#double#", $this->arrayFields[$field]["type"])) { return "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"text\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/>"; } } else { if ($this->arrayFields[$field]["isPictureField"] == "true") { return "<div id=\"browse" . $field . "\" class=\"uploadField pictureField\">" . $this->arrayFields[$field]["formLabel"] . " <img src=\"medias/images/dl_small.png\"/> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"hidden\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/></div> "; } else { return "<div id=\"browse" . $field . "\" class=\"uploadField fileField\">" . $this->arrayFields[$field]["formLabel"] . " <img src=\"medias/images/dl_small.png\"/> <input class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\" type=\"hidden\" value=\"" . ($this->isSavedElement ? $this->arrayFields[$field]["currentValue"] : "") . "\"/></div> "; } } } else { //we extract the informations in the relation table $sqlChoicesQuery = "SELECT * FROM " . $this->arrayRelations[$field]["assoc_table"] . ""; if ($this->xml->{"" . $field . ""}->displayColumn != "" && $this->xml->{"" . $field . ""}->displayColumn["sortColumn"] != "") { $sqlChoicesQuery .= " ORDER BY " . $this->xml->{"" . $field . ""}->displayColumn["sortColumn"]; } $resultChoices = $this->dbh->query($sqlChoicesQuery); $resultChoices->setFetchMode(PDO::FETCH_ASSOC); $resultChoices = $resultChoices->fetchAll(); //and we do a select list $select = "<label>" . $this->arrayFields[$field]["formLabel"] . "</label> <select class=\"formField " . $contextField . "\" id=\"" . $field . "_s_" . $contextField . "\">"; $select .= "<option value=''>Aucun</option>"; foreach ($resultChoices as $choice) { $selected = ""; //we select the selected value if it is ever saved if ($this->isSavedElement && $this->arrayFields[$field]["currentValue"] == $choice[$this->arrayRelations[$field]["assoc_col"]]) { $selected = "selected=\"selected\""; } //we choose the good value to display , if we have a columns info for the display, it is perfect, else we display the first relation field if (isset($this->arrayFields[$field]["displayColumn"])) { if (count(explode("|", (string) $this->arrayFields[$field]["displayColumn"])) > 1) { $concatDisplay = ""; foreach (explode("|", (string) $this->arrayFields[$field]["displayColumn"]) as $columnConcat) { $concatDisplay .= $choice[$columnConcat] . " "; } $select .= "<option " . $selected . " value=\"" . $choice[$this->arrayRelations[$field]["assoc_col"]] . "\">" . $concatDisplay . "</option>"; } else { $select .= "<option " . $selected . " value=\"" . $choice[$this->arrayRelations[$field]["assoc_col"]] . "\">" . $choice[(string) $this->arrayFields[$field]["displayColumn"]] . "</option>"; } } else { $select .= "<option " . $selected . " value=\"" . $choice[$this->arrayRelations[$field]["assoc_col"]] . "\">" . $choice[$this->arrayRelations[$field]["assoc_col"]] . "</option>"; } } $select .= "</select>"; return $select; } } }
if (count(explode("|", (string) $xml->{"" . $columnName . ""}->displayColumn)) > 1) { $concatDisplay = ""; foreach (explode("|", (string) $xml->{"" . $columnName . ""}->displayColumn) as $columnConcat) { $concatDisplay .= $resultChoices[0][$columnConcat] . " "; } $xmlRetour->text($concatDisplay); } else { if (array_key_exists((string) $xml->{"" . $columnName . ""}->displayColumn, $picturesThumnailColumn)) { $xmlRetour->writeCData("<img src='" . $picturesThumnailColumn[(string) $xml->{"" . $columnName . ""}->displayColumn] . $resultChoices[0][(string) $xml->{"" . $columnName . ""}->displayColumn] . "'/>"); } else { $xmlRetour->text($resultChoices[0][(string) $xml->{"" . $columnName . ""}->displayColumn]); } } } else { if ((string) $xml->{"" . $columnName . ""}->dateField['enabled'] == "true") { $xmlRetour->text(myTools::getDateFromTimeAndCustomFormat($columnValue, $gb->getGlobalInfoForNodeAndTable("global_date_format", $table))); } else { if ((string) $xml->{"" . $columnName . ""}->booleanField['enabled'] == "true") { if ($columnValue == 0) { $xmlRetour->text((string) $xml->{"" . $columnName . ""}->booleanField->boolean_false_label); } if ($columnValue == 1) { $xmlRetour->text((string) $xml->{"" . $columnName . ""}->booleanField->boolean_true_label); } } else { //we return the value $xmlRetour->text($columnValue); } } } }