Exemple #1
0
 /**
  * VISTA MIS DATOS
  * @return array|string|Response
  * @throws NotFoundHttpException
  * @throws \Exception
  */
 public function run()
 {
     $user = Yii::$app->getUser();
     $model = $this->findModelUsuario($user->id);
     $model->scenario = Usuarios::ESCENARIO_DATOS_PERFIL;
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($model);
     }
     if ($model->load(Yii::$app->request->post())) {
         $post = Yii::$app->request->post('Usuarios');
         $model->attributes = $post;
         if ($model->validate()) {
             if (!empty($post['clave_nueva'])) {
                 $model->clave_nueva = $post['clave_nueva'];
                 $model->clave = $model->clave_nueva;
                 $model->setPassword($model->clave_nueva);
                 $model->generateAuthKey();
             }
             $model->save(false);
             //
             //                $usuario = Usuarios::find()->where(['idusuario' => $model->idusuario])->one();
             //                $usuario->scenario = Usuarios::ESCENARIO_DATOS_PERFIL;
             //                echo '<pre>';print_r($usuario->attributes);die();
             //                $usuario->attributes = $model->attributes;
             //                $usuario->update(false);
         }
         if (!empty($model->imagen_nombre)) {
             $ruta = ImagenHelper::rutaImagenPerfil();
             $imagen_actual = $ruta . $model->foto;
             $imagen_nueva = $model->idusuario . '_' . uniqid() . '.png';
             $imagen_tmp_original = $ruta . str_replace(".", '-original.', $model->imagen_nombre);
             $imagen_tmp = $ruta . $model->imagen_nombre;
             $data = base64_decode($model->imagen_data);
             file_put_contents($ruta . $imagen_nueva, $data);
             if (file_exists($ruta)) {
                 //actualizo foto nueva
                 //                    $imgModel = Usuarios::find()->where(['idusuario' => $model->idusuario])->one();
                 //                    $imgModel->foto = $imagen_nueva;
                 //                    $imgModel = Usuarios::find()->where(['idusuario' => $model->idusuario])->one();
                 $model->foto = $imagen_nueva;
                 //elimino imagenes fisicas
                 if ($model->update()) {
                     if (file_exists($imagen_actual)) {
                         unlink($imagen_actual);
                     }
                     if (file_exists($imagen_tmp)) {
                         unlink($imagen_tmp);
                     }
                     if (file_exists($imagen_tmp_original)) {
                         unlink($imagen_tmp_original);
                     }
                 }
             }
         }
         return $this->controller->redirect('mis-datos');
     }
     return $this->controller->render('mis-datos', ['model' => $model]);
 }
Exemple #2
0
 private function setRuta()
 {
     $this->ruta = ImagenHelper::rutaImagenPerfil();
 }
 /**
  * Guarda imagen perfil
  * @param Usuarios $user
  * @throws \Exception
  */
 private function guardarImagenPerfil(Usuarios $user)
 {
     $ruta = ImagenHelper::rutaImagenPerfil();
     $tiene_foto = isset($user->foto) ? true : false;
     $imagen_actual = $ruta . $user->foto;
     $imagen_nueva = $user->idusuario . '_' . uniqid() . '.png';
     $data = base64_decode($this->imagen);
     file_put_contents($ruta . $imagen_nueva, $data);
     if (file_exists($ruta)) {
         $user->foto = $imagen_nueva;
         //elimino imagenes fisicas antiguas
         if ($user->update()) {
             if ($tiene_foto & file_exists($imagen_actual)) {
                 unlink($imagen_actual);
             }
         }
     }
 }