def update(self): """ Set the variables needed by the template. """ self.available = False context_state = self.context.restrictedTraverse('@@plone_context_state') if context_state.is_structural_folder() and not context_state.is_default_page(): folder = self.context else: folder = context_state.parent() if hasattr(aq_base(folder), CAROUSEL_ID): carousel = ICarousel(folder[CAROUSEL_ID], None) if not carousel: return else: return settings = carousel.getSettings() if not settings.enabled: return if not context_state.is_default_page(): if settings.default_page_only: if folder != self.context: return elif self.context.defaultView() != context_state.view_template_id(): return elif folder == self.context: if not context_state.is_view_template(): return banners = carousel.getBanners() if not banners: return self.banners = self._template_for_carousel( settings.banner_template or u'@@banner-default', carousel ) self.pager = self._template_for_carousel( settings.pager_template or u'@@pager-numbers', carousel ) width, height = banners[0].getSize() self.height = settings.height or height or 0 self.width = settings.width or width or 0 if settings.responsive: self.height = "'100%'" self.width = "'100%'" self.transition = settings.transition_type self.speed = int(settings.transition_speed * 1000) self.delay = int(settings.transition_delay * 1000) self.element_id = settings.element_id self.available = True
def update(self): """ Set the variables needed by the template. """ self.available = False context_state = self.context.restrictedTraverse( '@@plone_context_state') if context_state.is_structural_folder( ) and not context_state.is_default_page(): folder = self.context else: folder = context_state.parent() if hasattr(aq_base(folder), CAROUSEL_ID): carousel = ICarousel(folder[CAROUSEL_ID], None) if not carousel: return else: return settings = carousel.getSettings() if not settings.enabled: return if not context_state.is_default_page(): if settings.default_page_only: if folder != self.context: return elif self.context.defaultView( ) != context_state.view_template_id(): return elif folder == self.context: if not context_state.is_view_template(): return banners = carousel.getBanners() if not banners: return self.banners = self._template_for_carousel( settings.banner_template or u'@@banner-default', carousel) self.pager = self._template_for_carousel( settings.pager_template or u'@@pager-numbers', carousel) width, height = banners[0].getSize() self.height = settings.height or height or 0 self.width = settings.width or width or 0 if settings.responsive: self.height = "'100%'" self.width = "'100%'" self.transition = settings.transition_type self.speed = int(settings.transition_speed * 1000) self.delay = int(settings.transition_delay * 1000) self.element_id = settings.element_id self.available = True
def update(self): """ Set the variables needed by the template. This is copy of Products.Carousel.browser.viewlet code with some modifications """ self.available = False context_state = self.context.restrictedTraverse("@@plone_context_state") if context_state.is_structural_folder() and not context_state.is_default_page(): folder = self.context else: folder = context_state.parent() # No need for these # if hasattr(aq_base(folder), CAROUSEL_ID): # carousel = ICarousel(folder[CAROUSEL_ID]) # else: # return carousel = ICarousel(folder) settings = carousel.getSettings() if not settings.enabled: return banners = carousel.getBanners() if not banners: return self.banners = self._template_for_carousel(settings.banner_template or u"@@banner-default", carousel) self.pager = self._template_for_carousel(settings.pager_template or u"pager-none", carousel) # Antti's addition # this sets the width to the width of the image imagewidth, imageheight = banners[0].getSize(scale="image-" + str(self.blockWidth())) settings.width = imagewidth settings.height = imageheight self.height = settings.height or 0 # self.width = settings.width or 0 # self.containerwidth = containerwidth or 0 self.transition = settings.transition_type self.speed = int(settings.transition_speed * 1000) self.delay = int(settings.transition_delay * 1000) self.element_id = settings.element_id # Template will throw error when scaling image if either one of these is 0 if settings.width == 0 or settings.height == 0: self.available = False else: self.available = True