So ermöglichen Sie die Bearbeitung von zusätzlichen Dokumentendaten

Dieser Artikel beschreibt, wie Sie Werte in die Dokumentenerweiterung einpflegen, zu denen es noch keine Tags gibt (Reverse-Template-Modelling).

Um in einer bestehenden Präsenz im nachhinein weitere Informationen dynamisch in eine Inhaltsseite aufnehmen zu können, wozu es noch keine XML-Struktur gibt, können Sie folgende Bereiche nutzen:

  • innerhalb wd:extension (Dokumentenerweiterung)

    • wd:object/wd:data

  • innerhalb wd:item (Inhaltsbereiche)

    • wd:fragment

In allen anderen Fällen müssen die Tags in der Inhaltsseite bestehen, die bearbeitet werden sollen. In den o.g. Bereichen werden noch nicht vorhandene XML-Strukturen (xPath Knoten), wie in den  Beispielen unten angeführt, geschrieben. Grundsätzlich ist es auch innerhalb /wd:extension/wd:custom möglich, eigene Pfade zu schreiben, wird aber nicht in vollem Umfang unterstützt.

Das Nachführen einer nicht vorhandenen XML-Struktur nennen wir das Reverse-Template-Modelling.

Beispiele finden Sie nachfolgend. Beachten Sie bitte die Hinweise weiter unten.

Beispiel 1: Auszug aus standard.metadata.php

...
  <div class="wEditorExtensionLabel">Produktinformationen</div>                      
  <div class="wEditorExtensionValue">
    <!-- web:text:start editor="textarea" inputStyle="width:auto"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id='productinfos']/text()"/><!--web:text:stop-->
  </div>
  
  <div class="wEditorExtensionLabel">Produktpfad</div>                      
  <div class="wEditorExtensionValue">
    <!-- web:text:start editor="file" inputStyle="width:auto"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id='productpath']"/><!--web:text:stop-->
  </div>
  
  <div class="wEditorExtensionLabel">Seriennummer</div>                      
  <div class="wEditorExtensionValue">
    <!-- web:text:start editor="input" inputStyle="width:auto"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id='productinfos']/@serialnumber"/><!--web:text:stop-->
  </div>
...

Beispiel 2: Auszug aus link.standard.wItem.php für ein Fragment

...
  <xsl:template match="wd:item[@type = 'link.standard']">
    <!-- web:item:start name="Link" en:name="Link" iconStyle="" copy="1" delete="1" drag="1" display="" active="<xsl:value-of select="php:functionString('wEnv::getGlobalValue', 'wUseStructureEditor')" />" pathEditMastertemplate="/[IHR-LAYOUT-PROJEKT]/wGlobal/mastertemplates/items/link.standard.wItemMastertemplate.php" pathEditXslt="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/link.standard.wItem.php" type="link.standard"-->
    <div class="elementLink">         
      <xsl:choose>
        <xsl:when test="$wIsInEditor and @wEditorId">
          ...
          <!-- web:text:start editor="select" values="yes|no" texts="Ja|Nein" inputStyle="float:right;width:auto"--><xsl:value-of select="wd:fragment[@id='display']/text()"/><!--web:text:stop-->
          <script type="text/javascript">
            function updateLink(link){
            }
          </script>            
        </xsl:when>
...

Hinweise

  • Einträge in wd:custom werden mit type="char.default" gesetzt und unterstützen keine spezielle type-Angabe abhängig vom Editor
  • Objekt-Einträge werden abhängig von der editor-Angabe im Pflegetag mit entsprechender type-Angabe gesetzt:
    web:text:start editor="file"
    oder
    web:text:start editor="dir" 
    setzt type="src.default" 
    In allen anderen Fällen wird  type="char.default" gesetzt.