. */ namespace SP\Forms; use SP\Core\Acl\ActionsInterface; use SP\Core\Exceptions\ValidationException; use SP\DataModel\CustomFieldDefData; use SP\Http\Request; /** * Class CustomFieldDefForm * * @package SP\Forms */ class CustomFieldDefForm extends FormBase implements FormInterface { /** * @var CustomFieldDefData */ protected $CustomFieldDefData; /** * Validar el formulario * * @param $action * @return bool * @throws \SP\Core\Exceptions\ValidationException */ public function validate($action) { switch ($action) { case ActionsInterface::CUSTOMFIELD_CREATE: case ActionsInterface::CUSTOMFIELD_EDIT: $this->analyzeRequestData(); $this->checkCommon(); break; } return true; } /** * Analizar los datos de la petición HTTP * * @return void */ protected function analyzeRequestData() { $this->CustomFieldDefData = new CustomFieldDefData(); $this->CustomFieldDefData->setCustomfielddefId($this->itemId); $this->CustomFieldDefData->setId($this->itemId); $this->CustomFieldDefData->setName(Request::analyze('name')); $this->CustomFieldDefData->setType(Request::analyze('type', 0)); $this->CustomFieldDefData->setModule(Request::analyze('module', 0)); $this->CustomFieldDefData->setHelp(Request::analyze('help')); $this->CustomFieldDefData->setRequired(Request::analyze('required', false, false, true)); } /** * @throws ValidationException */ protected function checkCommon() { if (!$this->CustomFieldDefData->getName()) { throw new ValidationException(__('Nombre del campo no indicado', false)); } elseif ($this->CustomFieldDefData->getType() === 0) { throw new ValidationException(__('Tipo del campo no indicado', false)); } elseif ($this->CustomFieldDefData->getModule() === 0) { throw new ValidationException(__('Módulo del campo no indicado', false)); } } /** * @return CustomFieldDefData */ public function getItemData() { return $this->CustomFieldDefData; } }