Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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