Trac : ISearchSourceの使い方

Tracプラグインで簡単な独自の検索用プラグインを作るときは、
ISearchSourceをインプリメントすると簡単です。


http://weekbuild.sakura.ne.jp/trac/を参考にさせて頂きました。


使い方は、
1. ISearchSource をインプリメントする
2. get_search_filters をオーバーライドして、検索条件を追加する
3. get_search_results をオーバーライドして、検索処理を作成する

独自の検索結果画面と条件入力にこだわらなければ、とてもおすすめです。


サンプルコード

# -*- coding: utf-8 -*-

from trac.core import *
from trac.search.api import ISearchSource

class FulltextSearchPlugin(Component):
  implements(ISearchSource)

  # ISearchProvider methods
  def get_search_filters(self, req):
    yield ('Test', u'テスト')

  def get_search_results(self, req, query, filters):
    url = 'test'
    title = 'title'
    date = None
    author = 'test-man'
    detail = ''

    yield(url,title,date,author,detail)


画面と実行結果
trac_plugin
trac_plugin posted by (C)kuma8


現在のポスト数 34 / 100