/** * checks if the fields already exist and if not, creates them */ function _createFields() { $customFields = new CustomFields(); $blogFields = $customFields->getBlogCustomFields($this->_blogInfo->getId()); // check if the checkbox fields exists if (!array_key_exists("password_protected", $blogFields)) { _debug("creating password field!"); $protectedField = new CustomField("password_protected", $this->_locale->tr("password_protected_help"), CUSTOM_FIELD_CHECKBOX, $this->_blogInfo->getId()); $customFields->addCustomField($protectedField); } else { _debug("enabling! password field!"); $protectedField = $blogFields["password_protected"]; $protectedField->setHidden(false); $customFields->updateCustomField($protectedField); } // check if the field for the password exists if (!array_key_exists("password_field", $blogFields)) { _debug("creating pass-word field!"); $passwordField = new CustomField("password_field", $this->_locale->tr("password_field_help"), CUSTOM_FIELD_TEXTBOX, $this->_blogInfo->getId()); $customFields->addCustomField($passwordField); } else { _debug("enabling! pass-word field!"); $passwordField = $blogFields["password_field"]; $passwordField->setHidden(false); $customFields->updateCustomField($passwordField); } return true; }
/** * Carries out the specified action */ function perform() { // fetch the data $this->_fieldName = Textfilter::filterAllHTML($this->_request->getValue("fieldName")); $this->_fieldDescription = Textfilter::filterAllHTML($this->_request->getValue("fieldDescription")); $this->_fieldType = $this->_request->getValue("fieldType"); $this->_fieldSearchable = (int) ($this->_request->getValue("fieldSearchable") != ""); $this->_fieldHidden = (int) ($this->_request->getValue("fieldHidden") != ""); $fields = new CustomFields(); // build the new custom field $customField = new CustomField($this->_fieldName, $this->_fieldDescription, $this->_fieldType, $this->_blogInfo->getId(), $this->_fieldHidden, $this->_fieldSearchable); // throw the pre-event $this->notifyEvent(EVENT_PRE_CUSTOM_FIELD_ADD, array("field" => &$customField)); $result = $fields->addCustomField($customField); if (!$result) { $this->_view = new AdminCustomFieldsListView($this->_blogInfo); $this->_view->setErrorMessage($this->_locale->tr("error_adding_custom_field")); } else { $this->_view = new AdminCustomFieldsListView($this->_blogInfo); $this->_view->setSuccessMessage($this->_locale->pr("custom_field_added_ok", $customField->getName())); // throw the post-event if all went fine $this->notifyEvent(EVENT_POST_CUSTOM_FIELD_ADD, array("field" => &$customField)); } $this->setCommonData(); return true; }