So lesen Sie Werte in eine Auswahlbox im Editor ein

Dieser Artikel beschreibt, wie Sie für die Dateibearbeitung über den Select-Texteditor Werte aus einer XML-Datei als Grundlage für die Auswahlbox verwenden.

Um in der Seitenbearbeitung dem Benutzer zur Auswahl von bestimmten Einträgen (z.B. Anreisemöglichkeiten (Auto, Bus, Bahn, ...) eine (Mehrfach-)Auswahl auf Grundlage einer XML-Datei anzubieten, können Sie dies über den Texteditor-Select realisieren:

Beispiel: Auszug aus einem Bearbeitenelement (xxx.wItem.php) mit Mehrfachauswahl aus einer XML-Datei

...
<!-- web:text:start multiple="1" editor="select" script="/de/wGlobal/scripts/editor/getTypeEntries.php" inputStyle="" validator="" errorMessage=""--><xsl:value-of select="wd:fragment[@id='file']/text()"/><!-- web:text:stop -->
...

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

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid5/framework/php/wSession.php");

$userType = wUserCur::getType();

if(
$userType != 'admin' && $userType != 'standard'){
exit;
}

$domObject = wDOM::parseFile('/de/wGlobal/content/entries/locomotion.wEntries.php');
$resultNodes = wDOM::executeXPath($domObject, "//entry");

$result = '<entries>'."\n";

foreach(
$resultNodes as $resultNode){
$result .= ' <entry value="'.$resultNode->getAttribute('value').'">'.$resultNode->textContent.'</entry>'."\n";
}
$result .= '</entries>'."\n";

print
$result;

Beispiel: Inhalt der locomotion.wEntries.php mit den Auswahlwerten

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<locomotion>
  <wd:extension xmlns:wd="http://weblication.de/5.0/wd" type="weblication" version="5.0">
    <wd:meta>
      <wd:title>Fortbewegungsmittel</wd:title>
      <wd:description/>
      <wd:keywords/>
    </wd:meta>

    <wd:status>
      <wd:online from="" status="on" to=""/>
      <wd:type value=""/>
    </wd:status>

    <wd:permissions getUsersOfDefaultExtension="1" getGroupsOfDefaultExtension="1">      
      <wd:owner name="admin" role="{wGetValueOfDefaultExtension()}"/>
      <wd:others role="{wGetValueOfDefaultExtension()}"/>
    </wd:permissions>

    <wd:version value="1"/>
    <wd:personalization/>
    <wd:language nodeID=""/>
      <wd:cache expires="{wGetValueOfDefaultExtension()}"/>
  </wd:extension>

  <entries>
    <entry value="car">Auto</entry>
    <entry value="train">Bahn</entry>
    <entry value="airplane">Flugzeug</entry>
  </entries>
</locomotion>