We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15611
    • 19 Posts
    kenと申します。お世話になっております。
    投稿するカテゴリが違いましたらご指摘ください。

    この度、フォルダ(ドキュメントのID)や、テンプレート変数を引数やチェックボックスによって詳細に検索できるような検索システムを導入したく思っております。
    (例えば、ドキュメントID61を親に持つコンテンツの中から、検索語に該当する語を持っているドキュメントを検索)

    現在検索のできるスニペットとして知っているのは、AjaxSearchとFlexSearchFormなのですが、どちらも上記のような機能は持っていなく、あくまで全体からの検索のみのように思い、自作するしかないのかなと思っているのですが、どなたかそのような機能を持ったスニペット等をご存知の方はいませんでしょうか?
    テンプレート変数や親ドキュメントだけで制限するならdittoでも可能なのでしょうが、検索語という厄介なものを扱うとなるとなかなか簡単にいきません。

    おそらく、チェックボックスの値をPHPなどで受け取り、それでSQL文を実行させ、必要なテーブルからデータを取得するのが早いのかなぁという気がしています。
    "modx_site_content"のparentや"modx_site_tmplvar_contentvalues"のtmplvaridやcontentidとチェックボックスの値を照合し、IDを制限した上で、全文検索や他の手法を使って検索するのが早そうなのですが、もし既にそういったスニペットが存在するようでしたら知りたく思いますので、ご返信いただければ幸いです。

    ちなみに、dittoで呼び出すチャンクなどに検索語などをテンプレート変数の値として受け取れるようなことはできるのでしょうか?
    ditto ←チャンク←テンプレート変数または親のドキュメントID←チェックボックス
            ←[*contents*]←検索語

    のように。(検索語まわりがよく分かっていないので、変な箇所があればご指摘頂ければ幸いです)

    うまく説明できず申し訳ないのですが、何か知っている方がいましたら、ご返信いただければ嬉しく思います。
    宜しくお願いします。


    なかなかMODXを扱いこなせず非常に歯がゆいのですが、うまく使いこなせれば非常に面白いCMSですね。
      • 33014 ☆ A M B ☆
      • 1,231 Posts
      調べてみましたが今のところなさそうですね。たしかに、そのようなことができれば便利そうですが。
        • 15611
        • 19 Posts
        kenです。ご返信有難うございます。
        調べてみましたが今のところなさそうですね。たしかに、そのようなことができれば便利そうですが。
        やはりそうですよね。英語版のスニペットも探しましたが、見当たりませんし。

        GetFieldスニペットによるTVの抽出と、AjaxSearchなどの検索のアルゴリズムをうまく利用すれば、なんとかできそうな気はしますが。
        欲しい機能ではあるので、とりあえずやれるとこまで作ってみようかと思います。

        ご返信有難うございました。