Select- oder Autocomplete-Textfield mit bestehenden nodes
am 18.11.2007 - 23:34 Uhr in
Hallo alle zusammen,
ich suche nach einer Möglichkeit, ein Formularfeld zu erstellen, mit dem auf einfache Weise ein Link auf einen bestehenden node gesetzt werden kann. Also z.B. ein Select-Feld, das alle vorhandenen einfach nodes auflistet und über das man einen node auswählt auf den gelinkt wird oder vielleicht auch ein autocomplete-Textfield. (ich glaube, im CCK gibts so ein Feld, "reference"-Field heißt das dann).
Das mit dem Select- oder Textfeld in einem Modul ist ja erstmal kein Problem, aber wie komme ich an eine Liste mit nodes ran? Und wie funzt das mit dem Autocomplete? Gibts dazu eine Drupal-eigene Funktion oder muss ich "händisch" eine DB-Abfrage machen, mir die bestehenden Nodes holen und diese dann ausgeben?
Vielen Dank für eure Hilfe,
Grüße,
Daniel
- Anmelden oder Registrieren um Kommentare zu schreiben
Kleines Update: Wenn ich das
am 18.11.2007 - 23:43 Uhr
Kleines Update:
Wenn ich das "manuell" mit einem Select-Feld mache, funktioniert das - allerdings scheint mir das nicht sonderlich elegant und mit steigender nodes-Zahl in der DB dürfte das unübersichtlich werden. Ein autocomplete-Feld könnte vielleicht besser sein... allerdings habe ich keine Ahnung, wie ich das anstelle?
<?php
// bestehende nodes aus DB holen
$result = db_query('SELECT nid, title, type FROM node WHERE status=1');
while($node = db_fetch_object($result)) {
$nodes[$node->nid] = $node->title.' (Type: '.$node->type.')';
}
// Select-Feld mit nodes im Formular ausgeben
$form['ranking']['entry_link'] = array(
'#type' => 'select',
'#title' => t('Link to node'),
'#description' => t('To which node should this entry be linked (leave blank for no link)?'),
'#options' => $nodes,
);
?>