Lineage附加组件:子站点的主题选择
项目描述
本包提供了Lineage子站点的主题选择。
在Plone中,我们有plone.app.theming(也称为Diazo主题)和旧CMF皮肤。两者几乎独立。
lineage.themeselection添加了一个包含基于plone.app.theming的主题设置的lineage.registry本地组件。为网站管理员提供了一个对象选项卡,用于配置子站点的主题。
此外,它还向ChildSite文件夹添加了一个schema扩展器,在编辑下的设置选项卡中添加了一个CMFSkin选择下拉菜单。
在遍历皮肤时,切换皮肤并在请求上放置一个plone.browserlayer标记。
安装
将egg添加到您的构建配置的eggs部分。
将GS配置文件应用到您的Plone站点。
用法
在您的ChildSite上打开“主题”选项卡并编辑Diazo主题和主题基础皮肤。
安装
只需在您的构建配置中依赖egg lineage.themeselection。ZCML会自动通过z3c.autoinclude加载。
将其作为插件安装到Plone控制面板或portal_setup。
本包是为Plone 4.1或更高版本编写的。
源代码和贡献
如果您想帮助开发(改进、更新、错误修复等)lineage.themeselection,这是一个很好的主意!
代码位于github collective。
您可以克隆它或获取github-collective的访问权限并直接在项目上工作。
维护者是Jens Klein和BlueDynamics联盟的开发团队。我们感谢任何贡献,如果需要在PyPI上发布新版本,请随时联系我们之一 dev@bluedynamics dot com
贡献者
Jens Klein <jens@bluedynamics.com>
Johannes Raggam
Harald Friessnegger
感谢Maurits van Rees展示了如何使用collective.editskinswitcher实现这一点,以及感谢Weblion团队使用themetweaker.themeswitcher实现相同功能。
历史
2.1 (2019-03-26)
修复从依赖项中缺少ZCML的问题。[rpatterson]
添加卸载配置文件。[jensens]
从is_subsite_enabled现在位于其中依赖的lineage.controlpanels中依赖。[jensens]
不要在层上绑定is_subsite_enabled视图,这样在lineage.themeselection未安装时也可以调用它。修复了一个我还不理解的错误(在应用配置文件时找不到视图,该配置文件安装了lineage.controlpanels)。[thet]
修复升级脚本,在尝试删除它时不绑定lineage_theme属性。[thet]
2.0 (2016-06-20)
新内容
将子站点皮肤设置为基于 lineage.registry 的本地注册,而不是 IChildSite 对象上的 lineage_theme 属性。包括升级步骤。[thet]
允许通过 @@theming-controlpanel 设置 lineage_theme 皮肤设置,并移除自定义的控制面板模板、Archetypes schemaextender 和 Dexterity 行为。此操作适用于 plone.app.theming 的 1.1.x 和 1.2.x 版本。包括升级步骤。[thet]
修复内容
在安装此插件时安装 lineage.registry。[thet]
1.4.1 (2016-02-08)
修复内容
只有当找到新层时,才移除当前 IBrowserSkinType 浏览器层并添加新的一个。[thet]
修复 apply_theme 事件订阅者中的错误,该错误阻止了它正确设置皮肤。[thet]
1.4 (2014-11-20)
如果存在,还将设置皮肤名下注册的浏览器层,并移除由“旧”皮肤设置的层。[fRiSi]
与 collective.editskinswitcher 兼容良好。如果编辑皮肤处于活动状态,则不要设置/激活任何其他皮肤。这允许在 CMS 模式下使用特定皮肤(例如 Sunburst),即使对于定义了不同主题的子站点也是如此。[fRiSi]
添加对 Dexterity 的支持。[thet]
1.3 (2013-12-04)
添加 GenericSetup 配置以正确注册浏览器层。[thet. 2013-10-15]
让 lineage.themeselection 与 Plone 4.3 兼容,其中 plone.app.theming 具有组合的 Diazo 和 Skins 控制面板。通过此控制面板设置皮肤目前不起作用,因此这些设置现在被隐藏。请在 lineage 子站点的 @@edit 页面的设置选项卡中设置皮肤。[thet, 2013-10-14]
1.2
添加 Diazo 主题支持 [jensens, 2012-01-01]
1.1
添加了清单文件 [jensens]
清理 [thet]
1.0
使其正常工作。[jensens, 2011-06-06]
许可证
版权所有 (c) 2012,BlueDynamics Alliance,奥地利,瑞士,德国
GNU 通用公共许可证
复制、分发和修改的条款和条件
本许可证适用于包含版权所有者放置的通知的任何程序或其他作品,说明它可以根据本通用公共许可证的条款分发。以下“程序”一词指任何此类程序或作品,“基于程序的程序”是指程序或任何版权法下的衍生作品:也就是说,包含程序或其一部分的作品,无论是原文还是经过修改和/或翻译成另一种语言。(以下,翻译不受限制地包括在“修改”一词中。)每个许可证持有人被称为“你”。
本许可证不涵盖除复制、分发和修改以外的活动;它们超出了其范围。运行程序的行为不受限制,仅当程序的内容构成基于程序的程序(不取决于是否通过运行程序创建)时,程序输出的内容才受本许可证的保护。这是否属实取决于程序的行为。
你可以根据你收到的程序源代码的副本,在任何媒介上复制和分发准确的副本,只要你在每个副本上明确并适当地发布适当的版权声明和免责声明;保持所有引用本许可证和声明不存在任何保证的通知完整;并给程序的其他接收者提供本许可证的副本和程序。
你可以对传递副本的物理行为收取费用,并且你可以选择以费用为交换条件提供保证。
- 2 你可以修改你的程序副本或副本的任何部分
从而形成一个基于程序的程序,并根据上述第1节的规定,复制和分发此类修改或程序,前提是你还满足所有这些条件
a) 你必须使修改的文件带有醒目的声明,说明你已更改文件以及更改的日期。
b) 您必须使您分发或发布的任何作品(无论整体还是部分包含或源自程序或其任何部分),根据本许可证条款免费许可给所有第三方。
c) 如果修改后的程序在运行时通常以交互方式读取命令,那么当以最普通的方式启动该程序进行此类交互式使用时,您必须使它打印或显示一条公告,包括适当的版权声明、无保修声明(或者,说明您提供保修),并告知用户如何查看本许可证的副本。(例外:如果程序本身是交互式的但通常不打印此类公告,则基于该程序的作品无需打印公告。)
这些要求适用于修改后的作品整体。如果该作品的可识别部分不是源自程序,并且可以合理地认为它们本身是独立和分离的作品,那么当您将它们作为单独的作品分发时,本许可证及其条款不适用于这些部分。但是,当您将相同的部分作为整体的一部分分发,该整体是基于程序的作品时,整个作品的分发必须根据本许可证的条款进行,其许可权限扩展到整个整体,因此到每个部分,无论谁编写。
因此,本节的意图不是主张或争议您对完全由您编写的作品的版权或权利;相反,意图是行使对基于程序派生或集体作品分布的控制权。
此外,仅将另一作品(该作品不是基于程序的)与程序(或基于程序的任何作品)一起聚合在存储或分发媒体的卷上,并不将其他作品纳入本许可证的范围。
您可以根据上述第1条和第2条的规定以目标代码或可执行形式复制和分发程序(或根据第2条基于该程序的作品),前提是您还执行以下一项操作:
a) 伴随完整的相应机器可读源代码,该代码必须根据上述第1条和第2条的规定在通常用于软件交换的介质上分发;或者,
b) 伴随一份书面提议,有效期至少三年,向任何第三方提供,费用不超过您物理执行源分发的成本,一个完整的机器可读源代码副本,根据上述第1条和第2条的规定在通常用于软件交换的介质上分发;或者,
c) 伴随您收到的有关分发相应源代码的提议的信息。(此替代方案仅适用于非商业性分发,并且仅当您根据上述b条收到以对象代码或可执行形式提供的程序,并且包含此类提议时。)
作品源代码意味着对其进行修改的首选形式。对于可执行作品,完整的源代码意味着包含的所有模块的所有源代码,以及任何相关的接口定义文件,以及用于控制编译和安装可执行文件的脚本。然而,作为一项特殊例外,分发的源代码不需要包括与运行可执行文件的操作系统的核心组件(编译器、内核等)通常一起分发的任何内容(无论是源代码还是二进制形式),除非该组件本身与可执行文件一起提供。
如果通过提供从指定地点复制可执行文件或目标代码的方式进行分发,那么从同一地点提供等价地复制源代码的访问权,也视为源代码的分发,即使第三方没有被要求与目标代码一起复制源代码。
您不得复制、修改、再许可或分发该程序,除非本许可证明确提供。任何其他方式的复制、修改、再许可或分发该程序的行为都是无效的,并将自动终止您根据本许可证的权利。然而,根据本许可证从您那里获得副本或权利的各方,只要这些方完全遵守规定,其许可证不会终止。
您无需接受此许可证,因为您未签署它。然而,没有任何其他许可授予您修改或分发该程序或其衍生作品的权利。如果您不接受此许可证,这些行为将受到法律的禁止。因此,通过修改或分发该程序(或基于该程序的作品),您表示接受此许可证以进行此类操作,并接受其关于复制、分发或修改该程序或基于其的作品的所有条款和条件。
每次您重新分发该程序(或基于该程序的作品)时,接收方将自动从原始许可方获得一个许可证,以根据这些条款和条件复制、分发或修改该程序。您不得对受让人行使本许可证所赋予的权利施加任何进一步的限制。您不对第三方遵守本许可证负责。
如果由于法院判决或专利侵权指控或其他原因(不仅限于专利问题),对您施加的条件(无论是法院命令、协议还是其他方式)与本许可证的条件相矛盾,则这些条件不能免除您遵守本许可证的条件。如果您不能同时满足本许可证和任何其他相关义务,那么结果可能是您根本不能分发该程序。例如,如果专利许可不允许所有直接或间接通过您获得副本的人免费重新分发该程序,那么满足这两个许可证的唯一方法可能是完全停止分发该程序。
如果本节任何部分在任何特定情况下被认定为无效或不具有可执行性,则本节的其他部分应适用,并且整个节应在其他情况下适用。
本节的目的不是诱使您侵犯任何专利或其他财产权利主张,或质疑此类主张的有效性;本节的目的仅仅是保护自由软件分发系统的完整性,该系统通过公共许可证实践实施。许多人已经通过该系统对广泛分布的软件做出了慷慨的贡献,并依赖该系统的一致应用;作者/捐赠者决定是否愿意通过任何其他系统分发软件,许可方无权强加这种选择。
本节旨在充分阐明本许可证其他部分的后果。
如果由于专利或版权接口的版权限制,在特定国家禁止分发和/或使用该程序,将程序置于本许可证下的原始版权所有者可以明确添加地理分发限制,排除这些国家,以便仅在或仅在这些被排除的国家或国家之间允许分发。在这种情况下,本许可证将此限制纳入本许可证正文。
自由软件基金会可能会不时发布修订版和/或新版本的通用公共许可证。这些新版本的精神将与当前版本相似,但可能因解决新问题或关注点而有所不同。
每个版本都会被赋予一个独特的版本号。如果程序指定了这个许可证的版本号,并且适用于“任何后续版本”,你可以选择遵循该版本或由自由软件基金会发布的任何后续版本的条款和条件。如果程序未指定此许可证的版本号,你可以选择自由软件基金会发布的任何版本。
如果你希望将程序的某些部分纳入其他具有不同分发条件的免费程序中,请写信给作者请求许可。对于由自由软件基金会版权保护的软件,请写信给自由软件基金会;我们有时会对此类情况做出例外。我们的决定将指导我们实现两个目标:一是保护我们免费软件的所有派生产品的免费状态,二是促进软件的共享和重用。
无保修
由于程序免费许可,根据适用法律的规定,本程序不提供任何保证。除非在书面文件中有其他声明,版权所有者/或其他提供程序“现状”而不提供任何形式保证(无论是明示的还是暗示的),包括但不限于适销性和特定用途的适用性暗示保证。程序的质量和性能风险完全由你承担。如果程序被证明存在缺陷,你必须承担所有必要的服务、维修或更正的费用。
除非适用法律要求或书面同意,否则在任何情况下,版权所有者或任何其他可能按上述方式修改和/或重新分发程序的第三方,对因使用或无法使用本程序(包括但不限于数据丢失、数据被错误地处理、你或第三方遭受的损失或程序无法与其他程序一起运行)而产生的任何损害(包括但不限于一般性、特殊性、偶然性或后果性损害),不对你承担责任,即使该所有者或其他第三方已被告知此类损害的可能性。
条款和条件结束
项目详情
lineage.themeselection-2.1.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81360f86081233d73a412d388365e096a213355e51b700b8062c94ebb0bdb548 |
|
MD5 | 0cf05e33a295b6af39c1f4118aef0792 |
|
BLAKE2b-256 | ca3dbbc01055bca620e6f37b3a2a24e0e6fc205be7628e0b134ec58ccd1d9471 |