def globalPortletCategories(placeless=False):
    """Get global portlet key-value pairs, in order.

        When rendered, a portlet manger (column) will be filled first by
        contextual portlets (if the context and/or its parents provide
        ILocalPortletAssignable), and then by global portlets. Global portlet
        assignments may include portlets per user, per group, or per content
        type.

        This function should return a tuple of tuples where each inner tuple
        contains a category such as 'user' or 'group' and the key to use in
        this category.

        For example, if the current content object is a 'Document', the current
        user is 'fred' and he is a member of 'group1' and 'group2', this may
        be:

        (('content_type', 'Documment'),
         ('user', 'fred',),
         ('group', 'group1',),
         ('group', 'group2',),)

        In this case, all contextual portlets may be rendered first, followed
        by all global portlets in the content_type category assigned to
        'Document', followed by user portlets for 'fred' and group portlets for
        'group1' and then 'group2'.

        If ``placeless`` is True, the categories should only include those
        which are independent of the specific location. In this case, that
        may mean that the 'content_type' category is excluded.
        """
