You are here:   » Home » Documentation » Project Details » KPOH

Project Documentation Cancer Net KPOH

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.

www.kinderkrebsinfo.de

Screenshot kinderkrebsinfo.de

LDAP-Authentification

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.)

Zoom (10KB)

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'.

Zoom (10KB)

Specification of individual rights; for each content node roles and languages can be assigned.

Zoom (9KB)

Configuration of the LDAPUserFolders for communication with the LDAP-Service; the product is absolutely neccessary.

Search

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.

Layout

  1. Colour modifications through the design defintion-metaelement: a special object consisting of a colour defintion and two image-elements provides the meta-declaration for the design of the channels. The element is integrated optionally into a folder node; the specified parameters define the colouring and image-presentation.
  2. Micronavigation: ends with a 'RedDot' for the mode change to the editorial system. The following DTML-code generates the link: <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">&nbsp;&middot;&bsp;</a>
  3. The channel navigation bodyTop-Channels generates a tabele with asymmetric cell widths so that it fits into the layout construction
  4. By default a content overview of the subordinate page elements appears below the folder object; via the dc:type-attribute 'FolderWithoutTOC' the mechanism can be stopped.
  5. Special content overview TOC-lists can be located individually via DTML-code at any place. Exemplary code:
<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>

Start page

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 -->

Multilingualism

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.

Chapter print

RSS-Feed: KPOH event dates

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.

Used Zope-products

  1. MailDropHost
  2. LDAPUserFolder
  3. TextIndexNG
  4. EPOZ-Editor
  5. other: PIL - Python Imaging Library

Configurations, Special Objects

Table of contents:

  • Glossary
    The Glossary object consist of two special objects: the glossary container providing the presentation and the data table glossaryItems containing the structured contents.
  • Brief Study Info
    Simple input mask for the brief description of a clinical trial
  • Chart-Series
    The special object can split the upload-File in preview images (gif/jpg/png) and the actual binary chartfile containing the charts e.g. in form of a PPT-file. The preview images must be put out in advance with the chart programme in an adequate small size as Batch. The images generate in each case one instance of the repetition element "preview" of which at a time two are listed side by side in the kind of a slide box. The upload file is deleted with each renewal of chartfile and preview.
  • Clinical Picture
    It concerns two special objects: disease and case. "Case" can be added arbitrarily often to "disease". "Disease" is the page-like container.
  • DOI-Generator
    DOI = Digital Object Identifier, worldwide definite character code for identifying a scientific publication, consists of a code sequence defined by convention with which the suffix is given unambiguously for each publication by the information provider. The action progressively generates definite numerics and identifies doublings caused by false manual declaration. Beyond this the action allows the output of a DOI-Batch-File (XML) for updating the publication meta data with DOI-Registrar.