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
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
- Doppelungen von URL-Name dürfen nicht vorkommen
- 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'
- Verwenden Sie möglichst oft den Kurztitel für die automatische Erzeugung der deklarativen URL bzw. kürzen/optimieren Sie primär die Kurztitel
- Sollte der Kurztitel nicht eindeutig bzw. nicht hinreichend deklarativ sein, nur dann ergänzen Sie einen Wert für URL-Name
- 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: 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