CCK и hook_form_alter

Главные вкладки

Аватар пользователя vectoroc vectoroc 5 мая 2009 в 18:14

Задача: надо скрыть от глаз пользователя поле cck (заполняется с помощью js перед отправкой)

Долго ломал голову, пробовал разные способы. В итоге пришел к такому варианту:

function _hidde_field(&$element)
{
        $name = $element['#field_name'] . "[0][value]";
        $id = 'edit-' . str_replace('_', '-', $element['#field_name']) . '-0-value';
        $default_value = check_plain($element[0]['#default_value']['value']);
        $element[0]['#prefix'] = <<<PREFIX
                <input type="hidden" name="$name" id="$id" value="$default_value" />
                <!--
PREFIX;
        $element[0]['#suffix'] = "\n            -->\n";
}

и из hook_form_alter применяю эту функцию к нужным элементам.
В моем случае все это работает правильно, но больше похоже на костыль, чем на правильное решение.
Хотелось бы узнать, как такое правильно делать (что-то вроде [#type]=hidden).

Комментарии

Аватар пользователя xanderz xanderz 6 мая 2009 в 17:19

варианты:
1) скрыть через css. id поля {display:none}
2) скрыть через тот же javascript
3) темизировать форму редактирования ноды через theme_ТИПКОНТЕНТА_node_form