引用http://plone.org/documentation/kb/customizing-main-template-viewlets/tutorial-all-pages(约占页面的1/4)
如果您只需要对Plone Default皮肤中的Viewlet进行重新排序,则只需将原始viewlets.xml从CMFPlone/profiles/default /复制到MyTheme/profiles/default /中,然后编辑复制的文件以使其反映您的需求.
当我这样做时,我没有得到任何改变,不是在重新加载之后,而是在扩建之后,无论如何.我对MyTheme/browser/templates/main_template.pt进行了一些轻微的手动更改,这些更改被拾取,所以不是这样,我的产品完全被忽略了.到目前为止,我没有触及那里的任何基本代码,所以这不是原因.
这是一个plone 3.3.5安装.谁能在这里给我一些线索?需要任何信息,我站在:)
是否有通用设置导入步骤名称的综合参考列表?
通用设置导入步骤的名称并不总是与其对应的xml文件的名称匹配,例如'types.xml'有一个名为'typeinfo'的导入步骤.
如果没有列表,我会对找到导入步骤名称的简单方法感到满意.例如,由'registry.xml'文件管理的plone.app.registry的导入步骤名称并不明显,我试图将其称为'注册表'但是这会失败,请参阅下面的代码:
from Products.CMFCore.utils import getToolByName
PROFILE_ID = 'profile-my.package:default'
setup = getToolByName(context, 'portal_setup')
setup.runImportStepFromProfile(PROFILE_ID, 'registry')
Run Code Online (Sandbox Code Playgroud)
结果是:
ValueError: No such import step: registry
Run Code Online (Sandbox Code Playgroud) 在Plone附加产品中,我有一个控制面板页面,可以设置一些配置选项.它们存储在plone.registry中.控制面板适配器__init__通过查询接口来获取其方法中的不同字段,如:
class MultiLanguageExtraOptionsAdapter(LanguageControlPanelAdapter):
implementsOnly(IMultiLanguageExtraOptionsSchema)
def __init__(self, context):
super(MultiLanguageExtraOptionsAdapter, self).__init__(context)
self.registry = getUtility(IRegistry)
self.settings = self.registry.forInterface(
IMultiLanguageExtraOptionsSchema)
Run Code Online (Sandbox Code Playgroud)
现在我向IMultiLanguageExtraOptionsSchema接口添加一个额外的字段并重新启动plone.在控制面板页面上我然后出错:
KeyError: 'Interface `plone.app.multilingual.interfaces.IMultiLanguageExtraOptionsSchema` defines a field `blah`, for which there is no record.'
Run Code Online (Sandbox Code Playgroud)
(这是forInterface方法的预期,如plone.registry自述文件中所述.记录不存在.)
当然,如果我通过GenericSetup(registry.xml)添加该字段,并重新安装产品/重新运行"控制面板"步骤,一切都很好:
<registry>
<records interface="plone.app.multilingual.interfaces.IMultiLanguageExtraOptionsSchema">
<value key="blah"></value>
<records>
<registry>
Run Code Online (Sandbox Code Playgroud)
但我不想强迫用户重新安装产品,因为产品特定的控制面板中有一个新选项.所以我的问题是:是否有建议的方法将新字段的新记录转换为plone.registry?
我正在一个项目中创建一个Plone 4.3站点,该站点安装了plone.app.contenttypes作为默认内容类型.创建网站后,我会看到所有默认内容(首页和一些文件夹和集合)仍然是基于Archetypes的内容.
我想避免创建该内容,我想知道是否有更好的方法来摆脱它在后安装步骤中手动擦除它.
我默认需要一个空站点.
我知道可以使用GenericSetup和一个XML文件注册浏览器层,但我需要以编程方式进行注册.
这可能吗?
我正在努力学习如何为Plone 5开发插件.为了做到这一点,我坚持Plone 5训练(https://training.plone.org).
我按照训练的建议安装了一个带有plone的Vagrant/Virtualbox机器,但是当我尝试运行buildout时,我总是得到这个错误
vagrant@training:/vagrant/plonetheme.tango$ ./bin/buildout
Develop: '/vagrant/plonetheme.tango/.'
Updating _mr.developer.
Installing instance.
/home/vagrant/buildout-cache/eggs/setuptools-20.7.0-py2.7.egg/pkg_resources/__init__.py:187: RuntimeWarning: You have iterated over the result of pkg_resources.parse_version. This is a legacy behavior which is inconsistent with the new version class introduced in setuptools 8.0. In most cases, conversion to a tuple is unnecessary. For comparison of versions, sort the Version instances directly. If you have another use case requiring the tuple, please file a bug with the setuptools project describing that need.
stacklevel=1, …Run Code Online (Sandbox Code Playgroud)