예제 #1
0
 public function actionBooks($id)
 {
     $user = $this->loadUser($id);
     $orderOptions = array(1 => array("t.last_tr desc NULLS LAST", "По дате последнего перевода от {$user->login}"), 2 => array("t.n_trs desc NULLS LAST", "По количеству версий от {$user->login}"), 3 => array("CASE WHEN book.n_verses <> 0 THEN book.d_vars::float / book.n_verses::float ELSE null END DESC NULLS LAST", "По готовности перевода"), 4 => array("t.since DESC", "По дате вступления в перевод"));
     $statusOptions = array(0 => array("", "все", "не участвует ни в одном переводе"), 1 => array("t.status = 2", "там, где {$user->login} &ndash; модератор", "не модерирует ни один перевод"), 2 => array("book.owner_id = {$user->id}", "там, где {$user->login} &ndash; создатель", "не создал" . $user->sexy() . " ни одного проекта перевода"));
     $order = (int) $_GET["order"];
     if (!isset($orderOptions[$order])) {
         $order = 1;
     }
     $status = (int) $_GET["status"];
     if (!isset($statusOptions[$status])) {
         $status = 0;
     }
     $f = new GroupMember();
     $f->user($user->id)->with("book");
     $c = new CDbCriteria();
     if ($order) {
         $c->order = $orderOptions[$order][0];
     }
     if ($status) {
         $c->addCondition($statusOptions[$status][0]);
     }
     $groups_dp = new CActiveDataProvider($f, array("criteria" => $c, "pagination" => array("pageSize" => 30)));
     // $groups_dp->totalItemCount = Yii::app()->db->createCommand("SELECT COUNT(*) FROM groups WHERE user_id = :user_id")->queryScalar(array(":user_id" => $user->id));
     $this->side_view = array("profile_side" => array("user" => $user, "userinfo" => $user->userinfo), "books_side" => array("orderOptions" => $orderOptions, "order" => $order, "statusOptions" => $statusOptions, "status" => $status));
     $this->render("books", array("user" => $user, "groups_dp" => $groups_dp, "order" => $order, "statusOptions" => $statusOptions, "status" => $status));
 }