Screenshot kinderkrebsinfo.de
Author: R. Herold, F. Hoffmann, 2003/07/23
The KPOH project (Kompetenznetz Pädiatrische Onkologie und Hämatologie = Competency Net Pediatric Oncology and Hematology) is one of the important starting points of ZMS 2.0. The most meaningful characteristics are the LDAP-integration, the default EPOZ-editor, an adapted meta-set and diverse, partly very complex special objects (calendar). In addition a ZMS-action for generating DOI-codes exists. The following documentation mentions the most important vertices of the configuration.
Screenshot kinderkrebsinfo.de
Users are reached via the ZMS-root-menu "access"; in this menu users and roles are generated separately. At the overview page each "user" first is initialised without role (login-name, password, e-mail, hyperlink to profile data). In a user-specific sub-sub-menu any number of content-nodes is selected on which the user can have different rights resp. roles. For assigning access-nodes ('local roles') the following characteristics must be defined mandatory: language(s), URL of the content-node (via a sitemap-popup) and related role(s). Per default the known roles exist: admin, editor, author and subscriber.
(Note: since CVS-version of the LDAPUserFolder 2.2+, newer than 08.08.03, the dn is transferred correctly; moreover security holes with certificate-conditional authentication are processed.)
ZMS-access administration with LDAP-Interface; as authentication name that one is used which is specified in the Zope-LDAPUserFolder-configuration as 'Login Name Attribute'.
Configuration of the LDAPUserFolders for communication with the LDAP-Service; the product is absolutely neccessary.
The Zope product TextIndexNG 2.0 is used for indexing binary formats and enhances ZCatalog. When developing TextIndexNG 2.0 the regular indexing of ZMS-objects was excluded (so that adaptions with updating do not apply). Furthermore a 'CatalogAware'-function was introduced allowing an incremental indexing for each object modification; so the index is always up-to-date.
The differentiated search-interface consists of a text section containing DTML-code (download see teaser top right) for the specification of the search.
<a title="Edit!" <dtml-if "REQUEST.get('preview','')=='preview'">target="_parent"</dtml-if> href="manage?lang=<dtml-var lang>" style="color:red;text-decoration:none"> ·&bsp;</a><dtml-with "getSelf(['ZMSRubrik'])">
<dtml-in "filteredChildNodes(REQUEST,['ZMSRubrik'])">
<dtml-if "getObjProperty('attr_dc_type',REQUEST) != 'Resource'">
<p><i><a href="<dtml-var "getHref2IndexHtml(REQUEST,deep=0)">"
style="text-decoration:none">
<dtml-var "getTitle(REQUEST)"></a></i></p>
<ol>
<dtml-in "filteredChildNodes(REQUEST,PAGES)">
<li>
<a href="<dtml-var "getHref2IndexHtml(REQUEST,deep=0)">">
<dtml-if "getObjProperty('attr_dc_date',REQUEST)">
[<dtml-var
"getLangFmtDate(getObjProperty('attr_dc_date',
REQUEST),lang,'DATE_FMT')">]
</dtml-if>
<dtml-var "getTitle(REQUEST)"></a>
<br></li>
</dtml-in>
</ol>
</dtml-if>
</dtml-in>
</dtml-with>
Because the initial page is located under the primary channel node a start.dtml exists that addresses Apache if the request goes to the root:
<!-- BO start.html -->
<dtml-call "RESPONSE.redirect(content.e1664.absolute_url())">
<!-- EO start.html -->
The website is configured bilingual (ger, eng); a dictionary for the language variants exists ensuring the multilingualism of the navigation-string. The language selector in bodyContent_FunctionTranslate works without JS.
If the user does not call the final "index+morphem" in the URL, it will be directed to the language identified by the Browser.
The central DTML-template newsfeed.xml generates a RSS-steam by means of the attribute values from the calendar entries. The referencing of the calendar happens via the DTML-method 'objMap'; diverse IDs in form of a mapping-table are deposited there:
'calendar':content.e2331.e54,
'search':content.e2379,
Note: Find more about RSS here.