private function getBooks($project_id, $page = 1) { if (!Session::exists('member')) { Router::redirect('home.index'); } $nb = self::NUMBER_ITEM_PER_PAGE; $member = Session::get('member'); $user = $this->checkUser($member['id'], $member['nickname']); $search = Helper::post('research'); $project = Projects::select()->where('id', $project_id)->andWhere('id_leader', $member['id'])->get(0, 1); if (empty($project)) { Router::url('home.index'); } $project = $project[0]; $book = UsersBook::select()->addFields(['users_book.status' => 'status', 'F.id' => 'id_from', 'F.nickname' => 'nickname_from', 'T.id' => 'id_to', 'T.nickname' => 'nickname_to'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'users_book.id_user_from', '!=', $project->id_client, false), new Condition('WHERE', 'AND', 'users_book.id_user_to', '!=', $project->id_client, false)])->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(($page - 1) * $nb, $nb); $count = UsersBook::select()->addFields(['COUNT(*)' => 'nb_row'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(0, 1)[0]; $max_page = ceil($count->nb_row / $nb); if ($max_page == 0) { $max_page = 1; } $this->set('books', $book); $this->set('max_page', $max_page); $this->set('project', $project); $this->set('user', $user); $this->render('task/detail_user'); }
public function ajaxShow($id) { if (!Groups::check('site', Groups::getAuth('site', 'update_full_admin'))) { return; } $user = Users::find('id', $id); $this->set('url', Router::url('admin:user.update', ['id' => $id])); $this->set('user', $user); $this->set('groups', Groups::findAll()); $this->render('admin/users_spec'); }
private function ajaxSub($id = 0) { if (!Groups::check('site', Groups::getAuth('site', 'update_full_admin'))) { return; } $group = Groups::findOrCreate('id', $id); $get = []; foreach (Groups::$authorization as $k => $v) { if (!isset($get[$k])) { $get[$k] = []; } $name = "auth_{$k}"; foreach ($v as $key => $value) { $get[$k][$key] = $this->isActive($k, $key, $group->{$name}); } $this->set($k, $get[$k]); } if ($group->id == 0) { $url = Router::url('admin:group.insert'); } else { $url = Router::url('admin:group.update', ['id' => $group->id]); } $this->set(['group' => $group, 'url' => $url]); $this->render('admin/groups_spec'); }
public static function redirect($name, $params = []) { if (!headers_sent()) { header('location: ' . Router::url($name, $params)); exit; } }
private function ajaxSub($id = 0) { Users::redirectIf(false); $member = Session::get('member'); $project = Projects::findOrCreate('id', $id); if ($project->id == 0) { $dl = new \DateTime(); $deadline = $dl->format('d/m/Y H:i'); $url = Router::url('task:project.insert'); } else { if ($project->id_leader != $member['id']) { return; } $dl = new \DateTime($project->deadline); $deadline = $dl->format('d/m/Y H:i'); $url = Router::url('task:project.update', ['id' => $id]); } $this->set(['url' => $url, 'deadline' => explode(' ', $deadline), 'project' => $project]); $this->render('task/project_spec'); }