function do_create() { $oForm = $this->form_create(); $res = $oForm->validate(); $data = $res['results']; $errors = $res['errors']; $extra_errors = array(); if (!empty($data['name'])) { $oFieldset = KTFieldset::getByName($data['name']); if (!PEAR::isError($oFieldset)) { // means we're looking at an existing name $extra_errors['name'] = _kt("There is already a fieldset with that name."); } } $is_conditional = false; // FIXME this is inelegant. get it from somewhere else. if ($this->bHaveConditional && $data['fieldset_type'] == 'conditional') { $is_conditional = true; } if (!empty($errors) || !empty($extra_errors)) { return $oForm->handleError(null, $extra_errors); } // we also need a namespace. $temp_name = $data['name']; $namespace = KTUtil::nameToLocalNamespace('fieldsets', $temp_name); $oOldFieldset = KTFieldset::getByNamespace($namespace); while (!PEAR::isError($oOldFieldset)) { $temp_name .= '_'; $namespace = KTUtil::nameToLocalNamespace('fieldsets', $temp_name); $oOldFieldset = KTFieldset::getByNamespace($namespace); } // we now know its a non-conflicting one. // FIXME handle conditional fieldsets, which should be ... a different object. $oFieldset = KTFieldset::createFromArray(array("name" => $data['name'], "description" => $data['description'], "namespace" => $namespace, "mandatory" => false, "isConditional" => $is_conditional, "isGeneric" => $data['generic'], "isComplete" => false, "isComplex" => false, "isSystem" => false)); if (PEAR::isError($oFieldset)) { return $oForm->handleError(sprintf(_kt("Failed to create fieldset: %s"), $oFieldset->getMessage())); } $this->successRedirectTo('edit', _kt("Fieldset created."), sprintf('fFieldsetId=%d', $oFieldset->getId())); }
/** * function to add fieldset entry to fieldsets table * * @return unknown */ function createFieldset() { // create the fieldsets entry $oFieldset = KTFieldset::createFromArray(array('name' => _kt('Tag Cloud'), 'description' => _kt('The following tags are associated with your document'), 'namespace' => 'tagcloud', 'mandatory' => false, 'isConditional' => false, 'isGeneric' => true, 'isComplete' => false, 'isComplex' => false, 'isSystem' => false)); return $oFieldset; }