【发布时间】:2013-03-20 15:37:27
【问题描述】:
我已经尝试了一天左右的时间来扩展具有额外属性的人模型,但到目前为止,都没有成功。我关注了this old tutorial,但无法正常工作。查看页面上的一些回复表明有人在 4.1 中尝试过但没有让它工作。我正在针对 4.2 进行测试。 任何见解将不胜感激。
编辑:
我有以下 customContentModel.xml:
<model name="cm:contentModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Optional meta-data about the model -->
<description>Professional Person Model</description>
<author></author>
<version>1.0</version>
<!-- Imports are required to allow references to definitions in other models -->
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
<import uri="http://www.syn.fr/model/person/ext" prefix="ppm"/>
</imports>
<types>
<type name="cm:person">
<title>Person</title>
<parent>cm:authority</parent>
<properties>
<!-- The tokenisation set here is ignored - it is fixed for this type -->
<!-- This is so you can not break person lookup -->
<property name="cm:userName">
<type>d:text</type>
<mandatory>true</mandatory>
<constraints>
<constraint ref="cm:userNameConstraint" />
</constraints>
</property>
<property name="cm:homeFolder">
<type>d:noderef</type>
<mandatory>true</mandatory>
</property>
<property name="cm:firstName">
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="cm:lastName">
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="cm:middleName">
<type>d:text</type>
</property>
<property name="cm:email">
<type>d:text</type>
</property>
<property name="cm:organizationId">
<type>d:text</type>
</property>
<property name="cm:homeFolderProvider">
<type>d:text</type>
</property>
<property name="cm:defaultHomeFolderPath">
<type>d:text</type>
</property>
<property name="cm:presenceProvider">
<type>d:text</type>
</property>
<property name="cm:presenceUsername">
<type>d:text</type>
</property>
<property name="cm:organization">
<type>d:text</type>
</property>
<property name="cm:jobtitle">
<type>d:text</type>
</property>
<property name="cm:location">
<type>d:text</type>
</property>
<property name="cm:persondescription">
<type>d:content</type>
</property>
<property name="cm:telephone">
<type>d:text</type>
</property>
<property name="cm:mobile">
<type>d:text</type>
</property>
<property name="cm:companyaddress1">
<type>d:text</type>
</property>
<property name="cm:companyaddress2">
<type>d:text</type>
</property>
<property name="cm:companyaddress3">
<type>d:text</type>
</property>
<property name="cm:companypostcode">
<type>d:text</type>
</property>
<property name="cm:companytelephone">
<type>d:text</type>
</property>
<property name="cm:companyfax">
<type>d:text</type>
</property>
<property name="cm:companyemail">
<type>d:text</type>
</property>
<property name="cm:skype">
<type>d:text</type>
</property>
<property name="cm:instantmsg">
<type>d:text</type>
</property>
<property name="cm:userStatus">
<type>d:text</type>
</property>
<property name="cm:userStatusTime">
<type>d:datetime</type>
</property>
<property name="cm:googleusername">
<type>d:text</type>
</property>
<property name="cm:emailFeedDisabled">
<type>d:boolean</type>
</property>
<property name="cm:subscriptionsPrivate">
<type>d:boolean</type>
</property>
<!-- system maintained / protected values -->
<property name="cm:emailFeedId">
<type>d:long</type>
<protected>true</protected>
</property>
<property name="cm:sizeCurrent">
<type>d:long</type>
<protected>true</protected>
<mandatory enforced="true">true</mandatory>
</property>
<property name="cm:sizeQuota">
<type>d:long</type>
<protected>true</protected>
</property>
</properties>
<associations>
<association name="cm:avatar">
<source>
<role>cm:avatarOf</role>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:content</class>
<role>cm:hasAvatar</role>
<mandatory>false</mandatory>
<many>false</many>
</target>
</association>
</associations>
</type>
<mandatory-aspects>
<aspect>ppm:attributes</aspect>
</mandatory-aspects>
</types>
</model>
我收到一个关于 cm:authority 的错误,说它找不到。肯定所有 cm:* 命名空间对象都会在可扩展对象之前加载,因此 cm:authority 本身将可用吗?
【问题讨论】:
-
你有没有让额外的属性在模型中定义并在 repo/api 中可读/可写? (这是开始分享部分之前要做的第一步!)
-
这个问题仍然存在。我更新了我的问题。
-
我认为您的自定义内容模型必须有一个唯一的名称。您可以尝试更改它,使其不会与任何内置的 Alfresco 模型文件发生冲突吗?
-
不是根据这篇文章中的第二个用户似乎已经逃脱了它:forums.alfresco.com/forum/developer-discussions/… 此外,这并不意味着将创建另一个 Person 类型的模型,而不是仅仅扩展原来的模型已经在那里了吗?
-
如果您要覆盖内置类型,您的 type 将希望成为
cm:person。这是我认为您需要使用唯一名称的整体模型名称(即不是cm:contentModel)