2011-09-20 1 views
5

DexterityベースのPloneコンテンツタイプの画像をリストビューで表示する最適な方法は何ですか?リストビューで敏捷性ベースのPloneコンテンツタイプの画像を表示するにはどうすればいいですか?

私はイメージフィールドを提供する敏捷性ベースのコンテンツオブジェクトを持つフォルダを持っており、そのオブジェクトと共に(カタログの頭脳として)イメージと一緒にリストしたいとします。それは彼らの絶対URLを呼び出すことによって、リスト内の画像を表示することが可能である:

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

ものの、画像が存在しない場合はPloneは、エラーが発生しますし、私はイメージをかどうかを確認するための良い方法が表示されませんページテンプレートに存在します。私たちは明らかに、リストアップのためにオブジェクトを目覚めさせ、イメージをルックアップすることを望んでいません。

カタログに画像メタデータ列を作成する必要がありますか、それとも私には見えない解決策がありますか?

+0

私は同様の質問を持っていたし、私はそれらの回答を得ました。 http://usarios-plone.2295514.n2.nabble.com/Solicito-ayuda-para-ponerle-foto-a-mi-Congreso-td6860749.html#a6887162 – user1162968

答えて

5

適切にバッチ処理されていれば、リスト内のオブジェクトを目覚めさせても大丈夫です。 plone.app.textfieldとplone.namedfileのフィールドを使用している場合、大きなデータは別々の永続オブジェクトに保存されるため、メインのコンテンツアイテムオブジェクトは比較的軽量です。もちろん、あなたのケースで傷ついていないことを確認したい場合は、独自のベンチマークを行います。

+0

右のように、ブロブの画像データは別に保存されていることを忘れていました。 – tisto

4

プロフェッショナルプレーン4開発(10章、私は信じています)でこれを行う方法のレシピがあります。残念ながら、私は本当に今それを行う方法を覚えていない。 :)

+0

ヒントをありがとう!私は見て、ここに答えを貼り付けます。 – tisto

+0

著作権のある資料をここに掲載しないでください。あなた自身の答えを質問に提供してください。 – zedr

+0

zedr - 私はその本を書きましたが、私はそれを直接投稿しません。私はちょうど私がそれを見る時間がなかったとしても答えをティモに提供したいと思った。 – optilude

0

有効な画像へのパスを保存するportal_catalogにメタデータを作成します。 オブジェクトにイメージがあるかどうかをチェックする同名のpythonスクリプトを作成し、イメージがない場合はデフォルトのものを返します。画像フィールドをチェックするための

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