1

問題

検索で0の結果が返された場合に、特定のフォルダーのコンテンツ全体(画像を含む)を検索ページに表示したいという顧客がいます。フォルダはmysite.com/imagesにあります

設定:

テスト環境として、次の構造の別のサイトをセットアップしました。

ROOT
|-Folder1 <-- current directory I am viewing
| |-images
|-Other folders

テンプレートを変更してfolder_summar_view、次のコードを含めました(ビューを変更して、ビューを細かく分割して、希望どおりに実行できるかどうかを確認することにしました)。

<div tal:define="image context/images/getFolderContents">
  <div tal:content="i" tal:repeat="i image" />
</div>

私が見るもの:

<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>

私が試したこととさらなる説明

私は、画像フォルダ内の「オブジェクト」の頭脳を返すときに、その下のステートメントcontext/images/getFolderContentsを使用して各「オブジェクト」を反復処理できると想定していました。tal:repeat次に、それらを私のページに表示します。

次のコードを使用する場合:

<div tal:content="context/images/getFolderContents" />

私の出力は、上記の「表示内容」セクションと非常によく似ています。

<Products.ZCatalog.Catalog.mybrains object at [...]>

ここで、[...]は別の番号です

私はいくつかの調査を行い、Plone Themingの本を読んでいますが、私のコードは169ページtal:repeatの例に似ています。唯一の違いは、脳でこれを使用していないことです(私が知る限り)。

私はこれを試しましたが、同じ結果が得られました(なぜそうしないと思ったのかわかりません):

<div tal:define="image python:context.images.getFolderContents()">
  <div tal:content="i" tal:repeat="i image" />
</div>

戻ってきた脳を「中に入れる」ことができないようです。私がオンラインで探したものはすべてそれほど役に立ちません。またatct_album_viewfolder_listingsテンプレートを調べて、役に立つことを知りました。-何かを見落としている、または見落としていると思います。

私が最初に出くわしたリンクはこれでしたが、それ以来、似ているものの、私がやろうとしていたこととはまったく違うので、先に進みました。

彼らのチャットルームにいるPloneの人たちは親切にも私にcontext/images/getFolderContents声明をくれました。私は再び助けを求めずに押し込もうとしましたが、壁にぶつかったようです。

私が試した他のもの

このリンクをインスピレーションとして使用して、次のことを試してみることにしました。

<div tal:define="image context/images/getFolderContents">
  <div tal:content="image/getURL" />
</div>

しかし、テンプレートを表示しようとするとエラーが発生します。エラーは「getFolderContentsブレインには属性getURLがありません」の行に沿って読み取られます-image/Titleフォルダの名前が表示されますが、それは実際には必要なものではありません。

私もこのリンクを見つけましたが、デフォルトの検索を使用しているので、通常のPloneサイト検索に悪影響を与える可能性があるため、Pythonスクリプトを編集する必要はありません。また、このリンクでは、より多くのPythonスクリプトを使用しているようです。-この点を拡張するために、これらのスクリプトがページテンプレートと「リンク」する方法(互いに「話す」ことをどのように知っているか)がわかりません。

結論

結論として、自分のサイトのルートにある「images」という名前のフォルダーに含まれるすべての画像を表示する必要があります。を使用して、返された脳のコンテンツにアクセスできませんgetFolderContents。そして、「画像」フォルダのタイトルまたは脳の識別()を表示する以外に<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>、私は運がありませんでした。どんな助けやアイデアも歓迎します!

4

1 に答える 1

2

getFoldercontentsが頭脳のリストを返すので、コードがどのように機能するかわかりません。そのようなものでそれを繰り返すだけです:

<tal:block tal:repeat="image context/images/getFolderContents">
  <a tal:attributes="href image/getURL" tal:content="image/Title"/>
</tal:block>
于 2013-03-27T13:50:28.923 に答える