でカスタム検索フォームを作成します。
カタログツールは、アーキタイプからのreference_catalogと同様に行われます。最も本質的な部分:
from Products.ZCatalog.ZCatalog import ZCatalog
class MemberdataCatalog(UniqueObject, ZCatalog):
implements(IMemberdataCatalog)
...
security.declareProtected(ManageZCatalogEntries, 'catalog_object')
def catalog_object(self, obj, uid=None, idxs=[],
update_metadata=1, pghandler=None):
w = obj
if not IIndexableObject.providedBy(obj):
wrapper = component.queryMultiAdapter((obj, self), IIndexableObject)
if wrapper is not None:
w = wrapper
ZCatalog.catalog_object(self, w, w and str("/".join(w.getPhysicalPath())), idxs,
update_metadata, pghandler=pghandler)
(すべてGenericSetupもので、また原型と同様に行うことができます)(後者はevent.contextを必要とIPrincipalCreatedEvent、IPrincipalDeletedEvent、IConfigurationChangedEvent ため
加入クラス。 。名前 _( 'UserDataConfiglet'、 'PersonalPreferencesPanel'、 'UserDataPanel')を処理する - 残念ながら、Ploneにはプロファイルデータの変更に関する特定のイベントはありません。イベントハンドラがどのように受信し、どのパラメータがどのようなパラメータを受け取るかについては、PASを参照してください。
これらのユーザーのアドレスを指定して再インデックスするカタログのビュー/ memberdata/username。 boboによって実行された「ユーザー名」は、インデックスとメタデータに必要なプロパティーを持つラップされたユーザー を返します。
http://plone.org/products/collective.examples.userdataは、実際にユーザープロファイルを拡張する方法を示す良いガイドです。それとは別に、アダプタがEnhancedUserDataPanelAdapterここ
class IndexableAdapter(EnhancedUserDataPanelAdapter):
implements(IIndexableObject)
adapts(IMemberData, IMemberdataCatalog)
def __init__(self, context, catalog):
self.context = context
self.userid = context.getId()
self.catalog = catalog
def getPhysicalPath(self):
return make_physical_path(self.userid) # path to the view, which "fakes" an object
def __getattr__(self, name):
""" Proxing attribute accesses. """
return getattr(self.context, name)
# Specific indexer
def SearchableTextIntra(self):
...
を必要とされている
がUserDataPanelAdapter由来と拡張されました。
IMemberdataCatalogは、カタログのインターフェイスです。
.getObject()を使用すると、何百回も(!)遅くなりましたので、すべてをメタデータに入れて、縦/横の長さも にすることが重要です。
グループメンバシップはイベントが存在しないため別々に処理されました。グループ内の変更を意味する は、一部またはすべてのmemebrを再インデックスする必要があります。
リンク#2は本当に問題の核心ですが、残念ながらそれはもう機能しません。更新されたリンクを提供できますか?私は以下の便利なことを発見しましたが、私の意見ではこの文書は広すぎます - http://svn.plone.org/svn/plone/plone.indexer/trunk/plone/indexer/README.txt –