# -*- coding: utf-8 -*- # Copyright (c) 2002-2013 Infrae. All rights reserved. # See also LICENSE.txt import logging from silva.core import conf as silvaconf from silva.core.conf.installer import DefaultInstaller from zope.interface import Interface silvaconf.extension_name('SilvaExternalSources') silvaconf.extension_title('Silva External Sources') silvaconf.extension_depends(["Silva", "silva.core.editor"]) silvaconf.extension_default() logger = logging.getLogger('silva.externalsources') class IExtension(Interface): """Silva External Sources extension. """ class ExternalSourcesInstaller(DefaultInstaller): """Silva External Sources installer """ def install_custom(self, root): installed_ids = root.objectIds() if 'service_codesources' not in installed_ids: factory = root.manage_addProduct['SilvaExternalSources'] factory.manage_addCodeSourceService()
from five import grok from zope.interface import Interface from zope.component import queryUtility, getUtility from silva.core import conf as silvaconf from silva.core.conf.installer import DefaultInstaller from silva.core.contentlayout.interfaces import IContentLayoutService from silva.core.contentlayout.interfaces import IDesignLookup from silva.core.editor.interfaces import ICKEditorService from silva.core.interfaces import IContainerPolicy silvaconf.extension_name("silva.app.page") silvaconf.extension_title(u"Silva Page") silvaconf.extension_depends( ["Silva", "silva.core.contentlayout", "silva.app.news"]) class PagePolicy(Persistent): grok.implements(IContainerPolicy) def createDefaultDocument(self, container, title): factory = container.manage_addProduct['silva.app.page'] factory.manage_addPage('index', title) page = container._getOb('index') service = getUtility(IDesignLookup) page.get_editable().set_design(service.default_design(page)) class PageInstaller(DefaultInstaller):
# -*- coding: utf-8 -*- # Copyright (c) 2012-2013 Infrae. All rights reserved. # See also LICENSE.txt from zope.interface import Interface from silva.core import conf as silvaconf from silva.core.conf.installer import DefaultInstaller SERVICE_NAME = 'service_shorturls' SHORT_URL_PREFIX = '$' silvaconf.extension_name("silva.app.shorturl") silvaconf.extension_title("Silva Short URL") silvaconf.extension_depends(['Silva']) class SilvaShortURLInstaller(DefaultInstaller): """ Silva shorturl installer """ service_name = SERVICE_NAME def install_custom(self, root): installed_ids = root.objectIds() if SERVICE_NAME not in installed_ids: factory = root.manage_addProduct['silva.app.shorturl'] factory.manage_addShortURLService(SERVICE_NAME) resolver_name = SERVICE_NAME + '_resolver' if resolver_name not in installed_ids: factory = root.manage_addProduct['silva.app.shorturl']
# -*- coding: utf-8 -*- # Copyright (c) 2002-2013 Infrae. All rights reserved. # See also LICENSE.txt from silva.core import conf as silvaconf from Products.SilvaDocument import install silvaconf.extension_name('SilvaDocument') silvaconf.extension_title('Silva Obsolete Document') silvaconf.extension_depends(["Silva", "SilvaExternalSources"]) # add some scheme to urlparse import urllib.parse SCHEME_HTTP_LIKE_CAPABILITIES = [ 'uses_relative', 'uses_netloc', 'uses_params', 'uses_query', 'uses_fragment', ] EXTRA_SCHEMES = [ ('itms', SCHEME_HTTP_LIKE_CAPABILITIES), ('webcal', SCHEME_HTTP_LIKE_CAPABILITIES), ('tel', SCHEME_HTTP_LIKE_CAPABILITIES), ] def add_scheme(scheme, capabilities): for capability in capabilities:
from Products.Silva.Root import Root from silva.core import conf as silvaconf from silva.core.interfaces import IExtensionInstaller from zope.interface import implements silvaconf.extension_name("smitheme.industrial") silvaconf.extension_title("SMI Theme Industrial") silvaconf.extension_depends(["Silva"]) SKIN = 'smitheme.industrial.skin.ISMIIndustrialSkin' class Installer(object): implements(IExtensionInstaller) def install(self, root, extension): root._smi_skin = SKIN def uninstall(self, root, extension): root._smi_skin = Root._smi_skin def is_installed(self, root, extension): return root._smi_skin == SKIN install = Installer()
# -*- coding: utf-8 -*- # Copyright (c) 2002-2013 Infrae. All rights reserved. # See also LICENSE.txt from silva.core import conf as silvaconf from Products.SilvaDocument import install silvaconf.extension_name('SilvaDocument') silvaconf.extension_title('Silva Obsolete Document') silvaconf.extension_depends(["Silva", "SilvaExternalSources"]) # add some scheme to urlparse import urlparse SCHEME_HTTP_LIKE_CAPABILITIES = [ 'uses_relative', 'uses_netloc', 'uses_params', 'uses_query', 'uses_fragment', ] EXTRA_SCHEMES = [ ('itms', SCHEME_HTTP_LIKE_CAPABILITIES), ('webcal', SCHEME_HTTP_LIKE_CAPABILITIES), ('tel', SCHEME_HTTP_LIKE_CAPABILITIES), ] def add_scheme(scheme, capabilities):
# -*- coding: utf-8 -*- # Copyright (c) 2002-2013 Infrae. All rights reserved. # See also LICENSE.txt #### Hack of the day: don't f**k up your all DB if an interface is broken. from OFS.Uninstalled import BrokenClass BrokenClass.__iro__ = tuple() #### End of hack of the day # register this extension from silva.core import conf as silvaconf silvaconf.extension_name('Silva') silvaconf.extension_title('Silva Core') silvaconf.extension_depends([]) try: from Products.MaildropHost import MaildropHost MAILDROPHOST_AVAILABLE = True except ImportError: MAILDROPHOST_AVAILABLE = False MAILHOST_ID = 'service_mailhost'
# -*- coding: utf-8 -*- # Copyright (c) 2008-2013 Infrae. All rights reserved. # See also LICENSE.txt from AccessControl.Permissions import manage_users as ManageUsers from silva.core import conf as silvaconf import install silvaconf.extension_name("silva.pas.openid") silvaconf.extension_title("Silva OpenID Support") silvaconf.extension_depends(["Silva", 'silva.pas.base']) def initialize(context): from .plugins import oid context.registerClass(oid.OpenIdPlugin, permission=ManageUsers, constructors= (oid.manage_addOpenIDPluginForm, oid.manage_addOpenIDPlugin), visibility=None, icon="www/openid.png")
# Copyright (c) 2004-2010 Infrae. All rights reserved. # See also LICENSE.txt # $Id$ from zope.interface import Interface from silva.core import conf as silvaconf from silva.core.conf.installer import DefaultInstaller silvaconf.extension_name('SilvaSoftwarePackage') silvaconf.extension_title('Silva Software Package') silvaconf.extension_depends('SilvaDocument') class SilvaSoftwarePackageInstaller(DefaultInstaller): not_globally_addables = [ 'Silva Software Release', 'Silva Software Package', 'Silva Software Group', 'Silva Software Remote Group', 'Silva Software Activity Aggregator', 'Silva Software Activity' ] class IExtension(Interface): pass install = SilvaSoftwarePackageInstaller('SilvaSoftwarePackage', IExtension) CLASS_CHANGES = { 'Products.SilvaSoftwarePackage ISilvaSoftwarePackageExtension': 'Products.SilvaSoftwarePackage IExtension', 'Products.Silva3PSP.Silva3PExtensionPage Silva3PExtensionPage':
# -*- coding: utf-8 -*- # Copyright (c) 2004-2013 Infrae. All rights reserved. # See also LICENSE.txt from silva.app.news.installer import install from silva.core import conf as silvaconf silvaconf.extension_name("silva.app.news") silvaconf.extension_title("Silva News Network") silvaconf.extension_depends(["Silva", "silva.app.document", "SilvaExternalSources"]) def initialize(context): from silva.app.news import indexing context.registerClass( indexing.IntegerRangesIndex, permission = 'Add Pluggable Index', constructors = (indexing.manage_addIntegerRangesIndexForm, indexing.manage_addIntegerRangesIndex), visibility=None)
# Copyright (c) 2004-2010 Infrae. All rights reserved. # See also LICENSE.txt # $Id$ from zope.interface import Interface from silva.core import conf as silvaconf from silva.core.conf.installer import DefaultInstaller silvaconf.extension_name('SilvaSoftwarePackage') silvaconf.extension_title('Silva Software Package') silvaconf.extension_depends('SilvaDocument') class SilvaSoftwarePackageInstaller(DefaultInstaller): not_globally_addables = ['Silva Software Release', 'Silva Software Package', 'Silva Software Group', 'Silva Software Remote Group', 'Silva Software Activity Aggregator', 'Silva Software Activity'] class IExtension(Interface): pass install = SilvaSoftwarePackageInstaller( 'SilvaSoftwarePackage', IExtension) CLASS_CHANGES = {