/** * Delete custom fields * @param $request * @return unknown_type */ public function execute($request) { $admin = $this->getUser()->hasCredential(Auth::ADMIN_ROLE); if (!$admin) { $this->forward("auth", "unauthorized"); return; } $form = new CustomFieldForm(array(), array(), true); $customFieldsService = $this->getCustomFieldService(); if ($request->isMethod('post')) { $form->bind($request->getParameter($form->getName())); if ($form->isValid()) { $fieldNum = $form->getValue('field_num'); $customField = null; if (isset($fieldNum)) { $customField = $customFieldsService->readCustomField($fieldNum); } if (empty($customField)) { $customField = new CustomFields(); } $customField->setName($form->getValue('name')); $customField->setType($form->getValue('type')); $customField->setScreen($form->getValue('screen')); $customField->setExtraData($form->getValue('extra_data')); $customFieldsService->saveCustomField($customField); $this->getUser()->setFlash('templateMessage', array('success', __(TopLevelMessages::SAVE_SUCCESS))); } } $this->redirect('pim/listCustomFields'); }
/** * Creates a CustomFields object from a resultset row * * @param array $row Resultset row from the database. * @return CustomFields Custom Fields object. */ private static function _createFromRow($row) { $tmp = new CustomFields(); $tmp->setFieldNumber($row[self::DB_FIELDS_NUM]); $tmp->setName($row[self::DB_FIELDS_NAME]); $tmp->setFieldType($row[self::DB_FIELDS_TYPE]); $tmp->setScreen($row[self::DB_FIELDS_SCREEN]); $tmp->setExtraData($row[self::DB_FIELDS_EXTRA_DATA]); return $tmp; }