SAPI does not describe functional solutions at the system level. The structure of the data repository and interaction with it are designed at the discretion of CMS developers. However, for description unification and exchange of functional solutions (see “SAPI Works Gallery” http://xmlsapiens.org/lib/) the specification provides a list of recommended applications to be referred to in dynamic data containers.
The list contains applications (functions of the CMS programming language), their descriptions, parameters and variables of returned nodes sets (see section 3.8.5.1). The SAPI specification provides no recommendations on the content of the functions, but recommends input data (parameters) and output data (nodes properties of the CMS application nodes set).
&dhtml.bindcontext;
Additional string in the application parameters (additional_command_string) may contain one of the following commands:
|
Command |
Description |
|
first |
Function returns the first node of the nodes set only. |
|
last |
Function returns the last node of the nodes set only. |
|
id[string_id] |
Function returns a set of nodes according to the transmitted string of identifiers separated by commas. |
When in the <FOR-EACH> element a reference to the system programming language application is provided, it is implied that the application will return to the CMS parser a set of nodes, the elements of which will be sequentially transmitted to the content of the <FOR-EACH> element and become the list content. Each node of the returned nodes set contains the attributes defined in the Table of recommended CMS applications (see section 3.8.5).
Sample reference to CMS application nodes attributes:
|
<sapi:apply name="this.this.title.value" /> |
In the context of the SAPI specification, an information channel is an information structure that contains a navigation interface with a list of document summaries. The summaries may contain document references. For implementation of such a structure, a dynamic data container interacting with the CMS application get_infochannel should be created. The container may contain the description of output conditions for the list or for the document content. To enable the CMS parser to create the interface for information channel content management, the query containers generating the information channel document content should be defined in the container at least once.
The default parent page in the documented CMS structure for an information channel is the page containing the document with a channel navigation list. When a reference to the given information channel is required, attribute PARENT-ID of the SAPI:DDC element is used.
To enable the parser to determine query containers corresponding to the entries of the administration interface lists, attributes INDEXDATE, INDEXTITLE and INDEXDESC of the SAPI:DDC element should be used (see section 6.3.3)
Example of dynamic data container describing the news line:
|
<sapi:ddc name="var2" title="Example of a news line" category="infochannel.news" mdate="2004.11.05T08:15-0500"> <sapi:author> <sapi:name>Dmitry Sheiko</sapi:name> <sapi:email>sheiko@cmsdevelopment.com</sapi:email> <sapi:uri>www.cmsdevelopment.com</sapi:uri> </sapi:author> <sapi:choose> <sapi:when exp="1"> <sapi:for-each select="get_infochannel(10)" name="enum" title="News output"> <sapi:choose> <sapi:when exp="1"> Date <sapi:apply name="qc_newsdate.value.date[m/d/Y]" /><br /> <b><sapi:apply name="qc_newstitle.value" /></b><br /> <a sapi:href="this.this.href.value"><i><sapi:apply name="qc_newsannounce.value" /></i></a><br /> </sapi:when> </sapi:choose> </sapi:for-each> </sapi:when> </sapi:choose> </sapi:ddc> |