Pflegemasken für Metadaten aus der Dokumentenerweiterung

Seiteninhalte, die innerhalb der Haupt-Inhaltsbereiche (wd:group, siehe Abschnitt "Der Inhaltsbereich - die wd:group-Elemente") abgelegt sind, werden in der Regel über die XSL-Stylesheets für Strukturelemente pflegbar gemacht. Alle Seiteninhalte, die ausserhalb der Haupt-Inhaltsbereiche notiert sind, können nicht auf diese Weise zur Pflege angeboten werden. Für diesen Zweck existieren in Weblication® spezielle Pflegemasken.

Pflegemasken sind für den Redakteur aufbereitete Oberflächen, in denen prinzipiell beliebige Inhalte der XML-Inhaltsseiten zur Pflege angeboten werden. In den meisten Fällen werden hier Inhalte pflegbar gemacht, die ausserhalb der Hauptinhaltsbereiche notiert sind, wie beispielsweise Metadaten der Dokumentenerweiterung wd:extension oder Objekt-Daten.

Pflegemaske für die Metadaten der Dokumentenerweiterung
Pflegemaske für die Metadaten der Dokumentenerweiterung

Das XSLT-Stylesheet der Pflegemaske für Metadaten

Einbinden der Standard-Pflegemaske

Die Pflegemaske für Daten aus der Dokumentenerweiterung wird durch ein eigenständiges XSLT-Stylesheet erzeugt.

Dieses Stylesheet liegt in der BASE unterhalb folgendem Pfad:

/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/editmasks/standard.metadata.php

Dieses Stylesheet wird im XSL-Darstellungstemplate standard.wDocument.php über folgenden Aufruf dynamisch eingebunden, sofern die Datei bearbeitet wird und sich im Editor befindet:

Einbinden der Standard-Pflegemaske für Metadaten aus der Dokumentenerweiterung

Einbinden der Pflegemaske für Metadaten
<xslIfIsInEditor:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/editmasks/standard.metadata.php"/>

Möchten Sie ein eigenes und/oder weiteres XSLT-Stylesheet als Pflegemaske verwenden, erstellen Sie dieses auf Basis der existierenden standard.metadata.php und legen es mit einem anderen Namen im selben Verzeichnis ab. Bitte beachten Sie, dass dann der Aufruf des Stylesheets im Darstellungstemplate verändert oder entsprechend erweitert werden muss. 

Aufruf der Pflegemaske

Nach dem Einbinden des XSLT-Styleheets der Pflegemaske muss dieses noch aufgerufen werden, sofern sich die Datei in Bearbeitung befindet. Dieser Aufruf erfolgt durch ein XSL:CALL-TEMPLATE Element, welches das entsprechende XSL:TEMPLATE mit dem Namen templateEditor aufruft. Das zugehörige XSL:TEMPLATE befindet sich im Stylesheet der Pflegemaske (standard.metadata.php)

Aufruf der Pflegemaske im XSLT-Darstellungstemplate

      <body>      
        ...

        <!-- Maske zur Pflege der Metadaten einbinden, falls man sich im Editor befindet -->
        <xslIfIsInEditor:call-template name="templateEditor" wd:pathTemplate="editmasks/standard.metadata.php"/>

        <div id="blockMain">
          <div id="blockMainInner">

Aufbau der Pflegemaske

Der Aufbau der Pflegemaske folgt dem standardisierten Aufbau eines XSLT-Stylesheets. Es beinhaltet als einziges TEMPLATE-Element das im vorigen Schritt aufgerufene XSL:TEMPLATE NAME="templateEditor".

Innerhalb dieses Templates werden nun für alle XML-Elemente innerhalb des XML-Knotens wd:extension entsprechende Eingabefelder notiert.

Bitte beachten Sie:

In der Standard-Pflegemaske werden alle Elemente durch absolute XPATH-Angaben referenziert. Dies bedeutet, dass jedes Element explizit zur Pflege angegeben werden muss (siehe Beipspiel)

Beispielhafter Code zur Bearbeitung des XML-Elements wd:title innerhalb der wd:extension (Titel des Dokuments)

<!--web:text:start editor="input" inputStyle="width:100%;"-->
<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/text()"/>
<!--web:text:stop-->

// Umbrüche im Code dienen lediglich der einfacherer Lesbarkeit
// Inhalte innerhalb von Pflegetags bitte IMMER ohne Umbrüche notieren!

Auf diese Weisen werden nun alle gewünschten Elemente der Dokumentenerweiterung pflegbar gemacht. Für unterschiedliche Typen an Datenfelder stehen Ihnen unterschiedliche web-Tags (Pflegetags) zur Verfügung. So können Texte beispielsweise mit einem reinen Texteditor oder einem WYSIWYG-Editor pflegbar gemacht werden, weiterhin stehen Ihnen Editoren zur Datei- oder Verzeichnisauswahl sowie Selectboxen zur Verfügung.

Eine vollständige Liste aller verfügbaren Pflegetags finden Sie hier:

Übersicht aller Pflegetags


Informationen zur Pflegemaske für Objekte finden Sie hier:

Pflegemasken für strukturierte Daten und Objekte

Code: Das komplette XSLT-Stylesheet für die Pflegemaske der BASE (Projektbasis)

Aufbau der Standard-Pflegemaske

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wslEditorPreCached="http://weblication.de/5.0/wsl" xmlns:wslEditorPre="http://weblication.de/5.0/wsl" xmlns:wd="http://weblication.de/5.0/wd" xmlns:php="http://php.net/xsl" exclude-result-prefixes="wd wsl php" version="1.0">     

  <!--@allowUpdate:1 info=""-->
  <xsl:template name="templateEditor">
    <!--
      Der folgende Bereich steht Ihnen nur zur Verfügung, wenn Sie sich im Bearbeitungsmodus der Seite befinden.
      Hier können Sie sämtliche Meta-Daten (Seitentitel, Seitenbeschreibung, Keywords, etc.) der Seite pflegen.
      Desweiteren stehen Ihnen folgende weitere Einstellungsmöglichkeiten zu Verfügung:
        - Vorschaubild einer Seite
        - Veröffentlichungszeitraum
        - Zuweisung zu einer Kategorie
        - Zuweisung eines aktiven Navigationspunktes
    -->    
    <xsl:if test="wd:extension/wd:object/@type != 'global'">
      <wsl:ifIsAdminOrUserStandard>
        <div id="wEditorExtensionArea">
          <div id="wEditorExtensionAreaInner">
            <div>

              <wsl:php>
                <![CDATA[
                 $correspondentLanguageFiles = wPageCur::getCorrespondentLanguageFiles();

                 if(count($correspondentLanguageFiles) > 1){

                   $languageStr = '';
                   foreach($correspondentLanguageFiles as $language => $data){
                     if($data['available'] == 1 && $language != ''){
                       if($data['current'] != 1){
                         $languageStr .=  '<img class="flag" onclick="wEditor.toggleFileLanguageEmbed(\''.$data['path'].'\')" src="/wGlobalProject/wGlobal/layout/images/flags/'.$language.'.svg" alt="'.$language.'"/>';
                       }
                     }
                   }
                   if($languageStr != ''){
                     print '<div class="wEditorExtensionFunction">';
                     print '  <label>'.wTexts::getTextUser('editor_show_hide_language_sync').'&#160;</label>';
                     print $languageStr;
                     print '</div>';
                   }
                 }   
                ]]>
              </wsl:php>

              <xsl:if test="php:functionString('wApplication::getVersion', 0) &lt; 16">
                <div class="wEditorExtensionFunctionLast">
                  <span id="wSwitchStructureEditor">
                    <xsl:choose>
                      <xsl:when test="not(php:functionString('wRequest::getCookie', 'showStructureEditor') = '0')">
                        <span class="checkboxContainer"><input id="wShowHideStructureEditor" type="checkbox" checked="checked" onclick="this.checked ? wEditor.showStructureEditor('') : wEditor.hideStructureEditor('')"/></span>
                      </xsl:when>
                      <xsl:otherwise>
                        <span class="checkboxContainer"><input id="wShowHideStructureEditor" type="checkbox" onclick="this.checked ? wEditor.showStructureEditor('') : wEditor.hideStructureEditor('')"/></span>
                      </xsl:otherwise>
                    </xsl:choose>
                    <label for="wShowHideStructureEditor"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_show_structure_editor')"/></label>
                  </span>
                </div>
              </xsl:if>

              <div id="wEditorExtensionBlockMetaCloser" class="wEditorExtensionBlockMetaCloser" style="display:none;">
                <wsl:buttonEdit icon="templates_editmasks" path="/wGlobalProject/wGlobal/layout/templates/editmasks/standard.metadata.php" showInEditor="1" caption=""  title="{php:functionString('wTexts::getTextUser', 'editor_edit_metadata')}"/>
              </div>
            </div>

            <div id="wEditorExtensionAreaExtended" class="cols2" style="display:none;">
              <xsl:if test="php:functionString('wApplication::getVersion', 0) &gt;= 16">
                <xsl:if test="php:functionString('wVariables::getValue', 'editable_metadata_og', '/wGlobalProject', '', '') = 'yes' or php:functionString('wVariables::getValue', 'editable_metadata_twitter', '/wGlobalProject', '', '') = 'yes'">
                  <xsl:attribute name="class">cols3</xsl:attribute>
                </xsl:if>
              </xsl:if>
              <div class="wEditorExtensionAreaExtendedCol">
                <xsl:choose>
                  <xsl:when test="not(/wd:document/wd:extension/wd:object/wd:data[@id = 'editMetadataInMask'] = '1') and not(/wd:document/wd:extension/wd:object/@type = 'default') and not(/wd:document/wd:extension/wd:object/@type = 'start') and not(/wd:document/wd:extension/wd:object/@type = 'global') and /wd:document/wd:extension/wd:object/wd:data[@id='title']">
                  </xsl:when>
                  <xsl:otherwise>
                    <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title_info')"/>" aiTextActive="1" aiTextTemplate="createTitleForWebsiteCurrentDraftDefault" editor="input" inputStyle="width:100%;" validator="required" optimizer="seoTitleDefault" errorMessage="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title_fill_out')"/>" titlePrefix="<xsl:value-of select="php:functionString('wVariables::getValue', 'title_prefix', '/wGlobalProject', '', 'wDoNotAdd')"/>" titlePostfix="<xsl:value-of select="php:functionString('wVariables::getValue', 'title_postfix', '/wGlobalProject', '', 'wDoNotAdd')"/>" --><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/text()"/><!--web:text:stop-->
                    <xsl:if test="php:functionString('wVariables::getValue', 'title_prefix', '/wGlobalProject', '', 'wDoNotAdd') != '' or php:functionString('wVariables::getValue', 'title_postfix', '/wGlobalProject', '', 'wDoNotAdd') != '' or php:functionString('wTexts::getText', 'title_prefix') != '' or php:functionString('wTexts::getText', 'title_postfix') != ''">
                      <!--web:text:start editor="checkbox" values="1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Hide title without pre- and postfix' ,'Ohne Pre- und Postfix anzeigen' ,'Sans afficher le préfixe et le suffixe')"/>" sourceid="hideTitlePrefixPostfix" onchange="wDocument.element('#webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/@wEditorId" />').wTriggerEvent('change')" entryStyle="margin-top:-8px;margin-bottom:8px"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'hideTitlePrefixPostfix']/text()"/><!--web:text:stop-->                      
                    </xsl:if>  
                  </xsl:otherwise>
                </xsl:choose>
                <xsl:choose>
                  <xsl:when test="not(/wd:document/wd:extension/wd:object/wd:data[@id = 'editMetadataInMask'] = '1') and not(/wd:document/wd:extension/wd:object/@type = 'default') and not(/wd:document/wd:extension/wd:object/@type = 'start') and not(/wd:document/wd:extension/wd:object/@type = 'global') and /wd:document/wd:extension/wd:object/wd:data[@id='description']">
                  </xsl:when>
                  <xsl:otherwise>
                    <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_description')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_description_info')"/>" aiTextActive="1" aiTextTemplate="createDescriptionForWebsiteCurrentDraftDefault" editor="textarea" optimizer="seoDescriptionDefault" inputStyle="height:57px;width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:description/text()"/><!--web:text:stop-->
                  </xsl:otherwise>
                </xsl:choose>
                <xsl:choose>
                  <xsl:when test="not(/wd:document/wd:extension/wd:object/wd:data[@id = 'editMetadataInMask'] = '1') and not(/wd:document/wd:extension/wd:object/@type = 'default') and not(/wd:document/wd:extension/wd:object/@type = 'start') and not(/wd:document/wd:extension/wd:object/@type = 'global') and /wd:document/wd:extension/wd:object/wd:data[@id='keywords']">
                  </xsl:when>
                  <xsl:otherwise>
                    <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_keywords')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_keywords_info')"/>" aiTextActive="1" aiTextTemplate="createKeywordsForWebsiteCurrentDraftDefault" editor="input" inputStyle="width:100%"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:keywords/text()"/><!--web:text:stop-->
                  </xsl:otherwise>
                </xsl:choose>
                <table cellpadding="0" cellspacing="0">
                  <tr>
                    <td style="width:80px">
                      <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_robots')"/></div>
                      <div class="wEditorExtensionValue">
                        <xsl:choose>
                          <xsl:when test="/wd:document/wd:extension/wd:meta/wd:robots/@value = '' or /wd:document/wd:extension/wd:meta/wd:robots/@value = 'index' or /wd:document/wd:extension/wd:meta/wd:robots/@value = 'noindex'">
                            <!-- web:text:start editor="select" values="index|noindex" texts="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_yes')"/>|<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_no')"/>" inputClass=""--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:robots/@value"/><!--web:text:stop-->
                          </xsl:when>
                          <xsl:otherwise>
                            <!-- web:text:start editor="text"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:robots/@value"/><!--web:text:stop-->
                          </xsl:otherwise>
                        </xsl:choose>
                      </div>
                    </td>
                    <xsl:if test="php:functionString('wVariables::getValue', 'clickAnalyzer_enable', '/wGlobalProject', '', 'wDoNotAdd') = 'yes'">
                      <td>
                        <!-- web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_clickAnalyzer')"/>" editor="select" values="no|yes" texts="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_no')"/>|<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_yes')"/>" inputClass=""--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'enableClickAnalyzer']/text()"/><!--web:text:stop-->
                      </td>
                    </xsl:if>
                  </tr>
                </table>

                <xsl:if test="/wd:document/wd:extension/wd:object/@type = 'start'">
                  <!--web:entries:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_rss')"/>" editor="file" path="" pathIfEmpty="" hideSuggest="1" inputStyle=""--><xsl:copy-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'rssFeeds']"/><!--web:entries:stop-->                  
                </xsl:if>
                
                <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Original page', 'Original-URL', 'URL originale')"/>" captionInfo="(Falls es sich bei der Seite z.B. um eine spezielle Variante handelt)" editor="file" path="" pathIfEmpty="self" inputStyle=""--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:canonical/@url"/><!--web:text:stop-->                
                
                <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'URL for A/B test', 'Alternative URL für A/B Test', 'URL pour A/B Test')"/>" help="Besucher bekommen je zur Hälfte die angegebene URL oder die aktuelle Seite angezeigt. Indem Sie auf den Seiten unterschiedliche Links (z.B. Kampagnenlinks) einsetzen, können Sie ermitteln, welche Seite erfolgreicher ist. Wir empfehlen, die alternative URL auf nicht durchsuchbar zu stellen, um das Ergebnis nicht zu verfälschen." editor="file" path="" pathIfEmpty="self" inputStyle=""--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:redirect/@url"/><!--web:text:stop-->
                <div data-weditor-dyndisplay="on" data-weditor-dyndisplay-type="showif" data-weditor-dyndisplay-target="" data-weditor-dyndisplay-watch="#webtag_text_{/wd:document/wd:extension/wd:meta/wd:redirect/@wEditorId}_url" data-weditor-dyndisplay-condition="wDocument.element('#webtag_text_{/wd:document/wd:extension/wd:meta/wd:redirect/@wEditorId}_url').value != ''" style="margin-top:4px">
                  <span><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Expires: ', 'Gültig bis: ', 'Valable jusquwAposau: ')"/></span><!--web:text:start editor="date" allowempty="1" inputStyle=""--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:redirect/@expires"/><!--web:text:stop-->&#160;<span><xsl:value-of select="php:functionString('wTexts::getText', 'o_clock')"/></span>
                  <!--web:text:start editor="select" values="abTest" inputStyle="display:none"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:redirect/@type"/><!--web:text:stop-->
                </div>  
                
                <xsl:if test="1 = 2">                
                  <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Redirect if permission denied' ,'Individuelle Weiterleitung bei fehlender Berechtigung' ,'Transfert individuel en cas dwAposautorisation manquante')"/>" help="" editor="file" path="" pathIfEmpty="self" inputStyle=""--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'redirectPermissionDenied']"/><!--web:text:stop-->                
                </xsl:if>
                
                <xsl:if test="1 = 2 and /wd:document/wd:extension/wd:reference">
                   <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Language reference', 'Sprachreferenz', 'Référence de la langue')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'If the reference ist blocked, no changes will update this page automatically.' ,'Eine blockierte Sprachreferenz verhindert, dass Änderungen der Hauptsprache in diese Seite übernommen werden.' ,'Une référence linguistique bloquée empêche les modifications apportées à la langue principale dwAposêtre reprises dans cette page.')"/>" editor="select" values="0|1" texts="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Activ' ,'Aktiv' ,'Actif')"/>|<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Blocked' ,'Blockiert' ,'Bloqué')"/>" inputStyle="" onchange="wEditor.saveDraftAndReload(null, true);"--><xsl:value-of select="/wd:document/wd:extension/wd:reference/@blocked"/><!--web:text:stop-->
                </xsl:if>                
              </div>              
              <div class="wEditorExtensionAreaExtendedCol">
                <!-- web:text:start editor="selectCssClassVariant" decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Layout', 'Darstellung', 'Layout')"/>" valueDefault="0" onchange="wEditor.saveDraftAndReload(null, true);" pathCss="<xsl:value-of select="$wCSSPath"/>" cssClass="page" validator="" inputStyle="width:100%" fragmentsInitOnChange=""--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'pageLayout']/text()"/><!-- web:text:stop -->                
                
                <xsl:if test="/wd:document/wd:extension/wd:object/@type = 'default' or /wd:document/wd:extension/wd:object/@type = 'start' or /wd:document/wd:extension/wd:object/@type = 'global'">
                  <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_thumbnail')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_thumbnail_info')"/>" editor="file" upload="1" extensions="gif|png|jpg|jpeg" preview="picture" pathIfEmpty="<xsl:value-of select="php:functionString('wProjectCur::getPathAssets')" />/img" inputStyle="width:100%"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:thumbnail/@src"/><!--web:text:stop-->
                  <div class="wEditorExtensionValue" data-weditor-dyndisplay="on" data-weditor-dyndisplay-type="showif" data-weditor-dyndisplay-target="" data-weditor-dyndisplay-watch="#webtag_text_{/wd:document/wd:extension/wd:meta/wd:thumbnail/@wEditorId}_src" data-weditor-dyndisplay-condition="wDocument.element('#webtag_text_{/wd:document/wd:extension/wd:meta/wd:thumbnail//@wEditorId}_src').value != ''">                    
                    <!--web:text:start editor="pictureArea" width="" height="" left="" top="" retainRelations="" picture="webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:thumbnail/@wEditorId" />_src"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:thumbnail/@area"/><!--web:text:stop-->
                  </div>
                </xsl:if>

                <xsl:if test="not(/wd:document/wd:extension/wd:object/wd:data[@id='navpoint'])">
                  <!--web:text:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_navpoint')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_navpoint_info')"/>" editor="navid" allowUseLastNavId="" pathNavigation="<xsl:value-of select="$wProjectPath" />/wGlobal/content/navigations/all.wNavigation.php"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:navpoint/@id"/><!--web:text:stop-->
                  <div class="wEditorExtensionValue">
                    <wsl:buttonEdit path="{$wProjectPath}/wGlobal/content/navigations/standard.wNavigation.php" icon="editStatus" caption="{php:functionString('wTexts::getTextUser', 'editor_page_navigation_edit')}" style="float:right;margin:2px 0 2px 2px"/>
                    <wsl:buttonInsertNavpoint pathNavigation="{$wProjectPath}/wGlobal/content/navigations/standard.wNavigation.php" icon="add_navpoint" caption="{php:functionString('wTexts::getTextUser', 'edit_navigation_insert_current_page')}" style="float:right;margin:2px 0 2px 0"/>
                    <div class="clearBoth"></div>
                  </div>
                </xsl:if>

                <xsl:if test="/wd:document/wd:extension/wd:object/@type = 'default' or /wd:document/wd:extension/wd:object/@type = 'start' or /wd:document/wd:extension/wd:object/@type = 'global'">
                  <!--web:categories:start decorators="default" caption="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_categories')"/>" captionInfo="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_categories_info')"/>" language="<xsl:value-of select="php:functionString('wUserCur::getLanguage')" />" pathCategories="/wGlobalProject/wGlobal/content/categories/standard.wCategories.php" editor="checkbox" inputStyle="max-height:120px;overflow:auto" multiple="1"--><xsl:copy-of select="/wd:document/wd:extension/wd:meta/wd:categories"/><!--web:categories:stop-->
                  <wsl:buttonEdit path="/wGlobalProject/wGlobal/content/categories/standard.wCategories.php" icon="editStatus" caption="{php:functionString('wTexts::getTextUser', 'editor_page_categories_edit')}" style="float:right;margin:2px 0 2px 0"/>
                  <div class="clearBoth"></div>
                </xsl:if>
              </div>
              <xsl:if test="php:functionString('wVariables::getValue', 'editable_metadata_og', '/wGlobalProject', '', 'wDoNotAdd') = 'yes' or php:functionString('wVariables::getValue', 'editable_metadata_twitter', '/wGlobalProject', '', 'wDoNotAdd') = 'yes'">
                <div class="wEditorExtensionAreaExtendedCol">
                  <xsl:if test="php:functionString('wVariables::getValue', 'editable_metadata_og', '/wGlobalProject', '', 'wDoNotAdd') = 'yes'">
                    <div class="wEditorExtensionAreaSheet">
                      <div style="font-weight:bold;"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Facebook Post' ,'Alternative Metadaten für Facebook' ,'Métadonnées alternatives pour Facebook')"/></div>
                      <!--web:text:start decorators="default" editor="input" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Title' ,'Titel' ,'Titre')"/>" inputStyle="width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'og_title']/text()"/><!--web:text:stop-->
                      <!--web:text:start decorators="default" editor="textarea" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Description' ,'Beschreibung' ,'Description')"/>" inputStyle="height:57px;width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'og_description']/text()"/><!--web:text:stop-->
                      <!--web:text:start decorators="default" editor="picture" upload="1" extensions="gif|png|jpg|jpeg" preview="picture" pathIfEmpty="<xsl:value-of select="php:functionString('wProjectCur::getPathAssets')" />/img" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Thumbnail' ,'Bild' ,'Vignette')"/>" inputStyle="width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'og_image']/text()"/><!--web:text:stop-->
                      <div class="wEditorExtensionValue" data-weditor-dyndisplay="on" data-weditor-dyndisplay-type="showif" data-weditor-dyndisplay-target="" data-weditor-dyndisplay-watch="#webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'og_image']/@wEditorId}" data-weditor-dyndisplay-condition="wDocument.element('#webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'og_image']//@wEditorId}').value != ''">
                      <!-- web:text:start editor="pictureArea" width="1200" height="630" left="10" top="10" retainRelations="1" picture="webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'og_image']/@wEditorId" />" onchange="wEditor.saveDraftAndUpdate('<xsl:value-of select="@wEditorId" />');"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'og_image']/@area"/><!--web:text:stop-->
                      </div>
                    </div>
                  </xsl:if>                      
                  <xsl:if test="php:functionString('wVariables::getValue', 'editable_metadata_twitter', '/wGlobalProject', '', 'wDoNotAdd') = 'yes'">                    
                    <div class="wEditorExtensionAreaSheet">
                      <div style="font-weight:bold;"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Twitter Post' ,'Alternative Metadaten für Twitter' ,'Métadonnées alternatives pour Twitter')"/></div>
                      <!--web:text:start decorators="default" editor="input" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Title' ,'Titel' ,'Titre')"/>" inputStyle="width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_title']/text()"/><!--web:text:stop-->
                      <!--web:text:start decorators="default" editor="textarea" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Description' ,'Beschreibung' ,'Description')"/>" inputStyle="height:57px;width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_description']/text()"/><!--web:text:stop-->
                      <!--web:text:start decorators="default" editor="picture" upload="1" extensions="gif|png|jpg|jpeg" preview="picture" pathIfEmpty="<xsl:value-of select="php:functionString('wProjectCur::getPathAssets')" />/img" caption="<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Thumbnail' ,'Bild' ,'Vignette')"/>" inputStyle="width:100%;"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_image']/text()"/><!--web:text:stop-->
                      <div class="wEditorExtensionValue" data-weditor-dyndisplay="on" data-weditor-dyndisplay-type="showif" data-weditor-dyndisplay-target="" data-weditor-dyndisplay-watch="#webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_image']/@wEditorId}" data-weditor-dyndisplay-condition="wDocument.element('#webtag_text_{/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_image']//@wEditorId}').value != ''">
                      <!-- web:text:start editor="pictureArea" width="1200" height="630" left="10" top="10" retainRelations="1" picture="webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_image']/@wEditorId" />" onchange="wEditor.saveDraftAndUpdate('<xsl:value-of select="@wEditorId" />');"--><xsl:value-of select="/wd:document/wd:extension/wd:object/wd:data[@id = 'twitter_image']/@area"/><!--web:text:stop-->
                      </div>
                    </div>
                  </xsl:if>  
                </div>  
              </xsl:if>  
            </div>
            <div style="clear:both;padding:10px">
              <xsl:if test="/wd:document/wd:extension/wd:tdpPeriods">
                <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Predifined periods' ,'Vordefinierte Zeiträume zur zeitgesteuerten Veröffentlichung von Inhalten' ,'Périodes prédéfinies pour la publication programmée de contenus')"/></div>                
                <xsl:for-each select="/wd:document/wd:extension/wd:tdpPeriods/wd:entry">
                  <xsl:variable name="allowDelete"><xsl:if test="position() = 1">hidden</xsl:if></xsl:variable>
                  <div style="width:680px;overflow:hidden;height:28px">
                    <!--web:row:start delete="<xsl:value-of select="$allowDelete" />" copyMode="insertAfter" iconCopy="add" copy="0" move="1" iconStyle=""-->
                    <div style="clear:left;float:left;width:200px;margin-right:4px">
                      <!-- web:text:start editor="input" --><xsl:value-of select="@caption"/><!-- web:text:stop -->
                    </div>
                    <div style="float:left;width:182px">
                      <!-- web:text:start editor="date" format="isoDateTime" minutevalues="00|15|30|45" allowEmpty="1"--><xsl:value-of select="@from"/><!-- web:text:stop -->
                    </div>       
                    <div style="float:left;width:25px;line-height:25px;text-align:center">bis</div>
                    <div style="float:left;width:182px">
                      <!-- web:text:start editor="date" format="isoDateTime" minutevalues="00|15|30|45" timeDefault="24:00:00" allowEmpty="1"--><xsl:value-of select="@to"/><!-- web:text:stop -->
                    </div>
                    <!--web:row:stop-->                  
                  </div>
                </xsl:for-each>
                <span class="wglButton" style="margin:4px 0 10px 0">
                  <xsl:attribute name="onclick">wEditor.createDataEntry('<xsl:value-of select="/wd:document/wd:extension/wd:tdpPeriods/@wEditorId"/>')</xsl:attribute>
                  <span class="wglButtonCaption"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Add new period' ,'Neuen Zeitraum hinzufügen' ,'Ajouter une nouvelle période')"/></span>
                </span>  
                <div class="clearBoth"/>                 
              </xsl:if> 
            </div>
            
            <script>
            
              wEditor.setTitleIfEmpty = true;
               
              <xsl:if test="(/wd:document/wd:extension/wd:object/@type = 'default' or /wd:document/wd:extension/wd:object/@type = 'start') and not(/wd:document/wd:extension/wd:meta/wd:title/text()) and not(/wd:document/wd:extension/wd:object/wd:data[@id='title']/text())">
                function openLayerMetadata(){  
                  wDocument.toggleDisplay('wEditorExtensionAreaExtended', {'animate' : ''});
                  if(wDocument.element('#webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/@wEditorId"/>')){
                    window.setTimeout(function(){wDocument.element('webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/@wEditorId"/>').focus();}, 500);
                  }
                }
                window.setTimeout(function(){openLayerMetadata()}, 1000);
              </xsl:if>
              
              function wOnBeforeChangeEditmode(target){
                return true;
              } 
              
              function wOnBeforeCancel(){
                return true;
              }

              function wOnBeforePause(){
                return true;
              }

              function wOnBeforeSave(){
                if(decodeURIComponent(location.search).indexOf('/templates/documents') != -1){
                  return true;
                }
                else if(wEditor.documentStatusOnline == 'off'){
                  return confirm('<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_offline_confirm_before_save')"/>');
                }              
                else if(wDocument.element('#statusIcon') &amp;&amp; wDocument.element('#statusIcon').getAttribute('data-status') == 'off'){
                  return confirm('<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_offline_confirm_before_save')"/>');
                }
                else{
                  return true;
                }
              }

              function wOnBeforeOverwriteDraft(){
                return true;
                //return confirm('Vorsicht - Falls ein anderer Redakteur gerade an diesem Dokument Arbeitet, werden seine Änderungen überschrieben!');
              }
                                                         
              function wOnAfterValidate(validationResult){    
                for(var i = 0; i &lt; wEditor.elementsInvalid.length; i++){
                  wEditor.openConfigMaskOfInvalidField(wEditor.elementsInvalid[i]);
                }
                return validationResult;
              }
             
              // Falls die Validierung im Editor deaktiviert werden soll
              //wEditor.hasToValidateDocument = false;
              
              //wEditor.hideButton('metadata');   
              
              // Falls das Schließen des Browserfensters abgefragt werden soll
              wEditor.onBeforeUnloadMessage = 'Alle Änderungen gehen verloren!';
              
              // Falls beim Speichern der Seite der aktuelle Host (Pflege-Domain) innerhalb von WYSIWYG-Feldern nicht aus Link-Elementen entfernt werden soll
              //wEditor.replaceCurrentHostInWYSIWYG = false;

              var wPathPictureIfEmpty = '<wsl:php> print wVariables::getValue('image_path_if_empty', '/wGlobalProject');</wsl:php>';

            </script>
          </div>
        </div>
      <wsl:else />
        <!-- Falls ein öffentlicher Benutzer eine Objekt bearbeitet, wird dieses beim Speichern immer online gesetzt, ohne dass der öffentliche Benutzer die Auswahl sieht-->
        <!--web:text:start inputStyle="display:none" editor="select" values="on" --><xsl:value-of select="/wd:document/wd:extension/wd:status/wd:online/@status"/><!--web:text:stop-->
      </wsl:ifIsAdminOrUserStandard>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>