2
from zope.interface import Interface
4
class IWebTheme(Interface):
6
Represents a directory full of theme information.
10
class ISiteRootPlugin(Interface):
12
Plugin Interface for functionality provided at the root of the website.
15
def resourceFactory(segments):
16
"""Get an object that provides IResource
18
@type segments: list of str, representing decoded requested URL
21
@return: None or a two-tuple of the IResource provider and the segments
22
to pass to its locateChild.
25
class ISessionlessSiteRootPlugin(Interface):
27
Extremely similar to ISiteRootPlugin except access is not mediated by
32
class INavigableElement(Interface):
33
"""Tag interface used by the web navigation plugin system.
35
Plugins for this interface are retrieved when generating the navigation
36
user-interface. Each result has C{getTabs} invoked, after which the
37
results are merged and the result used to construct various top- and
38
secondary-level \"tabs\" which can be used to visit different parts of
43
"""Retrieve data about this elements navigation.
45
This returns a list of C{quotient.appnav.Tab}s.
47
For example, a powerup which wanted to install navigation under the
48
Divmod tab would return this list:::
50
[Tab("Divmod", quotient.iquotient.ISummaryPage, 1.0
52
Tab("Summary", quotient.iquotient.ISummaryPage, 1.0),
53
Tab("Inbox", lambda x:
54
IRootPool(x).getNamedElement(
55
'Mail Folders').getNamedElement('Inbox'),
61
class ITab(Interface):
63
Abstract, non-UI representation of a tab that shows up in the UI. The only
64
concrete representation is xmantissa.webnav.Tab