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.