示例#1
0
 /**
  * Action index
  */
 public function action_index()
 {
     // If there are post
     if ($this->request->post()) {
         // Database transaction start
         Database::instance()->begin();
         // Try
         try {
             // Create
             $division = Tbl::factory('divisions')->create($this->request->post());
             // Check items division directory and create items division directory
             // これはitemを入れるとこを作る
             Cms_Helper::make_dir($division->segment, $this->settings->item_dir);
             // Check images division directory and create images division directory
             // これはimageを入れるとこを作る
             Cms_Helper::make_dir($division->segment, $this->settings->image_dir . '/item');
             // Create division file これはディビジョンテンプレート
             Cms_Helper::set_file($division->segment, $this->settings->front_tpl_dir . '/division', '{{>shape_content}}');
             // Database commit
             Database::instance()->commit();
             // Clear post
             $this->request->post(array());
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('general', 'create_success'));
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('general', 'create_failed'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR, $e->getMessage());
         }
     }
     // Get divisions
     $divisions = Tbl::factory('divisions')->select('divisions.*')->select(array('wrappers.segment', 'wrapper_segment'))->select(array('wrappers.name', 'wrapper_name'))->select(array('wrappers.content_type', 'wrapper_content_type'))->join('wrappers')->on('divisions.wrapper_id', '=', 'wrappers.id')->read()->as_array();
     foreach ($divisions as $division) {
         $division->edit_url = URL::site("{$this->settings->backend_name}/divisions/edit/{$division->id}", 'http');
     }
     // Get wrappers
     $wrappers = Tbl::factory('wrappers')->read()->as_array();
     /**
      * View
      */
     $content_file = Tpl::get_file('index', $this->settings->back_tpl_dir . '/divisions', $this->partials);
     $this->content = Tpl::factory($content_file)->set('divisions', $divisions)->set('wrappers', $wrappers)->set('post', $this->request->post());
 }
示例#2
0
 /**
  * Actuion direct user
  *
  * http://.../.../[backend_name]/directuser?direct_key=[database direct_key]
  * g1072551 -> 876d93b12883451950f7577762279768fd8a38b6e197137cd43666298f3be4f5
  */
 public function action_directuser()
 {
     // if logged in
     if ($this->logged_in_user) {
         throw HTTP_Exception::factory(404);
     }
     // Get direct key from query string
     $direct_key = Cms_Helper::settings('direct_key');
     // If key doesn't passed
     if ($this->request->query('direct_key') != $direct_key) {
         throw HTTP_Exception::factory(404);
     }
     if ($this->request->post()) {
         $data = array('username' => $this->request->post('username'), 'email' => $this->request->post('email'), 'password' => $this->request->post('password'), 'is_block' => 0);
         // Transaction start
         Database::instance()->begin();
         // Try
         try {
             $direct = Tbl::factory('users')->create($data);
             $direct->add_roles('login')->add_roles('direct');
             // Make user dir
             Cms_Helper::make_dir($direct->username, $this->settings->image_dir . '/user');
             // Transaction commit
             Database::instance()->commit();
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('auth', 'directuser_success'));
             // Redirect
             $this->redirect(URL::site($this->settings->backend_name, 'http'));
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Transaction rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('auth', 'directuser_failed'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Transaction rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR, $e->getMessage());
         }
     }
     /**
      * View
      */
     // Get content
     $content_file = Tpl::get_file('directuser', $this->settings->back_tpl_dir . '/auth');
     $this->content = Tpl::factory($content_file)->set('post', $this->request->post());
 }
示例#3
0
 /**
  * Action index
  */
 public function action_index()
 {
     /*
      * build column
      */
     // <editor-fold defaultstate="collapsed" desc="column">
     // Get order
     $query = $this->request->query();
     $order_column = Arr::get($query, 'order_column', 'id');
     $order_direction = Arr::get($query, 'order_direction', 'ASC');
     // Build columns
     $columns = array(array('name' => 'id', 'order_column' => 'id', 'order_direction' => 'ASC'), array('name' => 'role', 'order_column' => 'role', 'order_direction' => 'ASC'), array('name' => 'username', 'order_column' => 'username', 'order_direction' => 'ASC'), array('name' => 'email', 'order_column' => 'email', 'order_direction' => 'ASC'), array('name' => 'is block', 'order_column' => 'is_block', 'order_direction' => 'ASC'), array('name' => ''));
     foreach ($columns as &$column) {
         if (isset($column['order_column'])) {
             if ($column['order_column'] == $order_column) {
                 $column['current'] = TRUE;
                 if ($order_direction == 'ASC') {
                     $column['order_direction'] = 'DESC';
                     $column['current_asc'] = TRUE;
                 } else {
                     $column['order_direction'] = 'ASC';
                     $column['current_desc'] = TRUE;
                 }
             }
             $column['url'] = URL::base(TRUE) . Request::current()->uri() . URL::query(array('order_column' => $column['order_column'], 'order_direction' => $column['order_direction']), FALSE);
         }
     }
     // </editor-fold>
     /*
      * If post create
      */
     // <editor-fold defaultstate="collapsed" desc="If post create">
     $create = array();
     // If there are post create
     if ($this->request->post('create')) {
         // Build data
         $create['username'] = $this->request->post('create_username');
         $create['email'] = $this->request->post('create_email');
         $create['password'] = $this->request->post('create_password');
         $create['avatar'] = $_FILES['create_avatar'];
         $create['is_block'] = $this->request->post('create_is_block') ?: 0;
         // Database transaction start
         Database::instance()->begin();
         // Try
         try {
             // If there is not avatar アバターがない時
             if (!Upload::not_empty($create['avatar'])) {
                 $user = Tbl::factory('users')->create($create)->add_roles('login');
                 // Create users_details
                 $detail_ids = Tbl::factory('details')->read()->as_array(NULL, 'id');
                 foreach ($detail_ids as $detail_id) {
                     Tbl::factory('users_details')->create(array('user_id' => $user->id, 'detail_id' => $detail_id, 'value' => NULL));
                 }
                 // Make user dir
                 Cms_Helper::make_dir($user->username, $this->settings->image_dir . '/user');
             } else {
                 // Get image type
                 $create['ext'] = NULL;
                 switch ($create['avatar']['type']) {
                     case 'image/jpeg':
                         $create['ext'] = '.jpg';
                         break;
                     case 'image/png':
                         $create['ext'] = '.png';
                         break;
                     case 'image/gif':
                         $create['ext'] = '.gif';
                         break;
                     default:
                         $create['ext'] = NULL;
                         break;
                 }
                 // Create
                 $user = Tbl::factory('users')->create($create, 'validate_with_avatar')->add_roles('login');
                 // Make user dir
                 Cms_Helper::make_dir($user->username, $this->settings->image_dir . '/user');
                 // Image division directory // イメージを入れるディレクトリ
                 $dir_path = 'application/' . $this->settings->image_dir . '/user/' . $user->username . '/';
                 // Upload image イメージをアップロード
                 $filename = Upload::save($create['avatar'], 'avatar' . $user->ext, $dir_path);
                 // Build sizes
                 $sizes = array('_v' => explode(',', str_replace(' ', '', $this->settings->image_v)), '_h' => explode(',', str_replace(' ', '', $this->settings->image_h)), '_s' => explode(',', str_replace(' ', '', $this->settings->image_s)));
                 // Resize image 他のサイズを作成
                 foreach ($sizes as $key => $value) {
                     Image::factory($filename)->resize($value[0], $value[1], Image::INVERSE)->crop($value[0], $value[1])->save($dir_path . 'avatar' . $key . $user->ext);
                 }
             }
             // Database commit
             Database::instance()->commit();
             // Clear create
             $create['username'] = NULL;
             $create['email'] = NULL;
             $create['password'] = NULL;
             $create['thumb'] = NULL;
             $create['is_block'] = NULL;
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('general', 'create_success'));
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('general', 'create_failed'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR, $e->getMessage(), NULL, array($e->getFile(), $e->getLine()));
         }
     }
     // </editor-fold>
     /*
      * Get users
      */
     // <editor-fold defaultstate="collapsed" desc="Get users">
     // Get users
     $all_users = Tbl::factory('users')->read()->as_array();
     foreach ($all_users as $all_user) {
         // Get user role
         $role = Tbl::factory('roles_users')->select('roles.*')->join('roles')->on('roles_users.role_id', '=', 'roles.id')->where('roles_users.user_id', '=', $all_user->id)->where('roles.name', '!=', 'login')->read('name');
         $all_user->role = $role ?: 'login';
         // Get avatar
         $all_user->avatar = new stdClass();
         $all_user->avatar->path = URL::site("imagefly", 'http') . '/user/' . $all_user->username . '/';
         $all_user->avatar->file = '/' . 'avatar' . $all_user->ext;
         if (!is_file('application/' . $this->settings->image_dir . '/user/' . $all_user->username . '/' . 'avatar' . $all_user->ext)) {
             $all_user->avatar = FALSE;
         }
     }
     // sort
     foreach ($all_users as $key => $value) {
         $key_id[$key] = $value->{$order_column};
     }
     $sort = $order_direction == 'ASC' ? SORT_ASC : SORT_DESC;
     array_multisort($key_id, $sort, $all_users);
     /*
      * Pagenate
      */
     // <editor-fold defaultstate="collapsed" desc="Pagenate">
     $pagenate = Pgn::factory(array('total_items' => count($all_users), 'items_per_page' => $this->settings->pagenate_items_per_page_for_users, 'follow' => $this->settings->pagenate_items_follow_for_users));
     // Paginated items
     $users = array_slice($all_users, $pagenate->offset, $pagenate->items_per_page);
     // </editor-fold>
     // add edit
     foreach ($users as $user) {
         $user->edit_url = URL::site("{$this->settings->backend_name}/users/edit/{$user->id}", 'http');
     }
     // </editor-fold>
     /**
      * If post update
      */
     // <editor-fold defaultstate="collapsed" desc="If post update">
     if ($this->request->post('update')) {
         $post = $this->request->post();
         // Set post to user
         foreach ($users as $user) {
             $user->is_block = isset($post['is_block'][$user->id]) ?: 0;
         }
         // Database transaction start
         Database::instance()->begin();
         // Try
         try {
             // Update
             foreach ($users as $user) {
                 Tbl::factory('users')->get($user->id)->update(array('is_block' => isset($post['is_block'][$user->id]) ?: 0));
             }
             // Database commit
             Database::instance()->commit();
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('general', 'update_success'));
             // Redirect to wrapper edit
             $this->redirect(URL::site("{$this->settings->backend_name}/users", 'http') . URL::query());
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('general', 'update_success'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR, $e->getMessage());
         }
     }
     // </editor-fold>
     /**
      * View
      */
     // <editor-fold defaultstate="collapsed" desc="View">
     // local_menusの修正
     $this->local_menus = array($this->local_menus['index']);
     $this->partials['pagenate'] = Tpl::get_file('pagenate', $this->settings->back_tpl_dir);
     $content_file = Tpl::get_file('index', $this->settings->back_tpl_dir . '/users', $this->partials);
     $this->content = Tpl::factory($content_file)->set('columns', $columns)->set('users', $users)->set('pagenate', $pagenate)->set('create', $create);
     // </editor-fold>
 }
示例#4
0
 /**
  * Action index
  */
 public function action_index()
 {
     // Get id from param, if there is nothing then throw to 404
     $division_segment = $this->request->param('division');
     if (!$division_segment) {
         throw HTTP_Exception::factory(404);
     }
     $division = Tbl::factory('divisions')->where('segment', '=', $division_segment)->read(1);
     if (!$division) {
         throw HTTP_Exception::factory(404);
     }
     /*
      * Build columns
      */
     // <editor-fold defaultstate="collapsed" desc="Build columns">
     // Get order
     $query = $this->request->query();
     $order_column = Arr::get($query, 'order_column', 'order');
     $order_direction = Arr::get($query, 'order_direction', 'ASC');
     $columns = array('id' => array('name' => 'id', 'order_column' => 'id', 'order_direction' => 'ASC'), 'title' => array('name' => 'title', 'order_column' => 'title', 'order_direction' => 'ASC'), 'segment' => array('name' => 'segment', 'order_column' => 'segment', 'order_direction' => 'ASC'), 'username' => array('name' => 'username', 'order_column' => 'username', 'order_direction' => 'ASC'), 'issued' => array('name' => 'issued', 'order_column' => 'issued', 'order_direction' => 'ASC'), 'created' => array('name' => 'created', 'order_column' => 'created', 'order_direction' => 'ASC'), 'order' => array('name' => 'order', 'order_column' => 'order', 'order_direction' => 'ASC'), 'activate' => array('name' => 'activate', 'order_column' => 'is_active', 'order_direction' => 'ASC'), 'send_comment_is_on' => array('name' => 'send_comment_is_on', 'order_column' => 'send_comment_is_on', 'order_direction' => 'ASC'));
     foreach ($columns as &$column) {
         if (isset($column['order_column'])) {
             if ($column['order_column'] == $order_column) {
                 $column['current'] = TRUE;
                 if ($order_direction == 'ASC') {
                     $column['order_direction'] = 'DESC';
                     $column['current_asc'] = TRUE;
                 } else {
                     $column['order_direction'] = 'ASC';
                     $column['current_desc'] = TRUE;
                 }
             }
             $column['url'] = URL::base(TRUE) . Request::current()->uri() . URL::query(array('order_column' => $column['order_column'], 'order_direction' => $column['order_direction']), FALSE);
         }
     }
     // </editor-fold>
     /*
      * If post create
      */
     // <editor-fold defaultstate="collapsed" desc="If post create">
     $create = array();
     if ($this->request->post('create')) {
         // Build data
         $create['division_id'] = $division->id;
         $create['image_id'] = NULL;
         $create['user_id'] = $this->logged_in_user->id;
         $create['segment'] = $this->request->post('create_segment');
         $create['title'] = $this->request->post('create_title');
         $create['issued'] = $this->request->post('create_issued') ?: Date::formatted_time();
         $create['created'] = Date::formatted_time();
         $create['send_comment_is_on'] = $this->settings->send_comment_is_on_default;
         // Database transaction start
         Database::instance()->begin();
         // Try
         try {
             // Create
             $item = Tbl::factory('items')->create($create);
             // Create items_fields
             $field_ids = Tbl::factory('fields')->where('division_id', '=', $item->division_id)->read()->as_array(NULL, 'id');
             foreach ($field_ids as $field_id) {
                 Tbl::factory('items_fields')->create(array('item_id' => $item->id, 'field_id' => $field_id, 'value' => NULL));
             }
             // Create file
             Cms_Helper::set_file($item->segment, $this->settings->item_dir . '/' . $division->segment, 'item content');
             // make image dir // images dirにitem segment名でディレクトリを作成
             Cms_Helper::make_dir($item->segment, $this->settings->image_dir . '/item/' . $division->segment);
             // Database commit
             Database::instance()->commit();
             // Clear create
             $create['segment'] = NULL;
             $create['title'] = NULL;
             $create['issued'] = NULL;
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('general', 'create_success'));
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('general', 'create_failed'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR);
         }
     }
     // </editor-fold>
     /*
      * Get items
      */
     // <editor-fold defaultstate="collapsed" desc="Get items">
     // authority is edit
     if ($this->logged_in_user->role == 'edit') {
         // Get all items
         $all_items = Tbl::factory('items')->select('items.*')->select('users.username')->join('users', 'LEFT')->on('items.user_id', '=', 'users.id')->where('division_id', '=', $division->id)->where('users.id', '=', $this->logged_in_user->id)->order_by($order_column, $order_direction)->read()->as_array();
     } elseif ($this->logged_in_user->role == 'direct' or $this->logged_in_user->role == 'admin') {
         // Get all items
         $all_items = Tbl::factory('items')->select('items.*')->select('users.username')->join('users', 'LEFT')->on('items.user_id', '=', 'users.id')->where('division_id', '=', $division->id)->order_by($order_column, $order_direction)->read()->as_array();
     } else {
         $all_items = array();
     }
     // Pagenate
     $pagenate = Pgn::factory(array('total_items' => count($all_items), 'items_per_page' => $this->settings->pagenate_items_per_page_for_items, 'follow' => $this->settings->pagenate_items_follow_for_items));
     // Paginated items
     $items = array_slice($all_items, $pagenate->offset, $pagenate->items_per_page);
     foreach ($items as $item) {
         // Get division
         $division = Tbl::factory('divisions')->where('id', '=', $item->division_id)->read(1);
         // Get main image
         $item->main_image = Tbl::factory('images')->where('id', '=', $item->image_id)->read(1);
         if ($item->main_image) {
             $item->main_image->path = URL::site("imagefly", 'http') . '/item/' . $division->segment . '/' . $item->segment . '/';
             $item->main_image->file = '/' . $item->main_image->segment . $item->main_image->ext;
         }
         // Get categories
         $item->categories = Tbl::factory('categories')->select('categories.*')->join('items_categories')->on('categories.id', '=', 'items_categories.category_id')->where('items_categories.item_id', '=', $item->id)->read()->as_array();
         // Get received comments
         $item->received_commnets_count = count(Tbl::factory('received_comments')->where('item_id', '=', $item->id)->read()->as_array(NULL, 'id'));
         // Set to item
         $item->issued = $item->issued ? Date::formatted_time($item->issued, 'Y-n-j h:i') : $item->issued;
         $item->created = $item->created ? Date::formatted_time($item->created, 'Y-n-j h:i') : $item->created;
         $item->summary = Text::auto_p($item->summary);
         $item->edit_url = URL::site("{$this->settings->backend_name}/items/{$division->segment}/edit/{$item->id}", 'http');
         $item->delete_url = URL::site("{$this->settings->backend_name}/items/{$division->segment}/delete/{$item->id}", 'http');
     }
     // </editor-fold>
     /**
      * If post update
      */
     // <editor-fold defaultstate="collapsed" desc="If post update">
     if ($this->request->post('update')) {
         $post = $this->request->post();
         // Set post to item
         foreach ($items as $item) {
             $item->order = isset($post['order'][$item->id]) ? $post['order'][$item->id] : 0;
             $item->is_active = isset($post['is_active'][$item->id]) ? $post['is_active'][$item->id] : 0;
             $item->send_comment_is_on = isset($post['send_comment_is_on'][$item->id]) ? $post['send_comment_is_on'][$item->id] : 0;
         }
         // Database transaction start
         Database::instance()->begin();
         // Try
         try {
             // Update
             foreach ($items as $item) {
                 Tbl::factory('items')->get($item->id)->update(array('order' => isset($post['order'][$item->id]) ? $post['order'][$item->id] : 0, 'is_active' => isset($post['is_active'][$item->id]) ? $post['is_active'][$item->id] : 0, 'send_comment_is_on' => isset($post['send_comment_is_on'][$item->id]) ? $post['send_comment_is_on'][$item->id] : 0));
             }
             // Database commit
             Database::instance()->commit();
             // Add success notice
             Notice::add(Notice::SUCCESS, Kohana::message('general', 'update_success'));
             // Todo::1 取得しなおし?
             $this->redirect(URL::site("{$this->settings->backend_name}/items/{$division->segment}", 'http'));
         } catch (HTTP_Exception_302 $e) {
             $this->redirect($e->location());
         } catch (Validation_Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add validation notice
             Notice::add(Notice::VALIDATION, Kohana::message('general', 'update_success'), NULL, $e->errors('validation'));
         } catch (Exception $e) {
             // Database rollback
             Database::instance()->rollback();
             // Add error notice
             Notice::add(Notice::ERROR, $e->getMessage());
         }
     }
     // </editor-fold>
     // local_menusの修正
     $this->local_menus = array($this->local_menus['index']);
     /**
      * View
      */
     // <editor-fold defaultstate="collapsed" desc="View">
     $this->partials['pagenate'] = Tpl::get_file('pagenate', $this->settings->back_tpl_dir);
     $content_file = Tpl::get_file('index', $this->settings->back_tpl_dir . '/items', $this->partials);
     $this->content = Tpl::factory($content_file)->set('division', $division)->set('columns', $columns)->set('items', $items)->set('create', $create)->set('pagenate', $pagenate);
     // </editor-fold>
 }
示例#5
0
 /**
  * User activate
  *
  * @return object
  * 					query
  * 					success
  * 					invalid
  * 					exception
  */
 public static function activate($get)
 {
     // Build result
     $result = new stdClass();
     $result->query = $get;
     $result->success = FALSE;
     $result->invalid = FALSE;
     $result->exception = FALSE;
     $result->errors = array();
     // Get user activate key
     $activate_key = Arr::get($get, 'activate_key');
     // Get settings
     $settings = Cms_Helper::settings();
     // Database transaction start
     Database::instance()->begin();
     /**
      * Try
      */
     try {
         // If user activate keyがないときはエラー
         if (!$activate_key) {
             throw new Kohana_Exception('user activate key is noting.');
         }
         // ->query()なのでURLデコードいらない!
         // user active key 暗号解除 -> delimiterで分割
         list($author_register_activate_access_key, $username, $email, $password) = explode($settings->author_register_activate_key_delimiter, Encrypt::instance()->decode($activate_key));
         // If アクセスキーが違うときはエラー
         if ($author_register_activate_access_key !== $settings->author_register_activate_access_key) {
             throw new Kohana_Exception('user activate access key is noting.');
         }
         // Create
         $user = Tbl::factory('users')->create(array('username' => $username, 'email' => $email, 'password' => $password, 'is_block' => $settings->author_register_default_is_block))->add_roles('login');
         // Create users_details
         $detail_ids = Tbl::factory('details')->read()->as_array(NULL, 'id');
         foreach ($detail_ids as $detail_id) {
             Tbl::factory('users_details')->create(array('user_id' => $user->id, 'detail_id' => $detail_id, 'value' => NULL));
         }
         // Make user dir
         Cms_Helper::make_dir($user->username, $settings->image_dir . '/user');
         //Cms_Helper::rename_dir($user->username, 'new', $settings->image_dir.'/user');
         //Cms_Helper::delete_dir($user->username, $settings->image_dir.'/user', TRUE);
         // make dir はbackendも!
         /**
          * Set result
          */
         $result->post = array();
         $result->success = TRUE;
         // Database commit
         Database::instance()->commit();
     } catch (Validation_Exception $e) {
         // Database rollback
         Database::instance()->rollback();
         // Result
         $result->invalid = TRUE;
     } catch (Exception $e) {
         // Database rollback
         Database::instance()->rollback();
         // Result
         $result->exception = TRUE;
         // errors
         //$result->errors = array(
         //	'field' => 'system error',
         //	'message' => $e->getMessage(),
         //	'file' => $e->getFile(),
         //	'line' => $e->getLine(),
         //);
     }
     // result set to session
     Session::instance()->set('activate_result', $result);
 }