I wrote a flexinode field to easily manage a list of elements. You can choose to have an ordered or an unordered list; each element will have its own textfield.
Known issues: preview doesn't work (any idea?)
Here's the code, put it in
field_list.inc
in your flexinode directory.
<?php
function flexinode_field_list_name($field) {
return t('list');
}
function flexinode_field_list_form($field, &$node) {
$fieldname = 'flexinode_'. $field->field_id;
foreach ($node->$fieldname as $item) {
$item_fields .= form_textfield('', 'items][', $item, 60, 128);
}
$edit = $_POST['edit'];
if ($edit['items']) {
foreach ($edit['items'] as $item) {
$item_fields .= form_textfield('', 'items][', $item, 60, 128);
}
} else {
$item_fields .= form_textfield('', 'items][', '', 60, 128);
$item_fields .= form_textfield('', 'items][', '', 60, 128);
$item_fields .= form_textfield('', 'items][', '', 60, 128);
}
if($_POST['more']) {
$item_fields .= form_textfield('', 'items][', '', 60, 128);
$item_fields .= form_textfield('', 'items][', '', 60, 128);
$item_fields .= form_textfield('', 'items][', '', 60, 128);
}
$item_fields .= form_button(t('More fields'), 'more');
return form_group(t($field->label), $item_fields);
}
function flexinode_field_list_db_select($field) {
$fieldname = 'flexinode_'. $field->field_id;