/** * Analyse an array of field id datas and return the CMS_forms_field DB id associated * * @access private * @param string $fieldIDDatas the encoded field id datas to analyse * @return integer the field id found */ function extractEncodedID($fieldIDDatas) { $fieldIDDatas = CMS_forms_field::decodeFieldIdDatas($fieldIDDatas); $id = false; if (is_array($fieldIDDatas)) { foreach ($fieldIDDatas as $anIDData) { $id = sensitiveIO::isPositiveInteger($anIDData) ? $anIDData : $id; } } if (!$id) { if (is_object($this)) { $this->raiseError("No positive integer id found"); return false; } else { CMS_grandFather::raiseError("No positive integer id found"); return false; } } return $id; }
/** * Get form field by it's id * * @param string $fieldId : the form field id to get * @return CMS_forms_field or false if none found * @access public */ function getFieldById($fieldId) { $field = new CMS_forms_field($fieldId, $this->getID()); if (!$field->hasError()) { return $field; } $this->raiseError('Can\'t find field ID ' . $fieldId . ' for current form ...'); return false; }
$formTags[$aFieldId]->setAttribute("options", $options); $formTags[$aFieldId]->setAttribute("order", $count); $formTags[$aFieldId]->writeToPersistence(); $count++; } } switch ($_POST["cms_action"]) { case "deleteField": if (is_a($formTags[$_POST["deleteField"]], "CMS_forms_field")) { $formTags[$_POST["deleteField"]]->desactivate(); $formTags[$_POST["deleteField"]]->writeToPersistence(); unset($formTags[$_POST["deleteField"]]); } break; case "addField": $newField = new CMS_forms_field('', $_POST["formId"]); $newField->setAttribute("type", $_POST["type_new"]); $newField->setAttribute("label", $_POST["label_new"]); if (isset($_POST["required_new"])) { $newField->setAttribute("required", $_POST["required_new"]); } $newField->writeToPersistence(); //generate unique name $newField->setAttribute("name", md5($_POST["label_new"] . $_POST["type_new"] . @$_POST["required_new"] . microtime())); $aFieldId = $newField->getID(); $formTags[$aFieldId] = $newField; $formTags[$aFieldId]->setAttribute("order", $count++); $formTags[$aFieldId]->writeToPersistence(); break; case "validate": //generate form xhtml code