2009-12-22 77 views
3

我有一個以zope 3 zcml工作的python類方式,但是我想將python移動到可以通過沿着tal的內容:content ='context/get_tags'。這是代碼,因爲它主張:將基於zcml的python腳本轉換爲zope/plone中的獨立腳本

class TagListView(BrowserView): 

def getCategories(self): 
    categories = set() 
    for cat in self.portal_catalog.uniqueValuesFor('Subject'): 
     categories.add(cat.lower()) 
    for cat in self.__mapping: 
     categories.add(cat.lower()) 
    return tuple(sorted(categories)) 

def getSynonyms(self,category): 
    r = self.__mapping.get(category) 
    if r is None: 
     return() 
    return r[0] 

def __init__(self,context,request): 
    self.context = context 
    self.request = request 
    self.tool = self.context.portal_categories 

def entries(self): 
    taglist = '([' 
    for category in self.tool.getCategories(): 
     taglist = taglist + '\'' + category + '\',' 
     for synonym in self.tool.getSynonyms(category): 
      if len(synonym) > 0: 
       taglist = taglist + '\'' + synonym + '\',' 
    taglist = taglist + '])' 
    return taglist 

不是很大(因爲你可能已經猜到了程序員不是我的職務),但它是我所。我如何將它轉換爲獨立腳本工作?

回答

2

您可以訪問頁面模板的意見與@@語法:上下文/ @@視圖名:

tal:define="view context/@@get_tags; 
      entries view/entries;"