Sie sind hier: TeilnehmerInnen > RHase's Home > CMF/Plone Meta-Daten CMF/Plone Meta-DatenEinrichtung von Meta-Daten fuer Suchmaschinen/Web-Crawler bei CMF/Plone
In Meta-Daten koennen verschiedene nuetzliche Anweisungen fuer Suchmaschinen, Web-Browser und automatische Suchprogramme im Internet ("Robots", Web-Crawler) abgelegt werden. Meta-Daten koennen unter anderem Angaben zum Autor und zum Inhalt der Datei enthalten. Sie koennen aber auch HTTP-Befehle absetzen, zum Beispiel zum automatischen Weiterleiten des Web-Browsers zu einer anderen Adresse.
Seit HTML v4.0 gibt es keine Vorgabe mehr fuer die Meta-Tags, sondern nur noch eine Definition f�r den grunds�tzlichen Aufbau. Neben den "klassischen" Meta-Daten gibt's auch eine "Dublin Core Metadata Initiative", die vom W3-Konsortium "begruesst" wird. Viele der groesseren Suchmaschinen kommen mittlerweile mit dem Dublin-Core zurecht. In Plone kleiner v2.0 sollte eigentlich automatisch ein Dublin-Core eingefuegt werden, das scheitert aber daran, dass das entsprechende Python-Script fehlt. Details und Korrektur siehe weiter unten unter Bemerkungen. Nun zum Einrichten der Meta-Daten unter Plone: Im ZMI innerhalb der Plone-Seite auf oberster Ebene das Template "/portal_skins/plone_templates/header" customizen (Button "customize"). Dadurch wird eine Kopie "/portal_skins/custom/header" erzeugt und im ZMI-Editor geoeffnet. Im oberen Bereich des ZPTs folgenden Abschnitt suchen ... --CODE--> <--CODE-- ... und folgendermassen erweitern: --CODE--> <--CODE-- Darunter koennen nun die Meta-Tags eingefuegt und an die eigenen Anforderungen angepasst werden: Beispiel Meta-Daten "klassisch": --CODE--> <--CODE-- Beispiel Meta-Daten nach Dublin-Core: --CODE--> content="..."> <--CODE-- Abschliessend nicht das speichern ("save changes") vergessen ; Bemerkungen: habe ich im obigen Beispiel fest verdrahtet, da ich noch nicht das Plone-System mit den Keywords verstehe. Bei den "klassischen" Metadaten habe ich und gemischt. Grund dafuer ist, das viele Suchmaschinen eine Kurz-Beschreibung (meta name="description") mit ca. 200 Zeichen und eine ausfuehrliche Beschreibung (meta name="DC.Description") mit ca. 1000 Zeichen aktzeptieren. In Plone fehlt fehlt das Script listMetaTags.py "/CMF/CMFDefault/skins/generic", welches im Template "header" aufgreufen werden soll: --CODE--> tal:repeat="keyval here/listMetaTags" tal:attributes="name python:keyval[0]; content python:keyval[1];" /> <--CODE-- Die aktuelle Entwicklung des Python-Scripts findet statt unter http://cvs.zope.org/Products/CMFDefault/skins/generic/listMetaTags.py Die derzeit aktuelle Version 1.2 vom 23.12.2003 ist leider unvollstaendig und zudem fehlerhaft. Nimmt man das folgende Codeteil heraus, werden ein paar DublinCore-Tags geliefert: --CODE--> for creator in context.listCreators(): hdrlist.append( ( 'DC.creator', creator ) ) for contributor in context.listContributors(): hdrlist.append( ( 'DC.contributor', contributor ) ) <--CODE-- Damit das Python-Script vom header-Template verwendet wird, erstellt man in "/portal_skins/custom/" ein Python-Script mit Namen "listMetaTags" und fuegt den folgenden Inhalt ein: --CODE--> hdrlist = [] # These two are import for most search engines hdrlist.append( ( 'description', context.Description() ) ) hdrlist.append( ( 'keywords', ', '.join( context.Subject() ) ) ) hdrlist.append( ( 'DC.description', context.Description() ) ) hdrlist.append( ( 'DC.subject', ', '.join( context.Subject() ) ) ) #for creator in context.listCreators(): # hdrlist.append( ( 'DC.creator', creator ) ) #for contributor in context.listContributors(): # hdrlist.append( ( 'DC.contributor', contributor ) ) if context.Publisher() != 'No publisher': hdrlist.append( ( 'DC.publisher', context.Publisher() ) ) created = context.CreationDate() # Filter out DWIMish artifacts on effective / expiration dates effective = context.effective_date eff_str = ( effective and effective.year() > 1000 and effective != created ) and effective.Date() or '' expires = getattr( context, 'expiration_date', None ) exp_str = ( expires and expires.year() < 9000 ) and expires.Date() or '' hdrlist.append( ( 'DC.date.created', created ) ) hdrlist.append( ( 'DC.date.modified', context.ModificationDate() ) ) if exp_str or exp_str: hdrlist.append( ( 'DC.date.valid_range' , '%s - %s' % ( eff_str, exp_str ) ) ) hdrlist.append( ( 'DC.type', context.Type() ) ) hdrlist.append( ( 'DC.format', context.Format() ) ) hdrlist.append( ( 'DC.language', context.Language() ) ) hdrlist.append( ( 'DC.rights', context.Rights() ) ) # Strip empty values return filter( lambda x: x[1], hdrlist ) <--CODE-- Infos zu Metadaten: http://selfhtml.teamone.de/html/kopfdaten/meta.htm#allgemeines http://dublincore.org/ Geschrieben von RHase . Letzte �nderung 13.02.2004 17:49. |