Logo sprachabhängig ausgeben

18. Oct 2011

Soll in den unterschiedlichen Sprachprojekten jeweils ein anderes Logo ausgegeben werden, können Sie dies sehr einfach über eine Variable steuern. Dies wird anhand der BASE Projektbasis beispielhaft angeführt.

Erweitern Sie die globale Template-Datei includes.global.php im Bereich des Logo-Templates, indem Sie das Datenfeld für das Logo um die Sprachvariable ergänzen:

Beispiel: Auszug aus /IhrGlobalesProjekt/wGlobal/layout/templates/misc/includes.global.php zum Logo

...
  <!-- Logo: Hier wird das Logo aus der logo.php ausgelesen und ausgegeben -->
  <xsl:template name="logo">             
    ...             

    <!-- alt: ... /wd:extension/wd:object/wd:data[@id = 'logo']/text() ...-->
    <xsl:variable name="xPathLogo">/wd:extension/wd:object/wd:data[@id = 'logo_<xsl:value-of select="$wLanguageProject" />']/text()</xsl:variable>
...

Die globale Inhaltsdatei, über die das Logo gepflegt wird (logo.php), erweitern Sie entsprechend um die weiteren Data-IDs und Pfade der Sprachbereiche:

Beispiel: Auszug aus der globalen Datei /IhrGlobalesProjekt/wGlobal/content/misc/logo.php

...
    <wd:object type="logo">
      <wd:data id="logo" type="src.default">/IhrGlobalesProjekt/wGlobal/layout/images/logo.png</wd:data>
      <wd:data id="logo_de" type="src.default">/IhrGlobalesProjekt/wGlobal/layout/images/logo-de.png</wd:data>
      <wd:data id="logo_en" type="src.default">/IhrGlobalesProjekt/wGlobal/layout/images/logo-en.png</wd:data>
      <wd:data id="width" type="char.default"/>
    </wd:object>
...

Im letzten Schritt erweitern Sie die Pflegemaske für das Logo um die von Ihnen definierten Sprachpfade:

Beispiel: Inhalt des Bearbeitungstemplates /IhrGlobalesProjekt/wGlobal/layout/templates/logo.wDocument.php

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslIfIsInEditor="http://www.w3.org/1999/XSL/TransformIfIsInEditor" xmlns:wslPre="http://weblication.de/5.0/wsl" xmlns:wslPost="http://weblication.de/5.0/wsl" xmlns:wslEditorPre="http://weblication.de/5.0/wsl" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wd="http://weblication.de/5.0/wd" xmlns:php="http://php.net/xsl" exclude-result-prefixes="xslIfIsInEditor wd wslPre wsl php" version="1.0">
<!-- Source: base.standard, 001.000.260.000 (2011-10-14 17:31:09)-->
  <xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/>
                            
  <!-- System-Parameter einbinden-->
  <xsl:include href="$XSLTPRE[wDocumentRoot]/IhrGlobalesProjekt/wGlobal/layout/templates/misc/standard.wParams.php"/>
    
  <!-- Objekte-Templates dynamisch einbinden -->   
  <wslPre:includeXsltObjectsProject project="/IhrGlobalesProjekt" useIndex="0"/>  
  
  <!-- Elemente-Templates dynamisch einbinden -->
  <wslPre:includeXsltItemsProject project="/IhrGlobalesProjekt" useIndex="0"/>
  
  <!-- Meta-Maske einbinden, falls die Seite im Editor aufgerufen wird -->
  <xslIfIsInEditor:include href="$XSLTPRE[wDocumentRoot]/IhrGlobalesProjekt/wGlobal/layout/templates/editmasks/standard.metadata.php"/>

  <!-- Definition der Darstellung -->
  <xsl:template match="/wd:document">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
      <head>                  
        <!-- HTML-Kopf -->
        <title>Logo</title>
        <link rel="stylesheet" type="text/css" href="/IhrGlobalesProjekt/wGlobal/layout/styles/editor.css"/>        
        <style type="text/css">
          html   {height:100%}          
          body   {background:none;font-family:arial, helvetica, sans-serif;background-color:#eaeaea;margin:10px}
          p.info {font-size:11px;color:#888888}
        </style>            
        <script type="text/javascript">
          wEditor.hideToolbar();
        </script>        
      </head> 
      <body>      
        <!-- Maske zur Pflege des Logos -->        
        <h3 style="color:#666666;padding:4px 4px 4px 24px;font-size:18px;font-style:italic;background-repeat:no-repeat;background-position:left center;background-image:url(/weblication/grid5/gui/images/icon_medium/element_picture.gif)"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Logo', 'Logo', 'Logo')"/></h3>

        <div class="wEditorElementConfiguration" style="border:none;background:none">
          <div class="wEditorElementLabel"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Path', 'Pfad des Bildes', '')"/><span id="mp4FileInfo_{@uid}"> (<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Select or upload your logo', 'Laden Sie hier ein Bild hoch oder wählen Sie ein bestehendes Bild aus.', 'Sélectionnez ou téléchargez votre logo')"/>)</span></div>
          <div class="wEditorElementValue"><!-- web:text:start extensions="gif|jpg|jpeg|png" validator="/^(|.*\.(gif|jpg|jpeg|png))$/" editor="file" path="/IhrGlobalesProjekt/wGlobal/layout/images" required="1"--><xsl:value-of select="wd:extension/wd:object/wd:data[@id = 'logo']/text()"/><!-- web:text:stop --></div>
          <!-- weiterer Logo-Pfad eines Sprachbereiches: -->
          <div class="wEditorElementLabel"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Path', 'Pfad des Bildes (EN)', '')"/><span id="mp4FileInfo_{@uid}"> (<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Select or upload your logo', 'Laden Sie hier ein Bild hoch oder wählen Sie ein bestehendes Bild aus.', 'Sélectionnez ou téléchargez votre logo')"/>)</span></div>
          <div class="wEditorElementValue"><!-- web:text:start extensions="gif|jpg|jpeg|png" validator="/^(|.*\.(gif|jpg|jpeg|png))$/" editor="file" path="/IhrGlobalesProjekt/wGlobal/layout/images" required="1"--><xsl:value-of select="wd:extension/wd:object/wd:data[@id = 'logo_en']/text()"/><!-- web:text:stop --></div>

          <div class="wEditorElementLabel"><xsl:value-of select="php:functionString('wTexts::showTextUser', 'Width', 'Breite', 'Largeur')"/><span id="mp4FileInfo_{@uid}"> (<xsl:value-of select="php:functionString('wTexts::showTextUser', 'Set an optional width', 'Optional können Sie die Breite des Logos angeben. Die Höhe passt sich automatisch an.', 'Indiquez une largeur optionnelle')"/>)</span></div>
          <div class="wEditorElementValue wEditorElementLabel"><!-- web:text:start validator="/^(|\d+)$/" editor="input" inputStyle="width:24px" path="/IhrGlobalesProjekt/wGlobal/layout/images" required="1"--><xsl:value-of select="wd:extension/wd:object/wd:data[@id = 'width']/text()"/><!-- web:text:stop -->px</div>
        </div>
      </body>
    </html>
  </xsl:template>

</xsl:stylesheet>

Ähnliche Seiten