HTML Meta-Daten setzen und pflegen

Über Meta-Tags können Sie nützliche Anweisungen für Web-Server, Web-Browser und Suchdienste zentral notieren und optional den Redakteuren zur Pflege anbieten.

Die HTML-Kopfdaten einer Webseite enthalten wichtige Informationen für Webserver, Browser und z.B. Suchdienste / Robots. Weblication® bietet Ihnen für dieses wichtige Instrument einfache Pflegemöglichkeiten für diese Metatags und die Ausgabe über das zentrale Ausgabetemplate.

In der BASE Projektbasis werden die HTML-Kopfdaten über das zentrale Darstellungstemplate (standard.wDocument.php) eingelesen. Definiert sind diese Angaben im htmlHeader-Template, welches im XSL-Template für die "XSLT-Includes und Funktionen" (includes.global.php) abgelegt ist.

BASE
BASE Classic
BASE

In der BASE Projektbasis werden die HTML-Kopfdaten über das zentrale Darstellungstemplate (standard.wDocument.php) eingelesen. Definiert sind diese Angaben im htmlHead-Template, welches über ein separates XSL-Template abgelegt ist.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/standard.wDocument.php zum Head

...
  ...
  <!-- Definition der Darstellung -->
  <xsl:template wChecksum="e1669740dde60c45f82c1fec3d181534" match="/wd:document">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="{$wLanguageProjectISO}">
      <xsl:attribute name="class">pagestatus-init no-js no-weditor scrolled-top page_var<xsl:value-of select="$wPageLayout"/> object-<xsl:value-of select="/wd:document/wd:extension/wd:object/@type"/><xsl:if test="/wd:document/wd:extension/wd:object/@type = 'include'"> object-[wPlaceholderPost:objectIncludeType]</xsl:if><xsl:if test="/wd:document/wd:extension/wd:object/wd:data[@id = 'objectLayout']/text()"> object-<xsl:value-of select="/wd:document/wd:extension/wd:object/@type"/>_var<xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'objectLayout']/text()"/></xsl:if><xsl:if test="php:functionString('wCSS::getValueOfHash', $wCSSPath, concat('.page_var', $wPageLayout), '-w-displayBlocks', 'blockLeft') != 'no'"> hasBlockLeft</xsl:if><xsl:if test="php:functionString('wCSS::getValueOfHash', $wCSSPath, concat('.page_var', $wPageLayout), '-w-displayBlocks', 'blockRight') != 'no'"> hasBlockRight</xsl:if> project-<xsl:value-of select="php:functionString('str_replace', '/', '', php:functionString('wProjectCur::getPath'))"/> subdir-<xsl:value-of select="php:functionString('wPathName::getDirName', php:functionString('wPathName::getDirTop', $wDocumentDir, 2))"/> navId-<xsl:value-of select="php:functionString('str_replace', 'wNoNavpoint()', 'wNoNavpoint', $wNavidStandard)"/></xsl:attribute>
      <head>
        <!-- HTML-Kopf -->
        <xsl:call-template name="htmlHead" wd:pathTemplate="globals/htmlHead.wGlobal.php"/>
      </head>
      <body>
      ...
...

An dieser Stelle definieren Sie die für Ihr Projekt wichtigen Kopfdaten der Projekt-Webseiten, unter anderem also Titel, Beschreibung, Schlüsselwörter, Robots-Einstellungen, etc. der Seite.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/globals/htmlHead.wGlobal.php zum htmlHead

...
  <!-- HTML-Header -->
  <!--@allowUpdate:1 info=""-->
  <xsl:template name="htmlHead">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>    
    <xsl:call-template name="insertPageTitle"/>
    <xsl:comment>
      Diese Seite wurde mit Weblication® CMS erstellt.
      Weblication® ist ein Produkt der Scholl Communications AG in 77694 Kehl.
      Weitere Informationen finden Sie unter https://www.weblication.de bzw. https://scholl.de.
    </xsl:comment>
    <xsl:call-template name="insertPageDescription"/>
    <xsl:call-template name="insertPageKeywords"/>
    <xsl:call-template name="insertPageRobots"/> 
    ...
    <meta name="Generator" content="Weblication® CMS"/>
    ...
    <!-- Eigene Meta-Tags: -->
    <xsl:if test="/wd:document/wd:extension/wd:object/wd:data[@id = 'googletranslate']/text() = 'notranslate'">
      <meta name="google" content="notranslate" />
    </xsl:if>
    ...
    <meta name="facebook-domain-verification" content="xxxxxxxxxxxxxxxxxxx" />
  </xsl:template>
...

Dieses Quelltextbeispiel führt an, wie Sie z.B. Meta-Tags für Google oder Facebook setzen. Diese Meta-Informationen können Sie entweder für alle Seiten ausgeben (ohne if-Abfrage) oder nur bei Seiten, bei denen entsprechende Werte gesetzt sind (mit if-Abfrage umschlossen).

Auf ein Beispiel zur Pflege eigener Daten wird an der Stelle verzichtet, da es meist um einmalig zu setzende Werte geht.

BASE Classic

In der BASE Classic Projektbasis werden die HTML-Kopfdaten über das zentrale Darstellungstemplate (standard.wDocument.php) eingelesen. Definiert sind diese Angaben im htmlHeader-Template, welches im XSL-Template für die "XSLT-Includes und Funktionen" (includes.global.php) abgelegt ist.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/standard.wDocument.php zum Head

...
  ...
  <!-- Zentrale Funktionen, Templates und Skripte einbinden - -->
  <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/includes.global.php" wd:pathTemplate="misc/includes.global.php"/>
  ...
  <!-- Definition der Darstellung -->
  <xsl:template match="/wd:document">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$wLanguageProjectISO}" lang="{$wLanguageProjectISO}">
      <head>
        <!-- HTML-Kopf -->
        <xsl:call-template name="htmlHeader" wd:pathTemplate="misc/includes.global.php#htmlHeader"/>
      </head>
      <body>
      ...
...

An dieser Stelle definieren Sie die für Ihr Projekt wichtigen Kopfdaten der Projekt-Webseiten, unter anderem also Titel, Beschreibung, Schlüsselwörter, Robots-Einstellungen, etc. der Seite.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/includes.global.php zum htmlHeader

...
  <!-- HTML-Header -->
  <xsl:template name="htmlHeader">
    <xsl:call-template name="insertPageTitle" />
    <xsl:comment>
      Diese Seite wurde mit Weblication® CMS erstellt.
      Weblication® ist ein Produkt der Scholl Communications AG in 77694 Kehl.
      Weitere Informationen finden Sie unter https://www.weblication.de bzw. http://scholl.de.
    </xsl:comment>
    <xsl:call-template name="insertPageDescription" />
    <xsl:call-template name="insertPageKeywords" />
    <xsl:call-template name="insertPageRobots" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>  
    ...
    <meta name="Generator" content="Weblication® CMS"/>
    ...
    <!-- Eigene Meta-Tags: -->
    <xsl:if test="/wd:document/wd:extension/wd:object/wd:data[@id = 'googletranslate']/text() = 'notranslate'">
      <meta name="google" content="notranslate" />
    </xsl:if>
    ...
    <xsl:if test="/wd:document/wd:extension/wd:object/wd:data[@id = 'ogimage']/text() != ''">
      <!-- Stellen Sie sicher, dass nur JPEG-, PNG- oder GIF-Bilder im Pfad auswählbar sind und die von Facebook empfohlene Bildgrösse verwendet wird -->
      <meta property="og:image" content="{/wd:document/wd:extension/wd:object/wd:data[@id = 'ogimage']/text()}"/>
    </xsl:if>
    ...
  </xsl:template>
...

Dieses Quelltextbeispiel führt an, wie Sie z.B. Meta-Tags für Google oder Facebook setzen. Diese Meta-Informationen können Sie entweder für alle Seiten ausgeben (ohne if-Abfrage) oder nur bei Seiten, bei denen entsprechende Werte gesetzt sind (mit if-Abfrage umschlossen).

Die Pflege dieser Informationen setzen Sie am besten über die Metadaten-Maske und ermöglichen so einem Redakteur die individuelle Einstellung pro Seite. Ein Beispiel finden Sie nachfolgend.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/editmasks/standard.metadata.php

...
  <div class="wEditorExtensionLabel">Google Übersetzungstool ermöglichen</div>
  <div class="wEditorExtensionValue">
    <!-- web:text:start editor="select" values="translate|notranslate" texts="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_yes')"/>|<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_no')"/>" inputClass="select"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'googletranslate']/text()"/><!--web:text:stop-->
  </div>
...