2

添付ファイルを検索して、添付文書を検索結果に表示する方法はありますか? 検索結果には、検索テキストが含まれている添付ファイルのみが表示されます。現在、添付ファイルを検索でき、添付ファイルに検索テキストが含まれているページが表示されます。たとえば、Page Home があり、添付ファイルとして myattachment.docx が添付されているとします。myattachment.docx のみに含まれる (ホームページには含まれない) サイト検索で背景を検索テキストとして検索すると、検索結果にホームページが検索結果として表示されます。私が意図しているのは、ホーム ページではなく、結果として Home/ myattachment.docx のようなものを返すことです。マイページにはいくつでも添付できます。

前もって感謝します!

4

1 に答える 1

0

これに関する情報は少しスケッチです。私が使用したドキュメントについては、以下を参照してください。

AppCode (または Old_App_Code) でカスタム グローバル イベント ハンドラーを作成し、それが CMSModule Loader の部分クラスであることを確認します。

カスタム イベント ハンドラーをオーバーライドに追加します。Init()必要なものはDocumentEvents.GetContent.Execute.

送信者オブジェクトは、現在TreeNode検索用にインデックス化されている必要があります。その後、そのノードを使用して関連する添付ファイルにアクセスし、イベント引数e.contentを変更してドキュメント テキストを検索に追加できます。

[CustomDocumentEvents]
public partial class CMSModuleLoader
{
    private class CustomDocumentEventsAttribute : CMSLoaderAttribute
    {
        public override void Init()
        {
            // Assigns custom handlers to the appropriate events
            DocumentEvents.GetContent.Execute += Document_GetContent;
        }

        private void Document_GetContent(object sender, DocumentEventArgs e)
        {
            TreeNode node = sender as TreeNode;
            if (node != null)
            {
                //Note, this is psuedo code, this isnt the way to iterate over TreeNode.Attachments
                foreach( attachment in node.Attachments ) {
                    e.Content += attachment.content;
                }
            }
        }

    }
}

より詳しい情報

バージョン 7 での一般的なカスタム イベントの実装については、 http://devnet.kentico.com/docs/devguide/index.html?event_handlers_overview.htmを参照してください。

バージョン 5 のカスタム検索については、こちらを参照してください http://devnet.kentico.com/Knowledge-Base/Search/How-to-search-for-documents-using-assigned-categor.aspx

バージョン 5 のカスタム検索の例で参照されているバージョン 7 の更新されたイベント名については、http://devnet.kentico.com/Knowledge-Base/API-and-Internals/Custom-Handler-Library-compatibility.aspxを参照してください。

于 2013-09-11T11:46:08.977 に答える