2

EEA ファセット ナビゲーション用の新しいウィジェット 'Slider' を作成しました。正常に動作しますが、これらの変更を元の製品に直接加えました。

詳しくは、 に新しいフォルダを追加しeea/facetednavigation/widgetsて修正しましたeea/facetednavigation/widgets/configure.zcml

この新しいウィジェットを自分の製品に移動したいと考えています。

いくつかのファイルとフォルダーを作成しました:

  • 私の/製品/ウィジェット
  • 私の/製品/ウィジェット/スライダー
  • my/product/widgets/configure.zcml

ルートzcmlに新しいパッケージ「ウィジェット」を含めました。

しかし、うまくいきません:

Module eea.facetednavigation.browser.app.view, line 89, in get_sections
Module eea.facetednavigation.browser.app.view, line 96, in get_view_widgets
Module eea.facetednavigation.browser.app.view, line 111, in get_widgets
TypeError: 'NoneType' object is not callable 

これを行う方法はありますか?

4

2 に答える 2

0

使用しているバージョンがわからないため、 https://github.com/eea/eea.facetednavigationを見ています。

その<facet:widget />ディレクティブ(my / products / widgets / configure.zcmlファイルにあると思います)がウィジェットをウィジェットレジストリクラスにアタッチしているようです。すべてのウィジェットを登録してから、レジストリをユーティリティとしてインスタンス化します

したがって、overrides.zcmlを製品に追加して、そのクラスを再インスタンス化してみてください。

my / product / overrides.zcml

次のように

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:browser="http://namespaces.zope.org/browser">

  <configure package="eea.facetednavigation">
    <utility provides=".interfaces.IWidgetsInfo"
             factory=".widgets.WidgetsInfo" />
  </configure>

</configure>
于 2013-02-13T23:24:27.180 に答える
0

IWidgetsInfo を再インスタンス化する必要はありません:)

ウィジェットを登録するだけです。

<faceted:widget factory=".widget.Widget" />

eea.facetednavigation 名前空間の外に登録されたこのファセット ウィジェットを参照してください。

于 2013-03-05T08:50:37.437 に答える