public function nuevoAction() { $request = $this->getRequest(); if ($request->isPost()) { $post_data = $request->getPost(); $post_files = $request->getFiles(); $entity = new \Empleado(); foreach ($post_data as $key => $value) { if (\EmpleadoPeer::getTableMap()->hasColumn($key) && !empty($value)) { $entity->setByName($key, $value, \BasePeer::TYPE_FIELDNAME); } } //SETIAMOS LA FECHA EN EL FORMATO CORRECTO $empleado_iniciocontrato = date_create_from_format('d/m/Y', $post_data['empleado_iniciocontrato']); $entity->setEmpleadoIniciocontrato($empleado_iniciocontrato); //SETIAMOS LA CONTRASEÑA EN MD5 $entity->setEmpleadoPassword(md5($post_data['empleado_password'])); //SETIAMOS EL STATUS COMO ACTIVO $entity->setEmpleadoEstatus('activo'); $entity->save(); //LA FOTO DEL EMPLEADO if (!empty($post_files['empleado_foto']['name'])) { $upload_folder = '/img/admin/profiles/'; $img_type = $post_files['empleado_foto']['type']; $img_type = explode('/', $img_type); $img_type = $img_type[1]; $img_info = getimagesize($post_files['empleado_foto']['tmp_name']); $img_original = imagecreatefromjpeg($post_files['empleado_foto']['tmp_name']); $max_ancho = 250; $max_alto = 250; list($ancho, $alto) = getimagesize($post_files['empleado_foto']['tmp_name']); //Se calcula ancho y alto de la imagen final $x_ratio = $max_ancho / $ancho; $y_ratio = $max_alto / $alto; //Si el ancho y el alto de la imagen no superan los maximos, //ancho final y alto final son los que tiene actualmente if ($ancho <= $max_ancho && $alto <= $max_alto) { //Si ancho $ancho_final = $ancho; $alto_final = $alto; } elseif ($x_ratio * $alto < $max_alto) { $alto_final = ceil($x_ratio * $alto); $ancho_final = $max_ancho; } else { $ancho_final = ceil($y_ratio * $ancho); $alto_final = $max_alto; } //Creamos una imagen en blanco de tamaño $ancho_final por $alto_final . $tmp = imagecreatetruecolor($ancho_final, $alto_final); //Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp) imagecopyresampled($tmp, $img_original, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho, $alto); //Se destruye variable $img_original para liberar memoria imagedestroy($img_original); //Definimos la calidad de la imagen final $calidad = 95; //Se crea la imagen final en el directorio indicado imagejpeg($tmp, $_SERVER['DOCUMENT_ROOT'] . "/img/admin/profiles/empleado_avatar_" . $entity->getIdempleado() . ".jpg", $calidad); //SETIAMOS LA FOTO $entity->setEmpleadoFoto("/img/admin/profiles/empleado_avatar_" . $entity->getIdempleado() . ".jpg"); $entity->save(); } } //INSTANCIAMOS NUESTRO FORMULARIO $mexico_states = \Shared\GeneralFunction\Geolocation::getMexicoStates(); $form = new \Catalogo\Form\EmpleadoForm($mexico_states); //RETORNAMOS A NUESTRA VISTA $view_model = new ViewModel(); $view_model->setTemplate('admin/catalogo/empleado/nuevo'); $view_model->setVariable('form', $form); return $view_model; }