Skip to content

Instantly share code, notes, and snippets.

@mersy
Last active December 24, 2015 07:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mersy/a4e28a662744dba1a1cd to your computer and use it in GitHub Desktop.
Save mersy/a4e28a662744dba1a1cd to your computer and use it in GitHub Desktop.
// 検索結果ページの場合
if ($("input[name='searchEnable']").val() === "true") {
// URLに検索パラメータがある場合
if (location.search) {
// 検索オプションを開いておく
$("#searchOption").show();
// URLパラメータをデコードして&で分割して配列searchParamsにセット。?は削除。
var searchParams = decodeURIComponent(location.search.replace(/^\?/, "")).split("&");
// HTML上のページタイトルに表示させるものを入れる変数を初期化
var pageTitleItem = {
title: "",
tag: "",
category: ""
};
// 上のpageTitleItemの内容をgetApiEntries()に渡すための変数を初期化
var pageTitle = [];
// 配列searchParamsに入っているパラメータの数だけループ
for (var i = 0, l = searchParams.length; i < l; i++) {
// 配列searchParamsには search=hoge のように = ごと入っているので、=で分割
// 分割した左(パラメータ名)が searchParam[0]、右(値)が searchParam[1] となる。
var searchParam = searchParams[i].split("=");
// 値が「未選択」の場合は次のループへスキップ
if (searchParam[1] === "未選択") {
continue;
}
// パラメータ名によって処理を分ける。それぞれページタイトルに入れる文言にしてpageTitleItemにセット
switch (searchParam[0]) {
// text(キーワード検索)の場合
case "text":
var _words = searchParam[1].replace("+", " ");
params.search = _words;
$("input[name='text']").val(_words);
if (searchParam[1]) {
pageTitleItem.title = "キーワード「" + _words + "」";
}
break;
// カテゴリーの場合
case "category":
params.category = searchParam[1];
$("#categoriesSearch input:radio").each(function(){
if (this.value === searchParam[1]) {
$(this).prop("checked", true);
}
});
pageTitleItem.category = "カテゴリ「" + searchParam[1] + "」";
break;
// タグの場合
case "tag":
params.tag = searchParam[1];
$("#tagsSearch input:radio").each(function(){
if (this.value === searchParam[1]) {
$(this).prop("checked", true);
}
});
pageTitleItem.tag = "タグ「" + searchParam[1] + "」";
break;
}
}
// キーワード検索、カテゴリ絞り込み、タグ絞り込み、それぞれがある場合に上記でタイトル用の文言にした値をpageTitle配列にpush
if (pageTitleItem.title) { pageTitle.push(pageTitleItem.title); }
if (pageTitleItem.category) { pageTitle.push(pageTitleItem.category); }
if (pageTitleItem.tag) { pageTitle.push(pageTitleItem.tag); }
// pageTitle配列を「, 」で連結した文字列にして、siteID、パラメータとともにgetApiEntriesに渡す
getApiEntries (1, params, pageTitle.join(", "));
}
else {
// URLパラメータがセットされていない場合は下記文言を表示
$resultMsg.text("検索条件を指定してください。").show();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment