Difference between revisions of "Property Groups definition"

From OpenKM Documentation
Jump to: navigation, search
m
Line 4: Line 4:
  
 
{{Note|
 
{{Note|
 +
* For '''OpenKM 6.1''' the property groups DTD is '''property-groups-2.1.dtd'''.
 
* For '''OpenKM 6.0''' the property groups DTD is '''property-groups-2.0.dtd'''.
 
* For '''OpenKM 6.0''' the property groups DTD is '''property-groups-2.0.dtd'''.
 
* For '''OpenKM 5.1''' the property groups DTD is '''property-groups-2.0.dtd'''.
 
* For '''OpenKM 5.1''' the property groups DTD is '''property-groups-2.0.dtd'''.
Line 11: Line 12:
 
See this sample:
 
See this sample:
  
{{Note|In OpenKM 6.0 you don't need this CND file and only the XML definition is needed.}}
+
{{Note|Starting from OpenKM 6.0 you don't need this CND file and only the XML definition is needed.}}
  
 
'''PropertyGroups.cnd'''
 
'''PropertyGroups.cnd'''

Revision as of 11:40, 26 August 2012

Sometimes you want to add more information to a document, for example, you may want to add an internal code to the document for organization purposes and a description. OpenKM uses two files to describe this metadata: PropertyGroups.cnd and PropertyGroups.xml. The first one describes the properties to be added to the document node. This definition is used by Jackrabbit to retrieve and set these values. The second one is used by OpenKM to render the values described in the previous file.


Nota clasica.png
  • For OpenKM 6.1 the property groups DTD is property-groups-2.1.dtd.
  • For OpenKM 6.0 the property groups DTD is property-groups-2.0.dtd.
  • For OpenKM 5.1 the property groups DTD is property-groups-2.0.dtd.
  • For OpenKM 5.0 the property groups DTD is property-groups-1.1.dtd.
  • For OpenKM 4.1 is property-groups-1.0.dtd.

See this sample:


Nota clasica.png Starting from OpenKM 6.0 you don't need this CND file and only the XML definition is needed.

PropertyGroups.cnd

<okm = 'http://www.openkm.org/1.0'>
<okg = 'http://www.openkm.org/group/1.0'>
<okp = 'http://www.openkm.org/group/property/1.0'>

[okg:consulting] mixin
- okp:consulting.code (string) = '' autocreated
- okp:consulting.comment (string) = '' autocreated

PropertyGroups.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.0//EN"
                                 "http://www.openkm.com/dtd/property-groups-2.0.dtd">
<property-groups>
  <property-group label="Consulting" name="okg:consulting">
    <input label="Code" type="text" name="okp:consulting.code" value="COD-0000" />
    <textarea label="Comment" name="okp:consulting.comment" value=""/>
  </property-group>
</property-groups>

Here we can see an XML which describes the "Consulting" property group with a couple of properties. In the description, we can see an INPUT where the user should type an internal code (with a default value of "COD-0000" and a comment which describes the document content.

As you can see in the XML DOCTYPE, there is a formal definition at http://www.openkm.com/dtd/property-groups-2.0.dtd.


Nota clasica.png If your OpenKM server can't access to Internet, you can download this DTD and copy to a convenient place at you server. Remember to update your PropertyGroups.xml with the TDT location.
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 2.0//EN"
                                 "file:///path/to/property-groups-2.0.dtd">

But let's see which components it can handle:

  • input
  • suggestbox
  • checkbox
  • textarea
  • select
  • separator
  • text

See Form Element description for a detailed definition of every form element. These form elements have also an additional property called "readonly" with can be used to make a property not modifiable by the user.