Example #1
0
 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);
 }