So setzen Sie eine Dateiauswahlbox im Editor um

Dieser Artikel beschreibt, wie Sie für die Dateibearbeitung über den Select-Texteditor Dateien zur Auswahl anbieten können. Dies wird z.B. in den Beispielprojekten innerhalb Listendateien zur Auswahl des Darstellungs-Templates verwendet.

Um in der Seitenbearbeitung dem Benutzer z.B. in den Listenoptionen unterschiedliche Zeilentemplates zur Auswahl anzubieten, können Sie dies über den Texteditor-Select realisieren:

Beispiel: Auszug aus einem Bearbeitenelement (z.B. list.standard.wItem.php) mit Auswahl über ein Script

...
<!-- web:text:start editor="select" script="/de/wGlobal/scripts/editor/getListTemplates.php?pathProject=/deGlobal" validator="" errorMessage="" inputStyle=""--><xsl:value-of select="wd:fragment[@id='listtemplate']/text()"/><!-- web:text:stop -->
...

Beispiel: getListTemplates.php Script, das zur Auswahl verwendet wird

  require_once($_SERVER['DOCUMENT_ROOT']."/weblication/grid.php");
  
  $userType = wUserCur::getType();
  
  if($userType != 'admin' && $userType != 'standard'){
    exit;
  }

  $query              = array();
  $query['dir']       = wRequest::getParameter('pathProject').'/wGlobal/layout/templates/lists';
  $query['filterset'] = array('type' => 'and', array('wPath' => '/wd:stat/@name', 'operator' => 'contains', 'condition' => '.wFilelist.php'));

  $files = wRepository::selectDocuments($query);
  
  $result = '<entries>';
  
  foreach($files as $file){
    $title = wDocumentData::getData($file, '/wd:extension/wd:meta/wd:title/text()');
    if(strstr($file, 'album') == TRUE){
      $isDisabledStr = 'disabled="disabled"';
    }
    else{
      $isDisabledStr = '';
    }
    if($userType == 'admin'){
      $result .= '<entry '.$isDisabledStr.' value="'.$file.'">'.$title.' ('.preg_replace("/\..*/", "", wPathName::getFileNameOnly($file)).')</entry>';
    }
    else{
      $result .= '<entry value="'.$file.'">'.$title.'</entry>';
    }  
  }
  $result .= '</entries>';  

  print $result;

Das oben angeführte Script liest über die Repository-Funktion das Verzeichnis der Listentemplates (Darstellungstemplates) aus und gibt über die DocumentData-Funktion in der Auswahlbox den Pfad und den Titel der gefundenen Dateien aus.