/**
  * Display all comments by productId.
  *
  * @return Response
  */
 public function index($productId)
 {
     $product = Product::where('id', $productId)->first();
     $reviews = Review::where('productId', $productId)->get();
     $product["reviews"] = $reviews;
     return $product;
 }
 public function getIndex()
 {
     // 酒のレビューを取得。現在はサンプルのレビューを使用。
     $reviews = Review::where('item_id', 41)->take(4)->get();
     $last_result = array();
     /*-----------------------------------------
      * 形態素解析, 係受け構文解析
      *---------------------------------------*/
     foreach ($reviews as $review) {
         $params = array('type' => 'chunk', 'text' => $review->content);
         $yahoo_result = YahooApi::fetch($params);
         if ($yahoo_result === false) {
             continue;
         }
         $last_result = Chunk::getChunks($yahoo_result, $review->content, $review, $last_result, $review->is_bought);
     }
     /*-----------------------------------------
      * 類義語検索
      *---------------------------------------*/
     foreach ($last_result as $key => $value) {
         $s = explode(',', $value['info']);
         // 名詞が形容詞にかかっている場合
         if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容|動詞)/u', $s[6])) {
             $adje = explode('-', $s[6]);
             // 品詞
             $pos = explode('-', $s[5]);
             // 単語
             $_adje = explode('-', $s[2]);
             // 品詞
             $_pos = explode('-', $s[1]);
             // 単語
             // for ($i = 0; $i < count($_adje); $i++) {
             //     $syno = null;
             //     if (preg_match('/.*?(名詞)/u', $_adje[$i]) && count($_adje) > 1) {
             //         if ($_adje[0] == '名詞' && $_adje[1] == '助動詞') {
             //             $syno = Thesaurus::checkThesaurus($_pos[$i]);
             //             $_ll_result = array();
             //             if ($syno) {
             //                 $_ll_result['text'] = $syno['text'];
             //                 $_ll_result['rayer'] = $syno['rayer'];
             //                 $_ll_result['info'] = $value['info'];
             //                 $ll_result[trim($syno['text'])][] = $_ll_result;
             //             }
             //         }
             //     }
             // }
             for ($i = 0; $i < count($adje); $i++) {
                 $syno = null;
                 if (preg_match('/^(形容|動詞)/u', $adje[$i], $match)) {
                     // 形容詞が含まれていれば
                     if ($match[0] == '形容') {
                         $syno = Thesaurus::checkThesaurus($pos[$i]);
                         if ($syno && $syno->text == '無い') {
                             for ($j = 0; $j < count($_adje); $j++) {
                                 if ($_adje[$j] == '名詞') {
                                     $syno = Thesaurus::checkThesaurus($_pos[$i]);
                                 }
                             }
                         }
                     } else {
                         if ($match[0] == '動詞') {
                             $_syno = Thesaurus::checkThesaurus($pos[$i]);
                             if ($_syno && isset($pos[1])) {
                                 if (in_array($pos[0] . $pos[1], explode(',', $_syno->synonym))) {
                                     $syno = $_syno;
                                 }
                             }
                         }
                     }
                     if (!isset($syno)) {
                         break;
                     }
                     $_ll_result = array();
                     // もし同じような形容詞があれば1つにまとめていく
                     if ($syno) {
                         $_ll_result['text'] = $syno['text'];
                         $_ll_result['rayer'] = $syno['rayer'];
                         $_ll_result['info'] = $value['info'];
                         $ll_result[trim($syno['text'])][] = $_ll_result;
                     }
                 }
             }
         } else {
             if (preg_match('/.*?(副詞)/u', $s[2]) && preg_match('/.*?(名詞)/u', $s[6])) {
                 $adje = explode('-', $s[6]);
                 // 品詞
                 $pos = explode('-', $s[5]);
                 // 単語
                 $_adje = explode('-', $s[2]);
                 // 品詞
                 $_pos = explode('-', $s[1]);
                 // 単語
                 for ($i = 0; $i < count($adje); $i++) {
                     $syno = null;
                     if (preg_match('/.*?(名詞)/u', $adje[$i])) {
                         $syno = Thesaurus::checkThesaurus($pos[$i]);
                         $_ll_result = array();
                         if ($syno) {
                             $_ll_result['text'] = $syno['text'];
                             $_ll_result['rayer'] = $syno['rayer'];
                             $_ll_result['info'] = $value['info'];
                             $ll_result[trim($syno['text'])][] = $_ll_result;
                         }
                     }
                 }
             }
         }
     }
     echo '<pre>';
     var_dump($ll_result);
     echo '</pre>';
 }
 public function delete($user_id = NULL)
 {
     $user = $this->prepare_user($user_id);
     if ($this->ion_auth->is_admin($user_id)) {
         $url = 'manage_admins';
     } elseif ($this->ion_auth->is_manager($user_id)) {
         $url = 'manage_accounts';
     } else {
         $url = 'admin_users';
     }
     if ($this->ion_auth->is_collaborator($user_id)) {
         $this->c_user->delete($user);
     }
     $user_deleted = $this->ion_auth->delete_user($user->id);
     if (!$user_deleted) {
         $this->addFlash(lang('delete_error', [$this->ion_auth->errors()]));
         redirect('admin/admin_users');
     }
     $sender = $this->get('core.mail.sender');
     $sender->sendUserDeleteMail(array('user' => $user));
     $access_token = new Access_token();
     $access_token->where('user_id', $user->id)->get()->delete_all();
     $directory_user = new Directory_User();
     $directory_user->where('user_id', $user->id)->get()->delete_all();
     $facebook_fanpage = new Facebook_Fanpage();
     $facebook_fanpage->where('user_id', $user->id)->get()->delete_all();
     $keyword = new Keyword();
     $keyword->where('user_id', $user->id)->get();
     foreach ($keyword as $k) {
         $keyword_rank = new Keyword_rank();
         $keyword_rank->where('keyword_id', $k->id)->get()->delete_all();
     }
     $keyword->delete_all();
     $media = new Media();
     $media->where('user_id', $user->id)->get()->delete_all();
     $post = new Post();
     $post->where('user_id', $user->id)->get();
     foreach ($post as $p) {
         $post_social = new Post_social();
         $post_social->where('post_id', $p->id)->get()->delete_all();
     }
     $post->delete_all();
     $review = new Review();
     $review->where('user_id', $user->id)->get()->delete_all();
     $reviews_notification = new Reviews_notification();
     $reviews_notification->where('user_id', $user->id)->get()->delete_all();
     $rss_feeds_users = new Rss_feeds_users();
     $rss_feeds_users->where('user_id', $user->id)->get()->delete_all();
     $social_post = new Social_post();
     $social_post->where('user_id', $user->id)->get()->delete_all();
     $social_value = new Social_value();
     $social_value->where('user_id', $user->id)->get()->delete_all();
     $user_additional = new User_additional();
     $user_additional->where('user_id', $user->id)->get()->delete_all();
     $user_feed = new User_feed();
     $user_feed->where('user_id', $user->id)->get()->delete_all();
     $user_timezone = new User_timezone();
     $user_timezone->where('user_id', $user->id)->get()->delete_all();
     $this->addFlash(lang('delete_success'), 'success');
     redirect('admin/' . $url);
 }
 public function make()
 {
     $params = Input::all();
     $id = $params['item-id'];
     // 決定表作成時はmax_execution_timeの制限を外す
     set_time_limit(3000);
     // TODO: ファイル作成する部分。ファイル以外で実現したい
     //$file_name = 'drh.dat';
     $file_name = $id . '.dat';
     $fp = fopen('assets/dat/' . $file_name, 'w');
     // 酒のレビューを取得。現在はサンプルのレビューを使用。
     $reviews = Review::where('item_id', $id)->get();
     $last_result = array();
     /*-----------------------------------------
      * 形態素解析, 係受け構文解析
      *---------------------------------------*/
     foreach ($reviews as $review) {
         $params = array('type' => 'chunk', 'text' => $review->content);
         $yahoo_result = YahooApi::fetch($params);
         if ($yahoo_result === false) {
             continue;
         }
         $last_result = Chunk::getChunks($yahoo_result, $review->content, $review, $last_result, $review->is_bought);
     }
     /*-----------------------------------------
      * 類義語検索
      *---------------------------------------*/
     foreach ($last_result as $key => $value) {
         $s = explode(',', $value['info']);
         // 名詞が形容詞にかかっている場合
         if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容|動詞)/u', $s[6])) {
             $adje = explode('-', $s[6]);
             // 品詞
             $pos = explode('-', $s[5]);
             // 単語
             $_adje = explode('-', $s[2]);
             // 品詞
             $_pos = explode('-', $s[1]);
             // 単語
             for ($i = 0; $i < count($_adje); $i++) {
                 $syno = null;
                 if (preg_match('/.*?(名詞)/u', $_adje[$i]) && count($_adje) > 1) {
                     if ($_adje[0] == '名詞' && $_adje[1] == '助動詞') {
                         $syno = Thesaurus::checkThesaurus($_pos[$i]);
                     }
                     $_ll_result = array();
                     if ($syno) {
                         $_ll_result['text'] = $syno['text'];
                         $_ll_result['rayer'] = $syno['rayer'];
                         $_ll_result['info'] = $value['info'];
                         $ll_result[trim($syno['text'])][] = $_ll_result;
                     }
                 }
             }
             for ($i = 0; $i < count($adje); $i++) {
                 $syno = null;
                 if (preg_match('/^(形容|動詞)/u', $adje[$i], $match)) {
                     // 形容詞が含まれていれば
                     if ($match[0] == '形容') {
                         $syno = Thesaurus::checkThesaurus($pos[$i]);
                         if ($syno && $syno->text == '無い') {
                             for ($j = 0; $j < count($_adje); $j++) {
                                 if ($_adje[$j] == '名詞') {
                                     $syno = Thesaurus::checkThesaurus($_pos[$i]);
                                 }
                             }
                         }
                     } else {
                         if ($match[0] == '動詞') {
                             $_syno = Thesaurus::checkThesaurus($pos[$i]);
                             if ($_syno && isset($pos[1])) {
                                 if (in_array($pos[0] . $pos[1], explode(',', $_syno->synonym))) {
                                     $syno = $_syno;
                                 }
                             }
                         }
                     }
                     if (!isset($syno)) {
                         break;
                     }
                     $_ll_result = array();
                     // もし同じような形容詞があれば1つにまとめていく
                     if ($syno) {
                         $_ll_result['text'] = $syno['text'];
                         $_ll_result['rayer'] = $syno['rayer'];
                         $_ll_result['info'] = $value['info'];
                         $ll_result[trim($syno['text'])][] = $_ll_result;
                     }
                 }
             }
             // for ($i = 0; $i < count($adje); $i++) {
             //     if (preg_match('/.*?(形容)/u', $adje[$i], $match)) { // 形容詞が含まれていれば
             //         $syno = Thesaurus::checkThesaurus($pos[$i]);
             //         $_ll_result = array();
             //         // もし同じような形容詞があれば1つにまとめていく
             //         if ($syno) {
             //             $_ll_result['text']  = $syno['text'];
             //             $_ll_result['rayer'] = $syno['rayer'];
             //             $_ll_result['info']  = $value['info'];
             //             $ll_result[trim($syno['text'])][] = $_ll_result;
             //         }
             //     }
             // }
         } else {
             if (preg_match('/.*?(副詞)/u', $s[2]) && preg_match('/.*?(名詞)/u', $s[6])) {
                 $adje = explode('-', $s[6]);
                 // 品詞
                 $pos = explode('-', $s[5]);
                 // 単語
                 $_adje = explode('-', $s[2]);
                 // 品詞
                 $_pos = explode('-', $s[1]);
                 // 単語
                 for ($i = 0; $i < count($adje); $i++) {
                     $syno = null;
                     if (preg_match('/.*?(名詞)/u', $adje[$i])) {
                         $syno = Thesaurus::checkThesaurus($pos[$i]);
                         $_ll_result = array();
                         if ($syno) {
                             $_ll_result['text'] = $syno['text'];
                             $_ll_result['rayer'] = $syno['rayer'];
                             $_ll_result['info'] = $value['info'];
                             $ll_result[trim($syno['text'])][] = $_ll_result;
                         }
                     }
                 }
             }
         }
     }
     // foreach ($last_result as $key => $value) {
     //     $s = explode(',', $value['info']);
     //     // 名詞が形容詞にかかっている場合
     //     if (preg_match('/.*?(名詞)/u', $s[2]) && preg_match('/.*?(形容)/u', $s[6])) {
     //         $adje = explode('-', $s[6]); // 品詞
     //         $pos = explode('-', $s[5]);  // 単語
     //         $_adje = explode('-', $s[2]); // 品詞
     //         $_pos = explode('-', $s[1]); // 単語
     //         for ($i = 0; $i < count($_adje); $i++) {
     //             if (preg_match('/.*?(名詞)/u', $_adje[$i])) {
     //                 $syno = Thesaurus::checkThesaurus($_pos[$i]);
     //                 $_ll_result = array();
     //                 if ($syno) {
     //                     $_ll_result['text'] = $syno['text'];
     //                     $_ll_result['rayer'] = $syno['rayer'];
     //                     $_ll_result['info'] = $value['info'];
     //                     $ll_result[trim($syno['text'])][] = $_ll_result;
     //                 }
     //             }
     //         }
     //         for ($i = 0; $i < count($adje); $i++) {
     //             if (preg_match('/.*?(形容)/u', $adje[$i])) { // 形容詞が含まれていれば
     //                 $syno = Thesaurus::checkThesaurus($pos[$i]);
     //                 $_ll_result = array();
     //                 // もし同じような形容詞があれば1つにまとめていく
     //                 if ($syno) {
     //                     $_ll_result['text']  = $syno['text'];
     //                     $_ll_result['rayer'] = $syno['rayer'];
     //                     $_ll_result['info']  = $value['info'];
     //                     $ll_result[trim($syno['text'])][] = $_ll_result;
     //                 }
     //             }
     //         }
     //     }
     // }
     /*-----------------------------------------
      * 感性ワードの出現率を検索する
      *---------------------------------------*/
     $all_review_count = $this->review_gestion->where('item_id', '=', $id)->count();
     // 全レビュー件数
     foreach ($ll_result as $key => $value) {
         $review_count = count($ll_result[$key]);
         $review_percents[$key] = $review_count / $all_review_count;
     }
     //        $all_review_count = 0; // 採用したレビュー件数
     //        foreach ($ll_result as $key => $value) {
     //            $review_counts[$key] = count($ll_result[$key]);
     //            $all_review_count += count($ll_result[$key]);
     //        }
     //        foreach ($review_counts as $key => $review_count) {
     //            $review_percents[$key] = $review_count/$all_review_count;
     //        }
     // 形を整える
     foreach ($review_percents as $key => $review_percent) {
         $review_percents[$key] = substr($review_percent * 100, 0, 4);
     }
     /*-----------------------------------------
      * 決定表を作成する
      *---------------------------------------*/
     $drh = Dr::getDRH($ll_result);
     /*-----------------------------------------
      * 属性値を出力する
      *---------------------------------------*/
     //属性値を出力する
     echo "#ATTRS" . PHP_EOL;
     fwrite($fp, "#ATTRS" . PHP_EOL);
     // TODO: ファイルへの書き込み
     foreach ($drh['attrs'] as $key => $val) {
         fwrite($fp, $key . " " . $val . PHP_EOL);
         // TODO: ファイルへ書き込み
         echo $key . " " . $val . PHP_EOL;
     }
     fwrite($fp, PHP_EOL);
     // TODO: ファイルへ書き込み
     echo PHP_EOL;
     /*-----------------------------------------
      * 付加情報の出力
      *---------------------------------------*/
     $si = 1;
     echo "#INFOATTRS" . PHP_EOL;
     fwrite($fp, "#INFOATTRS" . PHP_EOL);
     // TODO: ファイルへ書き込み
     foreach ($drh['drh'] as $key => $val) {
         echo $si . " " . $key;
         fwrite($fp, $si . " " . $key);
         // TODO: ファイルへ書き込み
         foreach ($val as $k => $v) {
             if ($k == 'drc') {
                 echo " " . $v;
                 fwrite($fp, " " . $v);
                 // TODO: ファイルへ書き込み
             } else {
                 if (isset($v['text'])) {
                     echo " " . $k . ":" . implode(',', $v['text']);
                     fwrite($fp, " " . $k . ":" . implode(',', $v['text']));
                     // TODO: ファイルへ書き込み
                 } else {
                     echo " " . "*";
                     fwrite($fp, " " . "*");
                     // TODO: ファイルへ書き込み
                 }
             }
         }
         echo PHP_EOL;
         fwrite($fp, PHP_EOL);
         // TODO: ファイルへ書き込み
         $si++;
     }
     echo PHP_EOL;
     /*-----------------------------------------
      * 決定表の出力
      *---------------------------------------*/
     echo "#DRH" . PHP_EOL;
     fwrite($fp, "#DRH" . PHP_EOL);
     // TODO: ファイルへ書き込み
     $si = 1;
     foreach ($drh['drh'] as $key => $val) {
         echo $si;
         fwrite($fp, $si);
         // TODO: ファイルへ書き込み
         $_sample = array();
         foreach ($val as $k => $v) {
             if ($k == 'drc') {
                 echo " " . $v;
                 fwrite($fp, " " . $v);
                 // TODO: ファイルへ書き込み
                 $dc[] = $v;
             } else {
                 echo " " . $k . $v['atr'];
                 fwrite($fp, " " . $k . $v['atr']);
                 // TODO: ファイルへ書き込み
                 $_sample[] = $k . $v['atr'];
             }
         }
         $sample[] = $_sample;
         echo PHP_EOL;
         fwrite($fp, PHP_EOL);
         // TODO: ファイルへ書き込み
         $si++;
     }
     echo PHP_EOL;
     fwrite($fp, PHP_EOL);
     // TODO: ファイルへ書き込み
     /*-----------------------------------------
      * 決定ルールの算出
      *---------------------------------------*/
     $MODE = "un_appro";
     //un_appro:下近似, up_appro:上近似
     Dr::setData($sample, $dc);
     /*(下/上)近似を求める//--------------------------------*/
     $appro = array();
     switch ($MODE) {
         case "un_appro":
             $appro = Dr::calUNAppro();
             break;
         case "up_appro":
             break;
     }
     /*//下近似を求める-------------------------------------*/
     /*-----------------------------------------
      * 決定行列の作成
      *---------------------------------------*/
     $d_matrix = Dr::getDecisionMatrix($appro, $sample, $dc);
     //決定行列からDR算出
     //注意:決定行列から算出したDRは矛盾を含む
     $drs = Dr::calDR($d_matrix);
     /*-----------------------------------------
      * CI値の算出の作成
      *---------------------------------------*/
     $ci = Dr::getCI($drs);
     /*-----------------------------------------
      * 結果の出力
      *---------------------------------------*/
     echo "#DR" . PHP_EOL;
     fwrite($fp, "#DR" . PHP_EOL);
     // TODO: ファイルへ書き込み
     foreach ($ci as $key => $val) {
         echo "DC:" . $key . PHP_EOL;
         fwrite($fp, "DC:" . $key . PHP_EOL);
         // TODO: ファイルへ書き込み
         foreach ($val as $k => $v) {
             echo $k . " CI=" . sprintf("%0.4f", $v['ci']) . " " . "[" . implode(',', $v['sample']) . "]" . PHP_EOL;
             fwrite($fp, $k . " CI=" . sprintf("%0.4f", $v['ci']) . " " . "[" . implode(',', $v['sample']) . "]" . PHP_EOL);
             // TODO: ファイルへ書き込み
         }
         echo PHP_EOL;
         fwrite($fp, PHP_EOL);
         // TODO: ファイルへ書き込み
     }
     /*-----------------------------------------
      * 共起頻度・強度算出
      *---------------------------------------*/
     $cmat = Match::calMatchCoef($drh['drh']);
     echo "#MATCHING" . PHP_EOL;
     fwrite($fp, "#MATCHING" . PHP_EOL);
     // TODO: ファイルへ書き込み
     foreach ($cmat as $key => $val) {
         echo "DC:" . $key . PHP_EOL;
         fwrite($fp, "DC:" . $key . PHP_EOL);
         // TODO: ファイルへ書き込み
         foreach ($val as $k => $v) {
             echo $k . " j:" . sprintf("%0.4f", $v["jaccard"]) . " d:" . sprintf("%0.4f", $v["daice"]) . " c:" . sprintf("%0.4f", $v["cosine"]) . " s:" . sprintf("%0.4f", $v["simpson"]) . " kl:" . sprintf("%0.4f", $v["kl"]) . PHP_EOL;
             fwrite($fp, $k . " j:" . sprintf("%0.4f", $v["jaccard"]) . " d:" . sprintf("%0.4f", $v["daice"]) . " c:" . sprintf("%0.4f", $v["cosine"]) . " s:" . sprintf("%0.4f", $v["simpson"]) . " kl:" . sprintf("%0.4f", $v["kl"]) . PHP_EOL);
         }
         echo PHP_EOL;
         fwrite($fp, PHP_EOL);
         // TODO: ファイルへ書き込み
     }
     /*-----------------------------------------
      * 感性ワードの出現率の出力(Relative Frequency)
      *---------------------------------------*/
     fwrite($fp, "#RF" . PHP_EOL);
     // TODO: ファイルへ書き込み
     foreach ($review_percents as $key => $review_percent) {
         fwrite($fp, $key . " " . $review_percent . PHP_EOL);
     }
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function ReviewCount($id)
 {
     return Review::where('fr_fl_id', $id)->count();
 }
Exemple #6
0
 public static function getAllRecords()
 {
     $sources = array(Contractor::where('status', '!=', 'deleted')->get(), Review::where('status', '!=', 'deleted')->get(), Service_request::all(), Lead::where('status', '!=', 'deleted')->get(), User::where('status', '!=', 'deleted')->get());
     $sources_array = array();
     $names_arr = array();
     foreach ($sources as $source) {
         $source->last()->latest = 'Latest ' . get_class($source->last());
         foreach ($source as $record) {
             All::formatRecord($record);
         }
         // $source->first()->classname = get_class($source->first());
         array_push($sources_array, json_decode($source, TRUE));
         array_push($names_arr, get_class($source->first()));
     }
     $big_arr = array_merge($sources_array[0], $sources_array[1], $sources_array[2], $sources_array[3], $sources_array[4]);
     // return $names_arr;
     return $big_arr;
 }
 /**
  * Get reviews for rendering reviews.
  *
  * @return array
  */
 public function getReviews($itemId, $reviewItemId, $customerId = NULL)
 {
     global $data;
     global $settings;
     $reviewItems = Review::where('review_item_id', '=', $reviewItemId);
     if ($itemId == NULL) {
         $reviewItems->whereNull('item_id');
     } else {
         $reviewItems->where('item_id', '=', $itemId);
     }
     if ($customerId != NULL) {
         $reviewItems->where('customer_id', '=', $customerId);
     }
     $reviews = $reviewItems->whereNull('deleted_at')->get()->toArray();
     return $reviews;
 }
Exemple #8
0
 public function getShow($id)
 {
     $user = $this->user->findOrFail($id);
     // $userid = Sentry::getUser()->id;
     // var_dump($userid); die();
     $userid = User::findOrFail($id)->id;
     $useremail = User::findOrFail($id)->email;
     // var_dump($userid); die();
     $galleries = Gallery::where('user_id', '=', $userid)->get();
     $credentials = Credential::where('user_id', '=', $userid)->get();
     $reviews = Review::where('to', '=', $useremail)->get();
     // $services =
     // $user = sentry::getUser();
     // var_dump($user); die('here');
     // $user = Sentry::findUserById($id);
     // if(All::checkViewRight($user)):
     // 	return All::checkViewRight($user);
     // endif;
     // return $galleries; die();
     // return $reviews; die('jere');
     return View::make('users.show', compact('user', 'galleries', 'reviews'));
     // return View::make('users.show', compact('user'));
 }
Exemple #9
0
 /**
  * Fetches user reviews from database.
  * 
  * @param  string $name
  * @return Paginator
  */
 public function fetchReviews($id)
 {
     return \Review::where('user_id', $id)->paginate(10);
 }
 public function postUpdate()
 {
     $item_id = Input::get('item_id');
     // TODO: とりあえずすべてのレビューを消去してすべて更新する方法採用。後々訂正
     // 更新するアイテムの取得
     $item = Item::find($item_id);
     $item_code = $item->item_code;
     // 一旦関係のあるレビュー全削除
     Review::where('item_id', '=', $item_id)->delete();
     // 再度取得
     Review::getReviews($item_code, $item_id);
 }
 public function getViewCount($id)
 {
     return Review::where('fr_usr_id', $id)->sum('fr_views');
 }