Как программно добавить 2 значения полю у которого выставленно ограничение в 1 значение?

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

Аватар пользователя trobing trobing 8 февраля 2017 в 13:16

Здравствуйте, можно ли сделать так чтобы пользователь мог добавлять только одно значения для поля, но при этом была возможность добавлять через hook_node_presave несколько?

Комментарии

Аватар пользователя trobing trobing 8 февраля 2017 в 15:54

Вобщем сделал следующим образом - поставил ограничение в 2 значения и убрал из формы лишний экземпляр поля:

<?php
        $form
['имя_поля'][LANGUAGE_NONE]['#cardinality'] = 1;
        unset(
$form['имя_поля'][LANGUAGE_NONE][1]);
        unset(
$form['имя_поля'][LANGUAGE_NONE][0]['_weight']);
?>
Аватар пользователя gun_dose gun_dose 9 февраля 2017 в 9:41

Ансеттить поля формы создания ноды опасно, равно как и делать их тип hidden или value. В таком случае велика вероятность, что даже при редактировании существующей ноды поля могут заполниться значениями по умолчанию. А вот аксесс = фолс - в этом плане безопасен. Хотя если вы протестировали и у вас всё работает корректно, то ничего страшного

Аватар пользователя bumble bumble 9 февраля 2017 в 11:43
1

++
Да, там с валидацией беда будет.

По поводу того, что отображается - не готов сейчас точно ответить, нет времени протестировать. Но в теории - должно сработать.
Попробуйте кеш почистить, ну и цикл с условиями проверить, чтоб правильно $cardinality заполнялись.