2011-09-20 57 views
5

在列表視圖中顯示基於敏捷的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

對,我忘記了blob的圖像數據是分開存儲的。 – tisto

4

在Professional Plone 4 Development(我相信第10章)中有一個如何做到這一點的祕訣。不幸的是,我現在真的不記得如何去做。 :)

+0

感謝您的提示!我會看看並在這裏貼上答案。 – tisto

+0

請確保不要在這裏發佈任何受版權保護的材料。提供您自己的問題答案。 – zedr

+0

zedr - 我寫了那本書,我不會直接發佈材料。即使我沒有時間查看,我只是想給Timo提供一個答案。 – optilude

0

在portal_catalog中創建元數據,您將在其中存儲有效圖像的路徑。 創建一個相同名稱的python腳本,用於檢查對象是否有圖像,如果沒有圖像,則返回默認值。

0

一種用於檢查在圖像領域的例子是avalable:

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 
相關問題