Mittwoch, August 08, 2007

Autocomplete für Drupal mit JQuery Teil 2

Wie ich im gestrigen Post berichtet habe, lässt sich mit Drupal ziemlich einfach eine autocomplete Funktionalität bauen... es geht sogar noch einfacher. Drupal besitzt von Haus auf bereits die entsprechende Funktionalität. Es muss nur noch folgendes gemacht werden:

Die Schnittstelle im hook_menu festlegen:

$items[] = array(
'path' => 'autocomplete',
'callback' => 'autocomplete',
'access' => user_access('access autocomplete'),
'callback arguments' => array('in' => arg(2)),
'type' => MENU_CALLBACK);

Wobei mit callback arguments der String vom Autocomplete Feld kommt.

Danach muss die entsprechende callback Funktion definiert werden:

function autocomplete($in){
...
while($row_3 = db_fetch_array($res_3)){
$matches[$row_3['tag']] = $row_3['tag'];
}

print drupal_to_js($matches);

}
Wobei die ungefähr so aussehen könnte. Mittels drupal_to_js werden die Daten in der richtigen Form zurückgegeben.

Und zu guter Letzt muss nur noch das Formularfeld definiert werden. Dies kann leicht über die Form API gemacht werden:

$form['ngroups_search_tags'] = array(
'#type' => 'textfield',
'#title' => t('Tagsuche'),
'#description' => t("Inhalt deiner Gruppe durchsuchen"),
'#autocomplete_path' => 'ngroups/ngroups_autocomplete_search_tag',

);

Das wäre es dann auch schon gewesen!