Sofern die Systemkonfiguration um das Attribut "URL-Name" [siehe unten] erweitert ist, ermöglicht ZMS neben der automatischen Erzeugung der deklarativen URLs auf Basis des Kurztitels die manuelle Pflege der Dokument-Pfade. Da man bei großen Websites sehr schnell die Übersicht über den aktuellen Status der redaktionellen Optimierung der Strings verlieren kann, empfiehlt sich der Einsatz einer Listen-Methode, die den aktuellen Bearbeitungs-Status anzeigt:
alle aktiven PAGE-Objekte eines ZMS-Clients (einer Sprache) werden nach Kurztitel alphabetisch auflistet. Da PAGE-Objekte auch Inklusionslinks sein können und diese Kurztitel bzw. Titel vom Linkziel akquirieren, liefert die API-Methode filteredTreeNodes() leider nur ein unzureichendes Ergebnis. Für die geforderte Sortierung ist eine eigene Objektliste zu erzeugen, welche folgende Objekt-Eigenschaften ermittelt:

  • Kurztitel
  • Objekt-ID
  • Automatisch erzeugte deklarative ID (per Kurztitel)
  • Eingabewert für deklarative ID (URL-Name)
  • Link auf das Editing-Interface
Alphabetische Auflistung von Kurztitel und URL-Namen

Praktische Redaktionshilfe: Alphabetische Auflistung von Kurztitel und URL-Namen

Die Liste liefert folgende Funktionalität: Wenn man mit der Maus über den Kurztitel fährt, so ist der automatisch auf Basis des bestehenden Kurztitels erzeugten URL-Name zu lesen; dieser würde verwendet, sofern man keinen Wert für URL-Name gesetzt hätte. Dieser automatische URL-Name enthält keine Sonder- oder Leerzeichen und besteht nur aus Kleinbuchstaben; besagte Zeichen werden in einen Unterstrich gewandelt. Mit Klick auf den Kurztitel kommt man direkt in das Eigenschaften-Menü, wo man die ggf. erforderlichen Attribut-Änderungen vornehmen könnte.
Zur Erzeugung der Liste dient folgender DTML-Code; dieser wird in Form einer DTML-Methode, z.B. listfilteredURLnames, auf der Template-Ebene abgelegt.

<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"/></head>
<body style="font-family:courier;">

<pre style="border:1px solid #999;background:#eee;width:500px;padding:0px 3px">LISTS SHORT TITLE AND URL-NAME OF ALL PAGE-OBJECTS: 
'titlealt, 'attr_dc_identifier_url_node'
<i>Kontrolle der deklarativer URL-Namen</i>
(c) fh, 31.10.2006
</pre>

<dtml-with "content">
<dtml-var f_standard_html_request>
<h1><a href="<dtml-var "getHref2IndexHtml(REQUEST)">" target="_blank"><dtml-var "getTitlealt(REQUEST)"></a></h1>

<dtml-if "REQUEST.get('preview','')=='preview'">
  <b>Arbeitsversion</b> | <a href="A_listURLNames">Zeige Liveversion</a>
<dtml-else>
  <a href="A_listURLNames?preview=preview">Arbeitsversion</a> | <b>Liveversion</b>
</dtml-if>


<dtml-comment> ### Initialisierung der Objekt-Liste ### </dtml-comment>
<dtml-call "REQUEST.set('oblist',[])">

<dtml-comment> ### Iteration ueber den Content-Baum ### </dtml-comment>
<dtml-in "filteredTreeNodes(REQUEST,PAGES)">

<dtml-comment> ### Initialisierung der Liste für Objekt-Details ### </dtml-comment>
<dtml-call "REQUEST.set('obdetails',[])">

<dtml-comment> ### EXTEND: erweitet die Liste ohne Klammerung ### </dtml-comment>
<dtml-call "obdetails.extend(['id',id])">

<dtml-comment> ### Bei Linkobjekte gibt es kein Property-Menue ### </dtml-comment>
<dtml-if "isMetaType(['ZMSLinkElement'])">
  <dtml-call "obdetails.extend(['editurl',_.string.split(getHref2IndexHtml(REQUEST),'/index')[0]+'/manage'])">
<dtml-else>
  <dtml-call "obdetails.extend(['editurl',_.string.split(getHref2IndexHtml(REQUEST),'/index')[0]+'/manage_properties'])">
</dtml-if>

<dtml-call "obdetails.extend(['titlealt',getTitlealt(REQUEST)])">
<dtml-call "obdetails.extend(['urlname',getObjProperty('attr_dc_identifier_url_node',REQUEST)])">

<dtml-comment> ### Umwandeln der obdetails-Liste in ein Dict und Anhängen als weitere Listen-Entity an objlist ### </dtml-comment>
<dtml-call "oblist.append(dict_list(obdetails))">

</dtml-in>

<dtml-comment> ### Sortierte Ausgabe nach key-Mapping ### </dtml-comment>
<ol>
 <dtml-in "sort_list(oblist,'titlealt','asc')" mapping>
   <li><a href="<dtml-var editurl>" target="_blank" title="Bearbeite:   /<dtml-var "id_quote(titlealt)">/"><dtml-var titlealt></a> 
       [<dtml-var id>, <span style="color:red;font-weight:bold"><dtml-var urlname></span>]
   </li>
  </dtml-in>
</ol>

</dtml-with>

</body>
</html>

Empfehlungen für die Erfassung der deklarativen URLs

  1. Doppelungen von URL-Name dürfen nicht vorkommen
  2. Die Eindeutigkeit von URL-Name muss zudem sprachübergeifend sein, d.h. ein Knoten "news" muss sich unbedingt in den Sprachen unterscheiden, z.B. ger:'nachrichten', eng:'news'
  3. Verwenden Sie möglichst oft den Kurztitel für die automatische Erzeugung der deklarativen URL bzw. kürzen/optimieren Sie primär die Kurztitel
  4. Sollte der Kurztitel nicht eindeutig bzw. nicht hinreichend deklarativ sein, nur dann ergänzen Sie einen Wert für URL-Name
  5. Nutzen Sie möglichst die Worte aus der Webmarketing- bzw. Begriffsraum-Analyse für Kurztitel bzw. URL-Name.

Anhang: Konfiguration DC.Identifier.URL.Node

Metaattribut-Konfiguration

Metaattribut-Konfiguration: für redaktionell bearbeitete deklarative URLs wird das Standard-Attribut DC.IDentifier.URL.Node verwendet

Erstellt von: Dr. F. Hoffmann , erstellt am:  27.06.2008 , zuletzt geändert: 27.06.2008