Beispiel #1
0
 public function action_create()
 {
     //POST送信なら
     if (Input::method() == 'POST') {
         //バリデーションの初期化
         $val = Model_Admin::validate('create');
         $val->add_field('password', 'パスワード', 'required|max_length[100]');
         //バリデーションOKなら
         if ($val->run()) {
             //POSTデータを受け取る
             $username = Input::post('username');
             $email = Input::post('email');
             $password = Input::post('password');
             $group = Input::post('group');
             //重複確認
             $username_count = Model_Admin::count(array('where' => array(array('username' => $username))));
             $email_count = Model_Admin::count(array('where' => array(array('email' => $email))));
             //ユーザー名が重複していたら
             if ($username_count > 0) {
                 Session::set_flash('error', 'ユーザー名が重複しています');
                 Response::redirect('admin/create');
             } else {
                 //Eメールアドレスが重複していたら
                 if ($email_count > 0) {
                     Session::set_flash('error', 'Eメールアドレスが重複しています');
                     Response::redirect('admin/create');
                 }
                 //Authのインスタンス化
                 $auth = Auth::instance();
                 //もしユーザー登録されたら
                 if ($auth->create_user($username, $password, $email, $group)) {
                     //登録成功のメッセージ
                     Session::set_flash('success', '<span class="btn btn-primary span8">新規ユーザーの『' . $username . '』を追加しました</span><br>');
                     //indexページへ移動
                     Response::redirect('admin/index');
                 } else {
                     //データが保存されなかったら
                     Session::set_flash('error', '登録されませんでした');
                 }
             }
         }
         //バリデーションNGなら
         Session::set_flash('error', $val->show_errors());
     }
     //POST送信でなければ
     //テーマのインスタンス化
     $this->theme = \Theme::forge();
     //テーマにテンプレートのセット
     $this->theme->set_template('admin/template');
     //テーマのテンプレートにタイトルをセット
     $this->theme->get_template()->set('title', 'ameken.com');
     //テーマのテンプレートにビューとページデータをセット
     $this->theme->get_template()->set('content', $this->theme->view('admin/create'));
     return $this->theme;
 }