Example #1
0
    def test_get_nav_root(self):
        folder = self.portal.get(self.portal.invokeFactory('Folder', 'folder'))

        self.assertEquals(self.portal, get_nav_root(folder))
        self.assertEquals(self.portal, get_nav_root(self.portal))

        doc = folder.get(folder.invokeFactory('Document', 'doc'))
        self.assertEquals(self.portal, get_nav_root(doc))

        # Create a second document, because the first call with doc is cached
        doc2 = folder.get(folder.invokeFactory('Document', 'doc2'))
        alsoProvides(folder, INavigationRoot)
        self.assertEquals(folder, get_nav_root(doc2))
Example #2
0
    def getLanguage(self, langs, env):

        if not IFtwSubsiteLayer.providedBy(env):
            return base_negotiator.getLanguage(langs, env)

        # Get current published object
        obj = find_context(env)
        # Filter out CSS/JS and other non contentish objects
        # IFolderish check includes site root
        if not (IContentish.providedBy(obj) or IFolderish.providedBy(obj)):
            return base_negotiator.getLanguage(langs, env)

        nav_root = get_nav_root(obj)

        if ISubsite.providedBy(nav_root):
            # Get language stored on Subsite
            language = nav_root.force_language
            if language:
                return language
            else:
                return base_negotiator.getLanguage(langs, env)

        else:
            # Use normal Negotiator
            return base_negotiator.getLanguage(langs, env)
Example #3
0
def get_subsite_language(request):
    """Returns None, or a language code."""
    if not IFtwSubsiteLayer.providedBy(request):
        return None

    # Get current published object
    obj = find_context(request)
    # Filter out CSS/JS and other non contentish objects
    # IFolderish check includes site root
    if not (IContentish.providedBy(obj) or IFolderish.providedBy(obj)):
        return None

    nav_root = get_nav_root(obj)

    if ISubsite.providedBy(nav_root):
        # Get language stored on Subsite
        language = nav_root.force_language
        if language:
            return language
        else:
            return None

    else:
        return None
Example #4
0
    def __init__(self, context):
        super(SubsiteSitemapQueryBuilder, self).__init__(context)

        root = get_nav_root(context)
        self.query['path']['query'] = '/'.join(root.getPhysicalPath())
Example #5
0
    def __init__(self, context):
        super(SubsiteSitemapQueryBuilder, self).__init__(context)

        root = get_nav_root(context)
        self.query['path']['query'] = '/'.join(root.getPhysicalPath())