def _data(self, item, i, l):
     item.update({'title': item['brain'].Title,
                  'description': item['brain'].Description,
                  'url': item['brain'].hasDetail and item['brain'].getURL() or None,
                  'class': self._class(item['brain'], i, l)})
     if item.has_key('show') and item['show']:
         item['class'] += ' hidden'
     if REFERENCE:
         reference = IReference(item['obj'])
         url = reference.getReferenceURL()
         if url:
             item['url'] = url
     if TEASER and self.thumb_size:
         teaser = ITeaser(item['obj'])
         image = {'img': teaser.getTeaser(self.thumb_size),
                  'caption': teaser.getCaption(),
                  'url': None,
                  'rel': None}
         if image['img']:
             w, h = item['obj'].Schema()['image'].getSize(item['obj'])
             tw, th = teaser.getSize(self.thumb_size)
             if item['url']:
                 image['url'] = item['url']
             elif (tw < w and tw > 0) or (th < h and th > 0):
                 image['rel'] = 'lightbox'
                 image['url'] = teaser.getTeaserURL(size="popup")
             item['image'] = image
     if WYSIWYG and self.wysiwyg:
         item['wysiwyg'] = IWYSIWYG(item['obj']).getAdditionalText()
 def url(self):
     provider = ITeaser(self.context)
     w, h = self.context.Schema()['image'].getSize(self.context)
     tw, th = provider.getSize(self.type)
     if (not tw or tw >= w) and (not th or th >= h):
         return None
     return provider.getTeaserURL(size="popup")
Example #3
0
 def url(self):
     """return link to popup image, none if the popup is not bigger
     than the already displayed teaser image
     """
     provider = ITeaser(self.context)
     w, h = self.context.Schema()['image'].getSize(self.context)
     tw, th = provider.getSize(self.type)
     if (not tw or tw >= w) and (not th or th >= h):
         #original image <= already displayed teaser -> no popup needed
         #extra check since this popup scale might "blow up" the original picture
         #XXX really needed? if we need a check, shouldn't we check org <= popup here?
         return None
     pw, ph = provider.getSize('popup')
     if (pw and pw <= tw) or (ph and ph <= th):
         #popup scale  <= teaser -> no popup needed
         return None
     return provider.getTeaserURL(size='popup')
 def articles(self):
     provider = IArticles(self.context)
     manageable = interfaces.IManageable(self.context)
     mship = getToolByName(self.context, 'portal_membership')
     if mship.checkPermission(MANAGE_PERMISSION, self.context):
         items = provider.getArticles()
     else:
         items = provider.getArticles(component=self.component)
     items = manageable.getList(items, self.component)
     i = 0
     l = len(items)
     for item in items:
         item.update({'title': item['brain'].Title,
                      'description': item['brain'].Description,
                      'url': item['brain'].hasDetail and item['brain'].getURL() or None,
                      'class': self._class(item['brain'], i, l)})
         if item.has_key('show') and item['show']:
             item['class'] += ' hidden'
         if REFERENCE:
             reference = IReference(item['obj'])
             url = reference.getReferenceURL()
             if url:
                 item['url'] = url
         if TEASER:
             teaser = ITeaser(item['obj'])
             image = {'img': teaser.getTeaser(self.thumb_size),
                      'caption': teaser.getCaption(),
                      'url': None,
                      'rel': None}
             if image['img']:
                 w, h = item['obj'].Schema()['image'].getSize(item['obj'])
                 tw, th = teaser.getSize(self.thumb_size)
                 if item['url']:
                     image['url'] = item['url']
                 elif (tw < w and tw > 0) or (th < h and th > 0):
                     image['rel'] = 'lightbox'
                     image['url'] = teaser.getTeaserURL(size="popup")
                 item['image'] = image
         i += 1
     return items
Example #5
0
 def articles(self):
     provider = IArticles(self.context)
     manageable = interfaces.IManageable(self.context)
     items = provider.getArticles(component=self.component)
     items = manageable.getList(items, self.component)
     i = 0
     l = len(items)
     for item in items:
         item.update({'title': item['brain'].Title,
                      'description': self.description and item['brain'].Description or None,
                      'url': item['brain'].hasDetail and item['brain'].getURL() or None,
                      'class': item.has_key('show') and item['show'] and 'hidden' or ''})
         if REFERENCE:
             reference = IReference(item['obj'])
             url = reference.getReferenceURL()
             if url:
                 item['url'] = url
         if self.image:
             teaser = ITeaser(item['obj'])
             image = {'img': teaser.getTeaser(self.thumb_size),
                      'caption': teaser.getCaption(),
                      'url': None,
                      'rel': None}
             if image['img']:
                 w, h = item['obj'].Schema()['image'].getSize(item['obj'])
                 tw, th = teaser.getSize(self.thumb_size)
                 if item['url']:
                     image['url'] = item['url']
                 elif (tw < w and tw > 0) or (th < h and th > 0):
                     image['rel'] = 'lightbox'
                     image['url'] = teaser.getTeaserURL(size="popup")
                 item['image'] = image
         if self.wysiwyg:
             item['text'] = IWYSIWYG(item['obj']).getAdditionalText()
         i += 1
     return items