跳转到主要内容

Kotti的设置配置

项目描述

为您的Kotti网站添加设置配置。 构建状态

了解更多关于Kotti的信息

设置

要在您的Kotti网站上激活kotti_settings插件,您需要在Paste Deploy配置中的kotti.configurators设置中添加一个条目。如果您没有kotti.configurators选项,请添加一个。在您的[app:main](或[app:kotti],具体取决于您如何设置Fanstatic)部分中的行可能看起来像这样

kotti.configurators = kotti_settings.kotti_configure

该插件为您添加一个新的配置页面,用于保存模块的设置或跨不同模块的设置。它向“网站设置”菜单项添加了一个名为“设置”的新子菜单项。每个设置集合都在一个标签页中展示。它打算使用一个标签页用于一个模块,但如果需要更复杂结构,也可以使用多个标签页。

您可以选择两种模式来设置您的配置。使用“字典模式”,您可以轻松地设置配置。如果您需要更高级的形式,您可以设置自己的模式。

使用字典设置设置选项卡。在此处,您定义了选项卡的名称和标题,以及必需的内容。可选参数包括 success_message、settings 或 schema、schema_factory 和 use_csrf_token。

在字典中定义您的设置

TestSettings = {
'name': 'test_settings',
'title': "Testsettings",
'description': "Some description for my settings",
'success_message': u"Successfully saved test settings.",
'settings': [
    {'type': 'String',
     'name': 'testsetting_1',
     'title': 'Test 1',
     'description': 'a test setting',
     'default': '', },
    {'type': 'Integer',
     'name': 'testsetting_2',
     'title': 'Test 2',
     'description': 'again a test setting',
     'default': 23, }]}

使用模式定义您的设置

class StringSchemaNode(colander.SchemaNode):
    name = 'a_string'
    title = 'hello'
    default = 'hello world'

class RangedIntSchemaNode(colander.SchemaNode):
    name = 'range_int'
    validator = colander.Range(0, 10)
    default = 5
    title = 'Ranged Int'

class TestSchema(colander.MappingSchema):
    string = StringSchemaNode(colander.String())
    ranged_int = RangedIntSchemaNode(colander.Int())

TestSettings = {
    'name': 'test_settings',
    'title': "Testsettings",
    'description': "Some description for my settings",
    'success_message': u"Successfully saved test settings.",
    'schema_factory': TestSchema
}

要将您的配置注册到 kotti_settings 中,请在您的插件中添加设置到填充器。查看 Kotti 文档以获取有关 填充器 的更多信息,以及查看 示例

在填充器中添加您的设置配置,例如在名为 populate.py 的文件中

def populate():
    from kotti_settings.util import add_settings
    add_settings(TestSettings)

并将其添加到您的配置中

def kotti_configure(settings):
    settings['kotti.populators'] += ' my_addon.populate.populate'

或直接添加到您的 ini 文件中

kotti.populators = my_addon.populate.populate

要将设置返回到您的代码中,您可以使用以下方法

from kotti_settings.util import get_setting

first_test_setting = get_setting('test_setting_1')

事件

在设置保存前后,会触发处理更改的事件。要订阅事件,请使用类似以下的方法

from pyramid.events import subscriber
from kotti_settings.events import SettingsAfterSave

@subscriber(SettingsAfterSave)
def do_something_when_settings_saved(event):
    # Check if the settings for this module was saved.
    if not event.module == __package__:
        return
    my_fancy_thing()

默认模式

kotti_settings 提供了一些默认模式,您可以直接在您的代码中使用,例如用于示例。目前有两个已实现的模式,一个用于选择小部件应显示的插槽,另一个用于设置小部件的可见性。要在您的插件中使用它,请在您的填充器中放置类似以下内容

from kotti.views.slots import assign_slot
from kotti_settings.config import SlotSchemaNode
from kotti_settings.config import ShowInContextSchemaNode
from kotti_settings.util import add_settings
from kotti_settings.util import get_setting
from kotti_myaddon import _

class MyWidgetSchema(colander.MappingSchema):
    slot = SlotSchemaNode(colander.String())
    show_in_context = ShowInContextSchemaNode(colander.String())

MyAddonSettings = {
    'name': 'myaddon_settings',
    'title': _(u'My Addon Settings'),
    'description': _(u"Settings for my addon"),
    'success_message': _(u"Successfully saved my addon settings."),
    'schema_factory': MyAddonSchema,
}

def populate():
    add_settings(MyAddonSettings)

例如,在插件 kotti_tagcloud 中有一个完整示例。

变更日志

0.3(2016-02-29)

  • 将编辑模板作为设置页面的宏使用。

  • 添加 deform_bootstrap 到需求中,修复 #4。

0.2(2013-11-12)

  • 仅扫描所需的视图文件。

  • 添加 MANIFEST.in 以删除本地文件夹。

0.1(2013-10-19)

  • 为默认模式添加文档。

  • 更改实现以检查哪个设置表单已保存。

  • 添加了新的实用方法“set_setting”,其中处理值转换。

  • 删除了不需要的静态资源。

  • 将表单的内部名称更改为更独特。

  • 在显示选项卡时重新初始化选定的元素。

  • 将布尔值转换为“true”或“false”,以满足 deform 检查框小部件的要求。

0.1b4(2013-05-02)

  • 为默认设置模式之一添加了辅助方法。

  • 仅保存提交的表单中的设置。

  • 将保存的表单设置为活动表单。

  • 添加了仅从特定插槽中删除小部件的可能性。

0.1b3(2013-04-18)

  • 修复:在模式中定义的设置也必须初始化。

0.1b2(2013-04-18)

  • 添加了从插槽中删除小部件的可能性。

  • 添加了两个默认模式,一个用于选择小部件的插槽,另一个用于设置小部件的显示位置。

0.1b1(2013-03-29)

  • 添加了在设置保存前后处理回调的事件处理。

0.1a3(2013-03-13)

  • 仅考虑设置名称的模块本身。

0.1a2(2013-03-11)

  • 添加了 util 方法 get_setting 作为获取设置的默认方式。

0.1a1(2013-03-06)

  • 首次发布。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

kotti_settings-0.3.zip (39.5 kB 查看哈希值)

上传时间

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面