wPageCur::getCorrespondentLanguageFiles

Ermittelt die Daten als Array zu korrespondierenden Sprachversionen

Funktionsaufruf

Array getCorrespondentLanguageFiles(String path = '', Array options = array())

Parameter

path

Pfad der Datei (optional)

options

create [false|true]
gibt an, ob eine Verknüpfung während des Webseitenaufrufs angelegt werden soll
checkOnline [false|true]
Online-Status prüfen
checkPersonalization [false|true]
Personalisierung prüfen
languagesExclude
Sprachen, die ausgeschlossen werden sollen. Mehrere Sprachen können durch | getrennt angegeben werden, z.B. fr|it.

Beispiel: Ausgabe der korrespondierenden Sprachdateien zur aktuellen Seite

<!-- Auszug aus /IhrGlobalesProjekt/wGlobal/layout/templates/misc/includes.global.php -->
...
  <!-- Sprachwahl: Hier werden bei aktivierter Sprachwahl die verfügbaren Sprachen angeboten. -->
  <xsl:template name="languageSelector" wChecksum="cab872472aee6356e45d753d838cd1eb">
    <wsl:php>

      $languagesDisplay   = '<xsl:value-of select="php:functionString('wVariables::getValue', 'languages_display', $wGlobalProjectPath)" />';
      $languagesExclude   = '<xsl:value-of select="php:functionString('wVariables::getValue', 'languages_exclude', $wGlobalProjectPath)" />';
      $wGlobalProjectPath = '<xsl:value-of select="$wGlobalProjectPath" />';

      <![CDATA[      
        $correspondentLanguageFiles = wPageCur::getCorrespondentLanguageFiles('', array('create' => true, 'checkOnline' => true, 'checkPersonalization' => true, 'languagesExclude' => $languagesExclude));
        $languageKeys = array_keys($correspondentLanguageFiles);
        if($languagesDisplay != ''){
          $languageKeys = explode('|', $languagesDisplay);
        }
        foreach($languageKeys as $language){
          $data = $correspondentLanguageFiles[$language];
          $text = wTexts::getText('languageSelector_'.$language);
          if($data['available'] == 1 && $language != ''){
            $queryString = wStringconverter::applyFilter($_SERVER['QUERY_STRING'], 'secure');
            $path        = $queryString != '' ? $data['path'].'?'.$queryString : $data['path'];
            if($data['current'] == 1){
              print '<a class="langCurrent" href="'.$path.'"><img src="'.$wGlobalProjectPath.'/wGlobal/layout/images/flags/'.$language.'.gif" alt="'.$text.'" title="'.$text.'"/><span>'.$text.'</span></a>';
            }
            else{
              print '<a class="lang" href="'.$path.'"><img src="'.$wGlobalProjectPath.'/wGlobal/layout/images/flags/'.$language.'.gif" alt="'.$text.'" title="'.$text.'"/><span>'.$text.'</span></a>';
            }
          }
          else if($data['parentPath'] != ''){
            print '<a class="lang" href="'.wPathName::getDirTop($data['parentPath']).'"><img src="'.$wGlobalProjectPath.'/wGlobal/layout/images/flags/'.$language.'.gif" alt="'.$text.'" title="'.$text.'"/><span>'.$text.'</span></a>';
          }          
          else{
            print '<a class="lang" href="'.$data['project'].'"><img src="'.$wGlobalProjectPath.'/wGlobal/layout/images/flags/'.$language.'.gif" alt="'.$text.'" title="'.$text.'"/><span>'.$text.'</span></a>';
          }
        }
      ]]>
    </wsl:php>
  </xsl:template>
...

Das Array gibt jeweils alle definierten Sprachen zurück und kann nach verfügbar (available) und aktueller Sprache (current) geprüft werden (siehe Beispiel oben). Die Funktion unterstützt ab Version 005.040.005.000 die Prüfung auf Online-Status und Personalisierung einer Datei.

 

Entwicklerbereich Weblication® CMS - © Scholl Communications AG