- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在遍历其中包含内容项的文件夹。我使用portal_catalog 在某些路径上搜索大脑。大脑可以访问元数据,并且 Brain.getObject() 将返回实际的对象。我已经通过 Brain.getObject().aq_parent 获得了一个对象的父对象。现在我想获取对象在父级中的位置。一开始我尝试了brain.getObject().getObjPositionInParent(),后来我意识到getObjPositionInParent()是一个可以从索引数据访问的属性。
idxData = catalog.getIndexDataForRID(brain.getRID())
sJson = json.dumps( idxData )
l = brain.getObject()
lUpdate = {'path': '/'.join( l.getPhysicalPath()), 'meta_type': l.meta_type, 'title':l.getRawTitle(), 'remoteUrl': l.getRemoteUrl(), 'json':sJson}
当我将其打印到屏幕上时,我看到了从 Catalog.getIndexDataForRID 调用返回的字典中的所有项目。问题是对于所有对象, getObjPositionInParent() 都是一个空数组 ([])。在此页 http://developer.plone.org/searching_and_indexing/query.html ,看起来该值应该是一个整数。这让我想知道我是否必须去创建索引数据,如果是这样,那么我可能距离对象太远而无法获取必须已经存在的数据(因为文件夹显然知道将每个子项放在什么位置)在)。获取内容对象在父级中的位置的最佳方法是什么?预先感谢您提供任何信息?
更多:
我不确定为什么找不到适配器,但这可能与缺少注册有关。这是我构建 Zope 环境以直接从文件读取 ZODB 的脚本,而不是在正在运行的 Zope 实例之上读取 ZODB。我是否必须向 GlobalSiteManager 注册适配器?
谢谢你,马蒂亚斯。当我使用 sort_on="getObjPositionInParent"时,出现以下错误:
Traceback (most recent call last):
File "extractMenuStructure.py", line 459, in <module>
res = processFolder( home['childItems'], '/Sanford Guide Web Edition/' + appFolderNm + '', config['screens'] )
File "extractMenuStructure.py", line 390, in processFolder
results = portal_catalog(path={"query":currentPath, "depth":d},sort_on="getObjPositionInParent")
File "/Applications/Plone/buildout-cache/eggs/Products.CMFPlone-4.1.2-py2.6.egg/Products/CMFPlone/CatalogTool.py", line 427, in searchResults
return ZCatalog.searchResults(self, REQUEST, **kw)
File "/Applications/Plone/buildout-cache/eggs/Products.ZCatalog-2.13.20-py2.6.egg/Products/ZCatalog/ZCatalog.py", line 604, in searchResults
return self._catalog.searchResults(REQUEST, used, **kw)
File "/Applications/Plone/buildout-cache/eggs/Products.ZCatalog-2.13.20-py2.6.egg/Products/ZCatalog/Catalog.py", line 909, in searchResults
return self.search(args, sort_index, reverse, sort_limit, _merge)
File "/Applications/Plone/buildout-cache/eggs/Products.ZCatalog-2.13.20-py2.6.egg/Products/ZCatalog/Catalog.py", line 658, in search
b_size=b_size)
File "/Applications/Plone/buildout-cache/eggs/Products.ZCatalog-2.13.20-py2.6.egg/Products/ZCatalog/Catalog.py", line 678, in sortResults
index_key_map = sort_index.documentToKeyMap()
File "/Applications/Plone/buildout-cache/eggs/plone.app.folder-1.0.4-py2.6.egg/plone/app/folder/nogopip.py", line 91, in documentToKeyMap
ids = folder.getOrdering().idsInOrder()
File "/Applications/Plone/buildout-cache/eggs/plone.folder-1.0.1-py2.6.egg/plone/folder/ordered.py", line 41, in getOrdering
adapter = getAdapter(self, IOrdering)
File "/Applications/Plone/buildout-cache/eggs/zope.component-3.9.5-py2.6.egg/zope/component/_api.py", line 96, in getAdapter
raise ComponentLookupError(object, interface, name)
zope.component.interfaces.ComponentLookupError: (<ATFolder at /Sanford Guide Web Edition/amt>, <InterfaceClass plone.folder.interfaces.IOrdering>, u'')
最佳答案
最好的方法是像索引本身一样。
基于目录工具 (Products.CMFPlone) 的代码片段
from Acquisition import aq_inner
from Acquisition import aq_parent
from OFS.interfaces import IOrderedContainer
obj = brain.getObject()
parent = aq_parent(aq_inner(obj))
ordered = IOrderedContainer(parent, None)
if ordered is not None:
return ordered.getObjectPosition(obj.getId())
return 0
关于indexing - 获取内容对象在父级中的位置的最佳方法是什么? Plone 人4号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18405734/
有没有办法查看谁当前登录了 Plone 站点? 理由:我想确保在我重新启动实例时不会干扰处理内容的用户。 最佳答案 开箱即用,没有办法查看用户当前是否正在使用您的网站,只有当他们刚刚使用它时。只需关注
我需要 plone 默认用户注册表单中的验证码字段 (@@register)。 最佳答案 使用 https://plone.org/products/quintagroup.formlib.captc
如果 Plone 版本升级,是否需要删除安全补丁? 假设示例: Plone X.4.4 从 2015 年 5 月 4 日起开始运行安全补丁-XYZ Plone 升级至 X.4.5,在 Security
我有一个 Plone (4.2) 形式。我想要一个特定领域的动态来源。架构的相关部分: from plone.directives import form from z3c.relationfield
我正在尝试制作一个兼容 Plone 4 和 Plone 5 的插件。我遇到的问题是配置文件/默认 XML。 Plone 5:我有一个用于注册 CSS 的 registry.xmlPlone 4:我有一
我正在使用 Plone 4.0.5,我花了一天时间试图理解 plone.app.contentmenu。 我有一个基于自定义文件夹的原型(prototype)类型,并且我已经为它编写了一个 View
Plone 4 包含一个新的文件夹实现(在 plone.app.folder 包中),它对于包含许多项目的文件夹效率更高。是否可以升级 Plone 3 站点以使用此文件夹实现,而无需将站点完全升级到
PloneTestCase、plone.testing 和 plone.app.testing 包有什么区别? 顺便说一下,不建议将 PloneTestCase 用于测试新的 Plone 4 产品吗?
我们想从我的 Java 应用程序创建 plone 用户,那么我该怎么做呢? 已通过https://github.com/plone/plone.restapi ,但还没有得到清晰的看法。 我想在jav
我正在尝试通过 portal_migration 工具将 Plone 4.3.7 升级到 Plone 5.0,并遇到以下错误。有什么想法吗?这是一个简单的站点(没有附加组件),但它的历史可以追溯到 P
我正在为我的站点创建一个新的 plone.app.theming (Diazo) 主题。我的 rules.xml 有规则: 这会取消许多弹出窗口的样式,但不会取消联系人信息 AJAX 弹出框的样式,
我正在尝试将现有站点从 Plone 3.3.6 升级到 Plone 4.3.7,然后升级到 Plone 5.0。 现有站点非常小,并且没有安装任何附加产品(vanilla Plone、vanilla
我想让我的编辑在几个正交词汇表上标记内容,然后有一个很好的搜索界面,让用户可以根据这些词汇表搜索内容。 似乎解决方案的一部分存在 ATVocabularyManager - 让编辑器创建不同的词汇表
我在我工作的研究所中使用带有 Doormat 和 Diazo 的 Plone 4.1.4,并且必须通过添加内部链接到主菜单中项目的每个列和项目来手动制作页脚。 我想要的是这个页脚,即站点地图,每次用户
Plone 产品安装的日志轮换将是一个不错的功能。当前将日志轮换集成到 Plone 的最佳实践是什么? 我找到了这篇文章:http://encolpe.wordpress.com/2010/06/17
在一个 Plone 实例中,我有两个 Plone 站点。 在其中一个中,我有一个专门用于它的产品。 我想为 Products.PluggableAuthService.interfaces.event
是否可以使用每个插件扩展控制面板 View ? 例如 ca.db.core -> 为数据库连接设置制作基本字段集/选项卡 ca.db.person -> 如果已安装,则向“核心”设置添加一个新的字段集
这是一个普遍的问题,但受到一个例子的启发。一般的问题是:如何从未使用的附加组件中清除 Plone 站点?您可以通过多种方式生成未使用的附加组件,例如,如果您将一个附加组件用于一件事,然后您更喜欢另一件
2004 年,Mahendra 发表了关于使用 Plone 和 DSpace 管理数字 Assets 的演讲。 http://linux-bangalore.org/2004/schedules/ta
plone.resource 提供了将静态媒体文件放入 Plone 的简单方法 http://pypi.python.org/pypi/plone.resource 然而,plone.resource
我是一名优秀的程序员,十分优秀!