Пример #1
0
 def get_links(self):
     links = Folder.get_links(self)
     # General informations
     base = self.get_canonical_path()
     site_root = self.get_site_root()
     languages = site_root.get_property('website_languages')
     # We update XHTMLBody links
     for key, datatype in self.get_metadata_schema().items():
         multilingual = getattr(datatype, 'multilingual', False)
         langs = languages if multilingual is True else [None]
         if issubclass(datatype, XHTMLBody):
             for lang in langs:
                 events = self.get_property(key, language=lang)
                 if not events:
                     continue
                 links.extend(_get_links(base, events))
         elif issubclass(datatype, PathDataType):
             # Relative path
             for lang in langs:
                 path = self.get_property(key, language=lang)
                 if path is None:
                     continue
                 links.append(str(base.resolve2(path)))
         elif issubclass(datatype, AbsolutePathDataTypeEnumerate):
             # Absolute path
             for lang in langs:
                 path = self.get_property(key, language=lang)
                 if path is None:
                     continue
                 links.append(str(path))
     # Tagaware ?
     if isinstance(self, TagsAware):
         links.extend(TagsAware.get_links(self))
     return links
Пример #2
0
    def get_links(self):
        base = self.get_canonical_path()
        site_root = self.get_site_root()
        available_languages = site_root.get_property("website_languages")
        links = super(FooterMenu, self).get_links()
        handler = self.handler
        get_value = handler.get_record_value

        for record in handler.get_records_in_order():
            for language in available_languages:
                html_content = get_value(record, "html_content", language=language)
                if html_content is None:
                    continue
                links.update(_get_links(base, html_content))

        return links
Пример #3
0
    def get_links(self):
        links = super(TurningFooterTable, self).get_links()
        base = self.get_canonical_path()
        # languages
        site_root = self.get_site_root()
        available_languages = site_root.get_property('website_languages')

        # Append links contained in data
        handler = self.handler
        get_value = handler.get_record_value

        for record in handler.get_records_in_order():
            for language in available_languages:
                data = get_value(record, 'data', language=language)
                if data is None:
                    continue
                links.update(_get_links(base, data))

        return links