public function actionAdmin() { $this->layout = 'admin'; $this->setHeaderTitle('User administration'); if (Rays::isPost()) { if (isset($_POST['checked_users'])) { $selected = $_POST['checked_users']; if (is_array($selected)) { $operation = $_POST['operation_type']; foreach ($selected as $id) { switch ($operation) { case "block": User::blockUser($id); break; case "active": User::activateUser($id); break; } } } } } $searchStr = Rays::getParam('search', null); $query = User::find(); if ($name = trim($searchStr)) { $names = preg_split("/[\\s]+/", $name); foreach ($names as $key) { $query = $query->like("name", $key); } } $page = $this->getPage("page"); $pageSize = $this->getPageSize("pagesize", 10); $count = $query->count(); $users = $query->order_desc("id")->order_desc("id")->range($pageSize * ($page - 1), $pageSize); $url = RHtml::siteUrl('user/admin' . ($searchStr != null ? '?search=' . urlencode(trim($searchStr)) : "")); if ($searchStr != null) { $url .= '?search=' . urlencode(trim($searchStr)); } $pager = new RPager('page', $count, $pageSize, $url, $page); $data = ['count' => $count, 'users' => $users, 'pager' => $pager->showPager()]; $this->render('admin', $data, false); }