/** * checks if the fields already exist and if so, disables them (sets them to be "hidden") */ function _updateFields() { $customFields = new CustomFields(); $blogFields = $customFields->getBlogCustomFields($this->_blogInfo->getId()); // check if the checkbox fields exists if (array_key_exists("password_protected", $blogFields)) { _debug("hiding! password field!"); $protectedField = $blogFields["password_protected"]; $protectedField->setHidden(true); $customFields->updateCustomField($protectedField); } // check if the field for the password exists if (array_key_exists("password_field", $blogFields)) { _debug("hiding! pass-word field!"); $passwordField = $blogFields["password_field"]; $passwordField->setHidden(true); $customFields->updateCustomField($passwordField); } return true; }
/** * Carries out the specified action */ function perform() { // fetch the fields from the request $this->_fieldId = $this->_request->getValue("fieldId"); $this->_fieldName = Textfilter::filterAllHTML($this->_request->getValue("fieldName")); $this->_fieldDescription = Textfilter::filterAllHTML($this->_request->getValue("fieldDescription")); $this->_fieldType = $this->_request->getValue("fieldType"); $this->_fieldSearchable = $this->_request->getValue("fieldSearchable"); $this->_fieldHidden = $this->_request->getValue("fieldHidden"); // and start to update the field $fields = new CustomFields(); $field = $fields->getCustomField($this->_fieldId); // view that we're going to use for all different flows... $this->_view = new AdminCustomFieldsListView($this->_blogInfo); // field couldn't be loaded... if (!$field) { $this->_view->setErrorMessage($this->_locale->tr("error_updating_custom_field")); return false; } // ...update its information... $field->setName($this->_fieldName); $field->setDescription($this->_fieldDescription); $field->setType($this->_fieldType); $field->setHidden($this->_fieldHidden); // fire the pre-event $this->notifyEvent(EVENT_PRE_CUSTOM_FIELD_UPDATE, array("field" => &$field)); // ...and finally the data in the database $result = $fields->updateCustomField($field); // check the result if (!$result) { $this->_view->setErrorMessage($this->_locale->tr("error_updating_custom_field")); } else { $this->_view->setSuccessMessage($this->_locale->pr("custom_field_updated_ok", $field->getName())); // fire the post-event $this->notifyEvent(EVENT_POST_CUSTOM_FIELD_UPDATE, array("field" => &$field)); } $this->setCommonData(); return true; }