5

リスト ビューで Dexterity ベースの Plone コンテンツ タイプの画像を表示する最良の方法は何ですか?

画像フィールドを提供する器用さベースのコンテンツ オブジェクトを含むフォルダーがあり、それらのオブジェクトを (カタログの頭脳として) それらの画像と共に一覧表示したいとします。絶対 URL を呼び出して、リストに画像を表示することができます。

<img src="" tal:attributes="src string:${item/getURL}/@@images/image/thumb" />

ただし、画像が存在しない場合、Plone はエラーを発生させ、画像がページ テンプレートに存在するかどうかを確認する良い方法がわかりません。画像を検索するために、リストのオブジェクトを起動したくないことは明らかです。

カタログに画像メタデータ列を作成する必要がありますか?それとも、他にもっと良い解決策がありませんか?

4

4 に答える 4

5

オブジェクトが適切にバッチ処理されている限り、リスト内のオブジェクトの起動についてあまり心配する必要はありません。plone.app.textfield と plone.namedfile のフィールドを使用している場合、大きなデータは個別の永続オブジェクトに保持されるため、メイン コンテンツ アイテム オブジェクトは比較的軽量です。もちろん、自分の場合に害がないことを確認したい場合は、独自のベンチマークを行ってください。

于 2011-09-20T17:33:34.797 に答える
4

これを行う方法については、Professional Plone 4 Development (第 10 章だと思います) にレシピがあります。残念ながら、私は今それを行う方法を本当に思い出せません。:)

于 2011-09-20T15:00:39.490 に答える
0

画像フィールドをチェックする例は次のとおりです。

class product(grok.View):
    grok.context(IDexterityContent)
    grok.require('zope2.View')
    grok.name('view')

    def update(self):
        """
        """
        # Hide the editable-object border
        context = self.context
        request = self.request
        request.set('disable_border', True)


    #brain come from contained image field 's object
    def isImageAvalable(self,brain=None):
        """判断图片字段是否有效"""
        try:
            if brain is None:
                image = self.context.image.size
            else:
                 image = brain.getObject().image.size

            return (image != 0)

        except:
            return False
于 2012-09-02T00:02:27.350 に答える
0

有効な画像へのパスを格納する portal_catalog にメタデータを作成します。オブジェクトに画像があるかどうかを確認し、画像がない場合はデフォルトの画像を返す、同じ名前の Python スクリプトを作成します。

于 2011-09-21T07:52:02.047 に答える