サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。

dbkaiyu > サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/3 9:41
いつもお世話になっています。

サイト内検索で質問です。
質問は2点です。

<質問1>
検索キーワードを入力するテキストボックスの上に
カテゴリを選択することができるプルダウンがありますが、
このカテゴリの表示非表示はどこからできますか?

<質問2>
また、下記4番の現象は、
意図しないカテゴリが出てくることがあります。

使用しているテーマは、baserCMSサンプルテーマ です。

<これまでの操作と現象>
1:ウィジェットでサイト内検索を追加しました。

2:検索結果から外したいコンテンツがあるため、
  コンテンツ管理→オプション→サイト内検索の検索結果より除外する
  のチェックボックスを入れました。

3:それでも、検索のカテゴリに出てきます。
  カテゴリに表示されているため、
  カテゴリを選択して検索が可能ですが、
  除外するにチェックを入れているためなのか、
  キーワード検索しても検索結果はゼロ件です。

4:まれに、検索ボタンを押すと、
  カテゴリの選択ボックス内のカテゴリが増えます。
  (携帯やスマホのエイリアスが入ってくるようです。)
  

■ BaserCMSのバージョン:4.1.1
■ レンタルサーバー名:Lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ PHPスキル 全くわからな

seto > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/3 10:54
こんにちは

特定のカテゴリを非表示にしたい場合、管理画面で設定出来る箇所が見つからなかったので、ビューファイルで直接非表示にしたいカテゴリを指定する必要がありそうです。

bc_sampleテーマをお使いの場合は以下のファイルの編集を行ってください。
/theme/bc_sample/Elements/widgets/search.php

$folders = $this->BcContents->getContentFolderList($this->request->params['Site']['id'], ['excludeId' => $this->BcContents->getSiteRootId($this->request->params['Site']['id'])]);


と記載されている部分を以下に書き換えることで除外カテゴリの指定が可能です。

$folders = $this->BcContents->getContentFolderList($this->request->params['Site']['id'], ['excludeId' => [1, 2, 3]]);

(※ 1, 2, 3の部分に除外したいカテゴリIDを入れて下さい。)


また、検索カテゴリに使用していないサブサイトのカテゴリが表示されるのは、baserのバグな気がするので調べてみます。
dbkaiyu > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/4 20:03
setoさん、こんばんは。

早速の回答ありがとうございます。

カテゴリIDというのは、
除外したいページの
コンテンツ管理内のタブの「その他」にある、
例えば、下記があるのですが、

コンテンツID:112
実体ID:12

のどちらかでよいでしょうか。

カテゴリがどこから引っ張られてくるかわかってませんが、
制作したサイトでは、フォルダが1つだけなので、
カテゴリは1つという理解してました・・・・・。
IDは1ということなのでしょうか。

なお、教示された、方法で、
IDの部分にどちらを入れても、カテゴリのプルダウン自体が消えてしまいます。

■ BaserCMSのバージョン:4.1.1
■ レンタルサーバー名:Lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ PHPスキル 全くわからな

seto > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/5 10:22
例えば、サービスというフォルダを検索のプルダウンから非表示にしたい場合は、コンテンツ管理ページの「サービス」フォルダの実体IDを指定すると表示されなくなります。

また、プルダウンが消えるということですが、もしかしたらテキストフォームまで消えてませんか?
どうやら、excludeIdが配列形式の時に値を一つしか入れない場合はエラーで検索フォームが表示されなくなるみたいです。


$folders = $this->BcContents->getContentFolderList($this->request->params['Site']['id'], ['excludeId' => [2]]);



$folders = $this->BcContents->getContentFolderList($this->request->params['Site']['id'], ['excludeId' => [1, 2]]);



dbkaiyu > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/5 21:50
こんばんは。seto様。

いつも回答ありがとうございます。

制作したサイトは、
フォルダが1つなので、
実体IDを1つだけ指定しました。
$folders = $this->BcContents->getContentFolderList($this->request->params['Site']['id'], ['excludeId' => [12]]);


そうすると、
カテゴリ選択のプルダウンがなくなるだけで、
検索のテキストボックスは残ります。

前回はIDを1としたのですが、同じ状況でした。

どちらも検索は可能な状態です。
seto様となにかちがうのでしょうか??

■ BaserCMSのバージョン:4.1.1
■ レンタルサーバー名:Lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ PHPスキル 全くわからな

seto > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/6 10:18
編集しているファイルは、
/theme/bc_sample/Elements/widgets/search.php
で間違いないでしょうか

/lib/Baser/Config/theme/bc_sample/Elements/widgets/search.php
を編集しても反映されないのでご注意ください。

また、キャッシュの影響も考えられますので、管理画面のシステムナビからサーバーキャッシュの削除を行ってみて下さい。

あとは、私が使用しているDBはmysqlですので、もしかしたらそこで差異が出ている可能性はありますね。
dbkaiyu > Re: サイト内検索のカテゴリから除外する方法と意図しないカテゴリの表示がある。 @ 2018/4/6 23:53
こんばんは。seto様。

編集しているファイルはテーマフォルダのもので間違いありません。

キャッシュの削除も行っています。

DBの違いで変わる物なのですね。

あと、プラグインで、
サジェストプラグインを入れていました。
これが影響するのでしょうか。

さて、教示いただいたもので、
カテゴリの選択プルダウンは消えたので、
検索がゼロ件になることはなくなりました。

このスレはとりあえず閉じることにします。

意図しないカテゴリ表示については、
なぜか、その後は再現しないので、
再発したら、また投稿しようと思います。

いろいろとありがとうございました。

■ BaserCMSのバージョン:4.1.1
■ レンタルサーバー名:Lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ PHPスキル 全くわからな

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
28 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 28