我们目前正在开发没有 Studio 的 Nuxeo 项目,因为它超出了我们的预算。我们的目标是创建自定义 UI 并将 Nuxeo 用作内容管理系统。我们能够使用 SDK 执行 CRUD(创建新文档并添加标题和描述等属性)。
但是我们需要其他自定义属性,如组织名称、地址、电话号码等。有没有办法在不使用 Studio 的情况下创建我们自己的文档类型?是否可以在该自定义类型上使用 SDK 执行 CRUD?
有人可以帮忙吗?
我们目前正在开发没有 Studio 的 Nuxeo 项目,因为它超出了我们的预算。我们的目标是创建自定义 UI 并将 Nuxeo 用作内容管理系统。我们能够使用 SDK 执行 CRUD(创建新文档并添加标题和描述等属性)。
但是我们需要其他自定义属性,如组织名称、地址、电话号码等。有没有办法在不使用 Studio 的情况下创建我们自己的文档类型?是否可以在该自定义类型上使用 SDK 执行 CRUD?
有人可以帮忙吗?
首先创建定义新属性的模式(例如myType.xsd ):
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.nuxeo.org/ecm/schemas/cf-client/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="organization" type="xs:string"/>
<xs:element name="phone" type="xs:string"/>
<xs:element name="expired" type="xs:date"/>
</xs:schema>
然后定义引用新创建模式的类型扩展:
<?xml version="1.0"?>
<component name="my.project.nuxeo.types">
<require>org.nuxeo.ecm.core.CoreExtensions</require>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="myType" prefix="mt" src="schema/myType.xsd"/>
</extension>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
<doctype name="MyType" extends="Document">
<schema name="myType"/>
<schema name="common" />
<schema name="dublincore" />
<schema name="uid" />
<schema name="file"/>
<schema name="files" />
<facet name="Commentable"/>
<facet name="NXTag"/>
</doctype>
</extension>
</component>
注意:您还可以:
mt在示例中使用),您可以在从应用程序或 NXQL 访问新类型属性时使用该前缀。dublincore架构包含title,description和其他常见属性 - 请参见此处:https ://github.com/nuxeo/nuxeo/blob/master/modules/core/nuxeo-core/src/main/resources/schema/dublincore.xsd 。然后在MANIFEST.MF文件中注册上一步中的新类型扩展:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Vendor: my.project.nuxeo
Bundle-Name: my-project-nuxeo-core
Bundle-SymbolicName: my.project.nuxeo.my-project-nuxeo-core;singleton=true
Bundle-Version: 1.0.0
Nuxeo-Component: OSGI-INF/types.xml
使用以下结构将所有这些文件压缩到 jar 存档中:
my-project-nuxeo-core.jar
├── META-INF
│ └── MANIFEST.MF
├── OSGI-INF
│ └── types.xml
└── schema
└── myType.xsd
并将结果 jar 存档复制到Nuxeo 安装的nxserver/bundles目录中。重启 Nuxeo,它会自动更新数据库结构。
您可以在 Nuxeo 文档中找到更多信息 - 例如这里:https ://doc.nuxeo.com/nxdoc/data-modeling/