Example #1
0
    def _renderFromTemplate(self, data):
        if self.isVoidTag:
            return u''

        if self._renderOverride is not None:
            return unicode(self._renderOverride)

        if not self.renderTemplate:
            return u''

        try:
            r = MakoRenderer(
                template=self.renderTemplate,
                rootPath=StaticFlowEnvironment.rootTemplatePath,
                data=data,
                logger=self._log)
            r.render(
                tag=self,
                data=self.attrs,
                page=self.processor.page,
                site=self.processor.site)
        except Exception, err:
            name = self.__class__.__name__
            self.log.writeError([
                u'MAKO RENDERING FAILURE [%s]:' % name,
                u'TEMPLATE: ' + unicode(self.renderTemplate),
                u'TAG: ' + unicode(self),
                u'BLOCK: ' + unicode(self.block),
                u'DATA: ' + unicode(self.attrs)
            ], err)
            return u''
Example #2
0
    def write(self):
        """ Generates the rss.xml file and saves it to the target location. """

        mr = MakoRenderer(self._TEMPLATE, StaticFlowEnvironment.rootTemplatePath, {'rss':self})
        result = mr.render()
        if not mr.success:
            self.page.site.writeErrorLog(mr.errorMessage)
            return False

        result = FileUtils.putContents(result, self.targetPath)
        if result:
            self.page.site.writeLogSuccess(u'CREATED', u'RSS File: "%s"' % self.targetPath)
        else:
            self.page.site.writeErrorLog(u'Unable to write RSS file "%s"' % self.targetPath)
        return result
Example #3
0
    def write(self):
        """ Generates the sitemap and writes the result to the targetPath """

        mr = MakoRenderer(self._TEMPLATE, StaticFlowEnvironment.rootTemplatePath, {'sitemap':self})
        result = mr.render()

        if not mr.success:
            self.site.writeLogError(unicode(mr.errorMessage))
            return False

        if not FileUtils.putContents(result, self.targetPath):
            self.site.writeLogError(u'Unable to save sitemap file at: "%s"' % self.targetPath)
            return False

        self.site.writeLogSuccess(u'SITEMAP', u'Created sitemap at: "%s"' % self.targetPath)
        return True
Example #4
0
    def __call__(self):
        response = ZigguratBaseView.__call__(self)

        try:
            if isinstance(response, dict):
                t = self.template
                if t:
                    mr  = MakoRenderer(
                        template=t,
                        rootPath=self.ziggurat.configurator.makoRootTemplatePath,
                        logger=self.logger,
                        minify=self._minify,
                        data=response)
                    self._request.response.content_type = 'text/html'
                    self._request.response.text = mr.render()
                else:
                    self.logger.write('Invalid or missing template: %s' % t)
            else:
                return response
        except Exception as err:
            self.logger.writeError('Failed Mako rendering attempt', err)

        # TODO: Should redirect to an error display page if responses are not strings.
        return self._request.response