Autocomplete


Um eine Auswahl aus einer großen Datenmenge zu treffen, gibt es das Autocomplete Widget. Die Struktur für die Content Structure ist:

<?
...
public contentStructure(){
   return array(
      array(
          "key"=>"variablenname",
          "label"=> "Gib deine Auswahl ein",
          "type" => "autocomplete",
      )
   );
}
public function performElementSearch($key,$query){
   if($key!="variablenname"){
      return array(array('key'=>-1,'value'=>'Kein Suchtreffer'));
   } else {
      ... Ergebnisse suchen ...
      return array(
         array('key'=>0,'value'=>'Eintrag eins'),
         array('key'=>1,'value'=>'Eintrag zwei')
      );
   }
}
public function getElementValue($key,$id){
   if($key!="variablenname")
      return "Nicht implementiert";
   ... Lesbarer Value Titel heraussuchen anhand der gespeicherten $id
   return $value;
}
...
?>

Das Autocomplete Widget benötigt zwei weitere Methoden in der Box Klasse.

performElementSearch($key, $query)
Diese Methode führt die Suche aus und gibt ein Array mit Suchergebnissen zurück. $key ist der eindeutige Identifikator des Autocomplete Widgets. Für den Fall, dass mehr als ein Autocomplete Feld geplant ist können hiermit unterschiedliche Suchen ausgelöst werden. $query ist der eingegebene Suchtext.
Die Rückgabe ist ein Array aus Key-Value Paaren. Wobei key der Wert ist, welcher in der content Variable gespeichert wird und value der menschenlesbare Anzeigetext der Auswahl.

getElementValue($key, $id)
Wenn der Box Editor das Widget lädt, wird über diese Methode der menschenlesbare Anzeigetitel zurückgegeben. Dafür bekommt die Methode als Parameter den eindeutigen Widget $key und die gespeicherte $id der content Variable.