我正在使用 Alfresco Web Quick Start 创建一个基本的 CMS 网站。我想知道是否有人可以解释如何向我上传的内容添加属性/元数据。例如,如果我有一个图像库(具有作者、已发布、大小和 Mime 类型的默认元数据)并且想要获取数据属性等,我将如何实现呢?
我已经做了一些研究,但还没有找到具体的解决方案,对此问题的任何帮助将不胜感激!谢谢!
Alfresco 中给定节点的可用元数据由其类型和方面决定。
Alfresco 已经附带了一个 EXIF 方面(在此处查找“exif:exif”),您可能希望将其用于您的用例,不幸的是 WCM QS 隐藏了它。您应该创建一个文件(此处share-config-custom.xml
为示例,官方文档),该文件应列出您要公开的方面的所有字段。exif:exif
像下面这样的东西应该可以工作:
<config evaluator="model-type" condition="exif:exif">
<forms>
<form>
<field-visibility>
<show id="exif:dateTimeOriginal"/>
</field-visibility>
</form>
</forms>
</config>
这是皇家的痛苦。
首先,您需要创建一个模型。在该模型中,您需要创建一个方面。所有这些都在 XML 文件 #1 中。
然后你需要一个上下文文件来注册方面。这是 XML 文件 #2。
和一个属性文件,为方面提供一个友好的名称。
还有一个 web-site-custom-config 列出 XML 文件 1 中列出的所有属性。这是 XML 文件 #3
你需要一个共享自定义配置。这与 XML 文件 #3 的格式不同,但用途相同。
最后,您需要创建一个规则,自动将方面应用到文件夹中的每个项目。
参考:http: //blogs.alfresco.com/wp/wabson/2010/02/25/adding-custom-aspect-support-in-alfresco-share/
共享自定义配置.xml
<alfresco-config>
<!-- Repository Library config section -->
<config evaluator="string-compare" condition="RepositoryLibrary" replace="true">
<!--
Whether the link to the Repository Library appears in the header component or not.
-->
<visible>true</visible>
</config>
<config evaluator="string-compare" condition="DocumentLibrary">
<!--
Used by the "Manage Aspects" action
For custom aspects, remember to also add the relevant i18n string(s)
cm_myaspect=My Aspect
-->
<aspects>
<!-- Aspects that a user can see -->
<visible>
<aspect name="my:sampleProps" />
<aspect name="ac:androidContentProps" />
</visible>
<!-- Aspects that a user can add. Same as "visible" if left empty -->
<addable>
</addable>
<!-- Aspects that a user can remove. Same as "visible" if left empty -->
<removeable>
</removeable>
</aspects>
</config>
<config evaluator="node-type" condition="cm:content">
<forms>
<form>
<field-visibility>
<!-- fields from my example aspect -->
<show id="my:propOne" />
<show id="my:propTwo" />
<show id="my:propInt" />
<show id="my:propFloat" />
<show id="my:propDateTime" />
<show id="my:propDate" />
<show id="my:propBoolean" />
<show id="my:propQName" />
<show id="my:propCategory" />
<show id="my:propNodeRef" />
<show id="my:propPath" />
<!-- fields for android content -->
<show id="ac:propNotify" />
<show id="ac:propNotificationSummary" />
<show id="ac:propArchiveDate" />
<show id="ac:propPublishDate" />
<show id="ac:propPriority" />
<show id="ac:propRegion" />
<show id="ac:propMarket" />
<show id="ac:propDistrict" />
<show id="ac:propStore" />
</field-visibility>
</form>
</forms>
</config>
<config evaluator="string-compare" condition="Remote">
<remote>
<endpoint>
<id>alfresco-noauth</id>
<name>Alfresco - unauthenticated access</name>
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
<identity>none</identity>
</endpoint>
<endpoint>
<id>alfresco</id>
<name>Alfresco - user access</name>
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
<identity>user</identity>
</endpoint>
<endpoint>
<id>alfresco-feed</id>
<name>Alfresco Feed</name>
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
<connector-id>http</connector-id>
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
<basic-auth>true</basic-auth>
<identity>user</identity>
</endpoint>
<endpoint>
<id>activiti-admin</id>
<name>Activiti Admin UI - user access</name>
<description>Access to Activiti Admin UI, that requires user authentication</description>
<connector-id>activiti-admin-connector</connector-id>
<endpoint-url>http://localhost:8080/alfresco/activiti-admin</endpoint-url>
<identity>user</identity>
</endpoint>
</remote>
</config>
</alfresco-config>