大家好,我想这可能是一个编程问题,也可能不是一个问题。但我一直试图在concrete5论坛上问这个问题,但没有任何运气。希望有人能在这里给我一个线索。
是否可以为每个用户组在composer中为属性设置不同的默认值?
让我详细解释我的问题。我的客户大约有60个组织单位(每个单位都有自己的用户组)。对于每个单元,他们都希望有自己的页面列表。只包含单位成员张贴的所有文章。除此之外,各组织单位的所有员额也应集中在全球新闻类别的一个子类别上。所以我构造的内容结构是这样的
组织单位目录页类型
新闻页面类型
对于上述内容结构,我将“新闻”顶部类别和“组织单位目录”设置为page_type,并为新闻子类别创建一个属性(我将其命名为"news_location")。并再创建一个属性来确定该单元(我将其命名为" unit ")。
现在,我的问题是,如何预置特定用户组作曲家上的属性"news_location“和"unit”。例如,对于“单元1”的成员。我希望他们有一个独特的作曲家,它的属性"news_location“预先设置为”组织单元信息“,属性”单元“预先设置为”单元1“。他不能更改这些属性,这样我们就可以确保它们只会在适当的位置/类别上发布一篇新文章。
我一直在烦扰的concrete5 CMS,但无法找到任何方法来做到这一点。我应该挖掘代码并为此创建自己的模块吗?
就这样..。期待解决方案。如果我的问题太费解,我很抱歉。
发布于 2012-11-08 16:55:43
绝对没有内置特性允许您在Composer中为不同的用户组设置不同的默认属性值(事实上,我甚至认为为属性设置任何默认值都是不可能的--即使对所有用户都是相同的默认值)。
您可以覆盖核心CollectionType类--在getComposerContentItems方法中,您可以编写一些代码来检查当前页面类型,检查每个属性键,并根据当前用户组的不同,对某些属性进行默认值检查。
但真正困难的部分实际上是设置属性值。在Concrete5中没有优雅的方法可以这样做--属性值总是绑定到属性分配给的对象(例如,页面、文件或用户)。我过去曾尝试任意设置属性的任何默认值,但没有一种简单的方法。(对于文本框和复选框这样的简单属性类型来说并不难.但是对于更复杂的事情,比如DateTime和Select,它太复杂了,我甚至都没有费心去弄清楚)。
您可能需要尝试的是创建您自己的属性类型,然后在属性类型本身中,您将了解如何根据用户组设置默认值(如果没有值)。下面是我的一些基本代码,它演示了您自己的属性类型所需的最小值:type
还可以查看C5文档以获得更详细的解释和示例代码(但更复杂和更难理解):http://www.concrete5.org/documentation/developers/attributes/overview。
祝你好运!
https://stackoverflow.com/questions/13280926
复制相似问题