/** * Crea un registro nuevo * * Siempre viene por POST * Si viene por POST crea un registro * * @return array con el template y valores a renderizar */ public function newAction() { if ($this->values['permisos']['permisosModulo']['IN']) { switch ($this->request["METHOD"]) { case 'POST': //CREAR NUEVO REGISTRO $entidad = $this->request[$this->entity]['Entity']; $idEntidad = $this->request[$this->entity]['IdEntity']; $tipo = $this->request[$this->entity]['Type']; $variables = new CpanVariables('Mod', 'Env', $entidad); $this->varEnvMod = $variables->getValores(); unset($variables); $this->values['varEnvMod'] = $this->varEnvMod; $datos = new CpanDocs(); $datos->bind($this->request['CpanDocs']); $datos->setArrayDoc($this->request['FILES']['documento']); $rules = $this->getRules($this->request[$this->entity]['Type']); switch ($this->request[$this->entity]['Type']) { case 'galery': if ($datos->valida($rules)) { $documento = $datos->getArrayDoc(); $documento['maxWidth'] = $this->varEnvMod['galery']['maxWidthImage']; $documento['maxHeight'] = $this->varEnvMod['galery']['maxHeightImage']; $documento['modoRecortar'] = $this->request['modoRecortar']; $datos->setArrayDoc($documento); $lastId = $datos->create(); if (!$lastId) { $this->values['errores'] = $datos->getErrores(); } // Subir Miniatura if ($lastId and $this->varEnvMod['galery']['generateThumbnail'] == '1') { $thumb = new CpanDocs(); $thumb->bind($this->request['CpanDocs']); $thumb->setBelongsTo($lastId); $documento = $this->request['FILES']['documento']; $documento['maxWidth'] = $this->varEnvMod['galery']['widthThumbnail']; $documento['maxHeight'] = $this->varEnvMod['galery']['heightThumbnail']; $thumb->setArrayDoc($documento); $thumb->setIsThumbnail(1); if ($thumb->valida($rules)) { $lastId = $thumb->create(); } $this->values['errores'] = $thumb->getErrores(); } } else { $this->values['errores'] = $datos->getErrores(); } break; case 'tiny': if ($datos->valida($rules)) { $documento = $datos->getArrayDoc(); $documento['maxWidth'] = $this->varEnvMod['galery']['maxWidthImage']; $documento['maxHeight'] = $this->varEnvMod['galery']['maxHeightImage']; $documento['modoRecortar'] = $this->request['modoRecortar']; $datos->setArrayDoc($documento); $lastId = $datos->create(); if (!$lastId) { $this->values['errores'] = $datos->getErrores(); } } else { $this->values['errores'] = $datos->getErrores(); } break; case 'document': case 'video': case 'audio': if ($datos->valida($rules)) { $lastId = $datos->create(); if (!$lastId) { $this->values['errores'] = $datos->getErrores(); } $this->values['alertas'] = $datos->getAlertas(); //Recargo el objeto para refrescar las propiedas que //hayan podido ser objeto de algun calculo durante el proceso //de guardado. $datos = new CpanDocs($lastId); $this->values['datos'] = $datos; } else { $this->values['datos'] = $datos; $this->values['errores'] = $datos->getErrores(); } break; } return $this->listPopupAction($entidad, $idEntidad, $tipo, $this->request['formato']); break; } } else { return array('template' => '_global/forbiden.html.twig'); } }