Pflegemasken für Binärdateien

Sobald ein Redakteur eine eingecheckte Binärdatei bearbeitet, öffnet sich ein Editorfenster mit der Standardpflegemaske für Binärdokumente. Diese Pflegemaske bietet dem Redakteur nun die Möglichkeit, bestimmte Datensätze aus der Dokumentenerweiterung der Binärdatei zu verändern. Im Standard-Projekt sind dies (siehe auch Screenshot weiter unten)

Metadaten

  • Überschrift
  • Beschreibung
  • Schlüsselwörter
  • Vorschaubild
  • Kategorien

Eigenschaften

  • Online/Offline Status
  • Berechtigungen (bei entsprechender Berechtigung)
  • Personalisierung (bei entsprechender Berechtigung)
  • Templates (bei entsprechender Berechtigung)

Das XSLT-Stylesheet der Pflegemaske für Binärdateien

Automatisches Einbinden der Standard-Pflegemaske

Sobald eine Binärdateien bearbeitet wird, bindet Weblication® die entsprechende Pflegeoberfläche automatisch ein. Das XSLT-Stylesheet zur Darstellung der Pflegemaske befindet sich unterhalb folgendem Pfad:

/wGlobal/wGlobal/layout/templates/editmasks/standard.extension.php

Manuelles Einbinden der Pflegemaske

Möchten Sie ein eigenes und/oder weiteres XSLT-Stylesheet als Pflegemaske verwenden, erstellen Sie dieses auf Basis der existierenden standard.extension.php und legen es mit einem anderen Namen im selben Verzeichnis ab. 

Nun können Sie innerhalb der Dokumentenerweiterung des Binärdokumentes bzw. über die Standard-Dateieinstellungen des Verzeichnisses, auf die angepasste Pflegemaske verweisen:

Einbinden einer individuellen Pflegemaske in der Dokumentenerweiterung einer Binärdatei

<wd:templates>
...
  <wd:editExt path="/wGlobal/wGlobal/layout/templates/editmasks/custom.extension.php"/>
</wd:templates>

Sie können das Template in der Regel auch direkt über die Datei-Eigenschaften des Dokumentes bzw. der Standard-Dateieinstellungen im Register Templates auswählen.

Aufbau der Pflegemaske

Der Aufbau der Pflegemaske für Binärdokumente entspricht dem Aufbau von Pflegemasken für die Dokumentenerweiterung normaler XML-Inhaltselemente:

Pflegemasken für Metadaten
Pflegemasken für Metadaten

Informationen zur Pflegemaske für Objekte finden Sie hier:
Pflegemasken für strukturierte Daten und Objekte

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

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

<div class="wEditorExtensionLabel">Titel  <span>(Erscheint auch in Suchmaschinen und Auflistungen)</span></div>
<div class="wEditorExtensionValue XL">
  <!-- web:text:start editor="input"-->
  <xsl:value-of select="//wd:extension/wd:meta/wd:title/text()"/>
  <!-- web:text:stop -->
</div>

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

Code: Das komplette XSLT-Stylesheet für die Pflegemaske von Binärdateien der BASE Classic (Projektbasis)

Aufbau der Standard-Pflegemaske für Binärdateien (standard.extension.php)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wslPre="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" version="1.0">
  <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>
  <!-- Systemparameter (nicht ändern!) -->

  <xsl:param name="wHostURL"/>
  <xsl:param name="wDocumentRoot"/>
  <xsl:param name="wDocumentPath"/>
  <xsl:param name="wDocumentDir"/>
  <xsl:param name="wProjectPath"/>
  <xsl:param name="wIsInEditor"/>
  <xsl:param name="wUsertype"/>
  <xsl:param name="wIsLoggedIn"/>

  <!-- XSLT-Template zur Pflege von Metadaten von Binärdateien -->

  <xsl:template match="/wd:document">
    <html lang="de">
      <head>
        <title>wdExtension-Bearbeitungsmaske</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
      </head>
      <body id="wBody">
        <div class="wEditorExtensionSheet">

          <xsl:if test="php:functionString('preg_match', '/(gif|png|jpe?g|svg)$/i', $wDocumentPath) = '1'">
            <img src="{php:functionString('wPathName::getPathDraft', $wDocumentPath)}?{php:functionString('rand', 100000, 999999)}" alt="" width="200" height="" class="wEditorExtensionThumbnailMeta"/>
          </xsl:if>

          <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title_info')"/>)</span></div>
          <div class="wEditorExtensionValue XL"><!-- web:text:start editor="input" validator="required" errorMessage="<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_title_fill_out')"/>" markShys="1"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/text()"/><!-- web:text:stop --></div>

          <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_description')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_description_info')"/>)</span></div>
          <div class="wEditorExtensionValue XL"> <!-- web:text:start editor="textarea" markShys="1"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:description/text()"/><!-- web:text:stop --></div>

          <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_keywords')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_keywords_info')"/>)</span></div>
          <div class="wEditorExtensionValue XL"><!-- web:text:start editor="input"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:keywords/text()"/><!-- web:text:stop --></div>

          <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_thumbnail')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_thumbnail_info')"/>)</span></div>
          <xsl:variable name="pathThumbnails"><xsl:if test="php:functionString('preg_match', '/^\/[^\/]+\/videos$/', php:functionString('wPathName::getDirFile', $wDocumentPath)) = '1'"><xsl:value-of select="php:functionString('wPathName::getDirFile', $wDocumentPath)" />/thumbnails</xsl:if></xsl:variable>
          <div class="wEditorExtensionValue XL"><!-- web:text:start editor="file" pathIfEmpty="<xsl:value-of select="$pathThumbnails" />"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:thumbnail/@src"/><!-- web:text:stop --></div>

          <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_categories')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_categories_info')"/>)</span></div>
          <div class="wEditorExtensionValue XL"><!--web:categories:start pathCategories="/baseGlobal/wGlobal/content/categories/standard.wCategories.php" multiple="1" --><xsl:copy-of select="/wd:document/wd:extension/wd:meta/wd:categories"/><!--web:categories:stop--></div>

          <wslPre:php>
            wEnv::setGlobalValue('isProjectAsset', wProject::getValueOf(wProjectCur::getPath(), '/wProject/type/text()') == 'assets' ? '1' : '0');
          </wslPre:php>

          <!-- Diese Felder werden nur angezeigt, wenn sich das Dokument nicht im Asset-Verzeichnis befindet -->
          <xsl:if test="php:functionString('preg_match', '/wAssets/', $wProjectPath) = '0' and php:functionString('wEnv::getGlobalValue', 'isProjectAsset') = '0'">
            <div class="wEditorExtensionLabel"><xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_navpoint')"/>&#160;<span>(<xsl:value-of select="php:functionString('wTexts::getTextUser', 'editor_page_navpoint_info')"/>)</span></div>
            <div class="wEditorExtensionValue XL"><!--web:text:start editor="navpath" pathNavigation="<xsl:value-of select="php:function('wPathName::getDirTop', $wDocumentPath)" />/wGlobal/content/navigations/all.wNavigation.php"--><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:navpoint/@path"/><!--web:text:stop--></div>
          </xsl:if>

          <wsl:editorButtonsObjectSmart/>
        </div>

        <script>
          //var inputTitle = document.getElementById('webtag_text_<xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:title/@wEditorId"/>');
          //if(inputTitle){
          //  inputTitle.focus();
          //}

          wEditor.onBeforeUnloadMessage = 'Alle Änderungen gehen verloren!';
        </script>
      </body>
    </html>

  </xsl:template>
</xsl:stylesheet>