/** * 一覧初期表示 * * @return Response */ public function index($parentTitle) { /* パラメータから詳細データを取得 */ $parentTitle = str_replace(constant('SLA_ESCAPE'), '/', $parentTitle); $results = DB::select("select detail from m_parent_title where parent_title = ?", [$parentTitle]); if (!count($results) == 1) { echo 'error(not found)'; return; } else { $results = $results[0]; } $result = json_decode($results->detail, true); /* 同一タイトルの重複を省いて、カウントする。 同一タイトルチェックは、とりあえずtitleにする。 最終的には、ex_url_firest(リクエストは削除)が使われるのが好ましい。 */ // 初期化 $returns = array(); $uniques = array(); $uniqueKeys = 'title'; // 最新のデータを使いたいので、一旦idで降順ソートさせる array_multisort(array_column($result, 'id'), SORT_DESC, SORT_NUMERIC, $result); foreach ($result as $key => $value) { if (!in_array($value[$uniqueKeys], $uniques)) { $value['cnt'] = 1; array_push($returns, $value); array_push($uniques, $value[$uniqueKeys]); // $url_firstのキー // $uniques[count($returns) - 1 ] = $values['url_first']; } else { // カウンタを増やす $returns[array_search($value[$uniqueKeys], $uniques)]['cnt']++; } } /* 表示用ソート */ $sortKey = Input::get('sort') == 'date' ? 'tweet_date' : 'cnt'; array_multisort(array_column($returns, $sortKey), SORT_DESC, $returns); /* スマホ判定 */ if (requestScopeUtils::requestCheckIsSmartPhone()) { $blade = 'sp_detail'; } else { $blade = 'detail'; } /* 検索引数の初期化 */ $inputs = $array = array("word" => '', "period" => '', "sort" => Input::get('sort')); /* return */ return view($blade, ['inputs' => $inputs, 'results' => $returns, 'parentTitle' => $parentTitle]); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (isset($_SERVER['HTTP_USER_AGENT']) && amtUtils::isSmartPhone($_SERVER['HTTP_USER_AGENT']) || $request->has(requestScopeUtils::SMART_PHONE_KEY)) { requestScopeUtils::set(requestScopeUtils::SMART_PHONE_KEY, 't'); } else { requestScopeUtils::set(requestScopeUtils::SMART_PHONE_KEY, 'f'); } return $next($request); }
/** * @see App\Common\requestScopeUtils::requestCheckIsSmartPhone */ public function testRequestCheckIsSmartPhone() { $key = self::key; $val = self::val; // no smartPhone $this->assertFalse(requestScopeUtils::requestCheckIsSmartPhone()); // smartPhone $_GET[requestScopeUtils::REQUEST_SCOPE][requestScopeUtils::SMART_PHONE_KEY] = "t"; $this->assertTrue(requestScopeUtils::requestCheckIsSmartPhone()); }
/** * 一覧初期表示 * * @return Response */ public function index(Request $request) { /* データ抽出 */ $results = DB::select("select parent_title,count from m_parent_title where parent_title not ilike '%apple music%' order by count desc limit 20"); $results2 = DB::select("select parent_title,count from m_parent_title where parent_title ilike '%apple music%' order by count desc limit 20"); $results_weekly = DB::select("select parent_title,count from m_parent_title_weekly where parent_title not ilike '%apple music%' order by count desc limit 10"); $results_weekly2 = DB::select("select parent_title,count from m_parent_title_weekly where parent_title ilike '%apple music%' order by count desc limit 10"); // 初期表示フォーム $inputs = $array = array("word" => '', "period" => ''); if (requestScopeUtils::requestCheckIsSmartPhone()) { $blade = 'sp_top'; } else { $blade = 'top'; } return view($blade, ['inputs' => $inputs, 'results' => $results, 'results2' => $results2, 'results_weekly' => $results_weekly, 'results_weekly2' => $results_weekly2]); }
/** * 全件検索 * * @return Response */ public function random() { $results = DB::select("select parent_title,count from m_parent_title order by RANDOM() limit 50"); $inputs = $array = array("word" => "", "period" => "", "is_random" => "true"); if (requestScopeUtils::requestCheckIsSmartPhone()) { $blade = 'sp_list'; } else { $blade = 'list'; } return view($blade, ['inputs' => $inputs, 'results' => $results]); }