Files
safekat/ci4/app/Controllers/Profile.php

150 lines
4.8 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Libraries\PasswordHash;
use App\Models\CountriesModel;
use App\Models\UserGroupModel;
use App\Models\Usuarios\UserModel;
class Profile extends BaseController
{
private $user_model;
private $countries_model;
private $id_user;
private $token_user;
function __construct()
{
$this->user_model = new UserModel();
$this->countries_model = new CountriesModel();
$this->id_user = session()->get('id_user');
$this->token_user = session()->get('token');
}
public function index()
{
helper('file');
helper('form');
helper('text');
$data['title'] = [
'module' => lang("App.profile_title"),
'page' => lang("App.profile_subtitle"),
'icon' => 'fas fa-user'
];
$data['breadcrumb'] = [
['title' => lang("App.menu_dashboard"), 'route' => "/home", 'active' => false],
['title' => lang("App.profile_title"), 'route' => "", 'active' => true]
];
$data['btn_return'] = [
'title' => lang("App.global_come_back"),
'route' => '/',
'class' => 'btn btn-dark mr-1',
'icon' => 'fas fa-angle-left'
];
$data['btn_submit'] = [
'title' => lang("App.global_save"),
'route' => '',
'class' => 'btn btn-primary mr-1',
'icon' => 'fas fa-save'
];
$session = session();
$data['obj'] = $this->user_model->where('id_user', $this->id_user)->first();
if (!empty($data['obj']->date_birth)) {
$data['obj']->date_birth = dateFormatWeb($data['obj']->date_birth);
}
$data['country'] = $this->countries_model->select('code,name')->where('data_lang', session()->get('lang') ?? 'en')->findAll();
$file = $this->request->getFile('file');
if (!empty($file)) {
$integration = new Integration();
$allow = ['jpeg', 'jpg', 'gif', 'bmp', 'png'];
$path = 'assets/img/';
$pathRet = '/' . $integration->saveStorage($file, $path, $allow);
if (!empty($pathRet)) {
$this->user_model->save([
'id_user' => $this->id_user,
'picture' => $pathRet
]);
$data['obj']['picture'] = $pathRet;
$session->set('picture', $pathRet);
}
} else {
if (!empty($this->request->getPost())) {
$post = $this->request->getPost();
$image = '';
foreach ($post as $key => $value) {
if (strpos($key, 'image') !== false) {
$image = $value;
}
}
if (!empty($image)) {
$this->user_model->save([
'id_user' => $this->id_user,
'picture' => $image
]);
$data['obj']['picture'] = $image;
$session->set('picture', $image);
}
}
}
echo view(getenv('theme.path') . 'form/profile/index', $data);
}
public function store()
{
$session = session();
helper('form');
$rules = [
'first_name' => 'required',
'last_name' => 'required',
];
$rules_error = [
'first_name' => ['required' => lang("App.profile_rules_first_name_r")],
'last_name' => ['required' => lang("App.profile_rules_last_name_r")],
];
if ($this->validate($rules ?? [], $rules_error ?? [])) {
if (!empty($this->id_user)) {
$this->user_model->save([
'id_user' => $this->id_user,
'first_name' => $this->request->getPost('first_name'),
'last_name' => $this->request->getPost('last_name'),
'address' => $this->request->getPost('address'),
'city' => $this->request->getPost('city'),
'state' => $this->request->getPost('state'),
'country' => $this->request->getPost('country'),
'mobile' => $this->request->getPost('mobile'),
'language' => $this->request->getPost('language')
]);
$session->set('lang', $this->request->getPost('language') ?? 'en');
$session->setFlashdata('sweet', ['success', lang("App.global_alert_save_success")]);
} else {
$session->setFlashdata('sweet', ['error', lang("App.global_alert_save_error")]);
}
} else {
$session->setFlashdata('error', 'error');
return $this->index();
}
return redirect()->to('/profile');
}
}