We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 27690
    • 98 Posts
    こんにちは、smallworldです。
    AjaxSearchに関する投稿を見かけ、僕も随分AjaxSearchに苦しめられたため、後続の方の参考になればと思い投稿します。

    AjaxSearchはデフォルトのまま使用すると、現在表示されているページを切り替えず、JavaScriptの動作のみで検索を実行します。これはこれで便利ですが、やはり従来どおりのnamazuライクな検索結果表示の方がみやすい・・・という方も多いと思います。

    AjaxSearchは現在、1.0です(2006・07・24現在)が、このスニペットは設定値にtypoがあることもあり、なかなか適正な設置が出来ません。ここでは、僕が納得がいった設定方法を記述します。


    (1)Ajax Serachの設定手順

    まず、テンプレート・もしくはチャンクなどに、下記のようにオプション含めて記述

    [!AjaxSearch? &AS_showForm=`1` &AS_landing=`結果を表示したい任意のページid` &AS_showResults=`0` &ajaxSearch=`0` &ajaxSearchType=`0` &addJscript=`0` !]

    ここで、検索結果を表示したいページを新しく作成して、コンテンツ部分に下記のように記述

    [!AjaxSearch? &AS_showResults=`1` &AS_showForm=`0` !]

    おそらく、この2点を記述すれば、期待通りの検索がなされると思います。



    (2)解説

    AjaxSerachは、オプションの設定値によって「Ajaxを利用した検索をするかしないか」を選択できます。
    namazuライクな検索結果を得る場合には、基本的に、Ajaxタイプの検索は必要ありません。
    このため、Ajax利用のオプションをのきなみoffにします。

    &AS_landing=`0`
    &AS_showResults=`0`
    &ajaxSearchType=`0`
    &addJscript=`0`

    このうち、曲者が&AS_showResultsです。これは、配布スニペットでは&AS_ShowResultsと、最初のsが大文字のtypoになっているため、このままでは正規なオプション指定が効きません。sを小文字にして指定する必要があります。
    &AS_landingは、検索結果を表示したいドキュメントidを指定します。検索結果出力用に、新しいドキュメントIDを作成すればよいと思います。

    さて、ここまででサイト内検索ができそうなものですが、AjaxSearchの仕様なのか、受け側(検索結果を表示させる予定のサイトIDページ)にも、スニペットの指定をしないとうまく検索結果の出力ができません。

    そこで、受け側に、以下の2つのオプションを指定して書き込みします。

    &AS_showResults=`1`
    ⇒ これは、検索結果を表示するオプションです。上記で指定した、AjaxSearchの検索結果を引き継いで、文字出力してくれます。

    &AS_showForm=`0`
    ⇒ これは、検索用入力フォームを表示しないオプションです。この数字を0に指定しないと、検索結果出力ページにも検索用の入力フォームが表示されるため、操作に支障をきたします。これも、readmeでは"AS_ShowForm"になっているためご注意下さい。



    以上、2点の設定を行ってAjaxSearchを動かすと、おそらくたいていの人は、期待していたnamazuライクな検索が出来ると思います。

    AjaxSearchではまった人は、一度試してみてください。

    すでに設置されている方で、僕の記述に誤りを見つけた方は、ぜひ指摘の程お願いします。


      • 27690
      • 98 Posts
      自己レスです。上記を試したのは
      ・Xampp
      ・ステップサーバー
      ・さくらインターネット

      の3種類になります。
        • 8382
        • 253 Posts
        smallworldさん。
        私の知っている限りajaxSearchTypeというパラメータが見当たらないのですが、何か違うのでしょうか?
        TYPO(AS_ShowResults)は、http://modxcms.com/forums/index.php/topic,3501.0.htmlに報告すると喜ばれます。是非お知らせする事をお勧めします。
          • 27690
          • 98 Posts
          >eastbindさん

          こんにちは、smallworldです。早めの夏休みを貰ったため、ここぞとばかりにMODxを触っています。 grin

          それはともかく、ご指摘のajaxSearchTypeですが、下記レポジトリのAjaxSearch

          http://modxcms.com/AjaxSearch-490.html
          Submitted: Jun 23rd 2006 版

          に説明文が同梱されています。このzipファイルの中に、ajaxSearch_readmeというファイルがあります。ファイルの日付は2006・05・18となっています。その中にオプション値の扱いに関する説明が記されています。以下、引用

          ---------------------------------------------------------------
          &ajaxSearchType [1 | 0] (optional)
          There are two forms of the ajaxSearch.
          0 - The form button is displayed and searching does not start until the
          button is pressed by the user.
          1 - There is no form button, the search is started automatically as the
          user types
          ---------------------------------------------------------------

          オプション値が0なら通常通りのサブミットボタンが出る。1なら、ボタンが出ない仕様になっています。
          確かに、ボタンがなくても検索が出来て面白いのですが、これは文字変換不要の1バイト文字文化圏のための仕様で、変換行為が必要になる日本語環境向けではないな・・・と思いました。


          typoの件は、これから調べてみて、重複投稿がなければ報告しようと思います。
          ご助言ありがとうございました。

            • 8382
            • 253 Posts
            Repositoryの方でしたか。これは申し訳なかったです。
            kyleもバージョンつけないなんて何がなんだか。ぶつぶつ。
            重複が心配なときは、PMを使うのも手かもしれません。