問題
検索で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_view
、folder_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>
、私は運がありませんでした。どんな助けやアイデアも歓迎します!