Я пытаюсь настроить атрибут max_length поля в Drupal - PullRequest
0 голосов
/ 03 февраля 2011

Причина, по которой мне нужно это сделать, заключается в том, что мы передаем нашу CMS клиенту, и нам нужно, чтобы они следовали правилам, но мы не можем просто изменить значение напрямую, поскольку в системе есть контент, который нарушает максимум правила длины для некоторых полей, и мы не хотим, чтобы они были нарезаны. Итак, в дальнейшем мы просто хотим нацелить весь новый контент, ориентируясь на новую форму контента (node-form). В настоящее время у меня есть хук, который успешно меняет максимальное значение для заголовка ниже:

function myForm_form_alter(&$form, &$form_state, $form_id) {
  if($form['#id'] == 'node-form') {
     $form['title']['#maxlength'] = 30;  
  }   
}

Мне нужно добавить один для поля с именем "field_feature_desc". Я распечатал информацию о форме на экране, и вот информация, которую я получил для этого поля:

[field_feature_desc] => Array
                (
                    [field_name] => field_feature_desc
                    [type_name] => article
                    [display_settings] => Array
                        (
                            [weight] => 11
                            [parent] => 
                            [label] => Array
                                (
                                    [format] => above
                                )

                            [teaser] => Array
                                (
                                    [format] => default
                                    [exclude] => 1
                                )

                            [full] => Array
                                (
                                    [format] => default
                                    [exclude] => 1
                                )

                            [4] => Array
                                (
                                    [format] => default
                                    [exclude] => 1
                                )

                            [2] => Array
                                (
                                    [format] => default
                                    [exclude] => 0
                                )

                            [3] => Array
                                (
                                    [format] => default
                                    [exclude] => 0
                                )

                        )

                    [widget_active] => 1
                    [type] => text
                    [required] => 0
                    [multiple] => 0
                    [db_storage] => 0
                    [module] => text
                    [active] => 1
                    [locked] => 0
                    [columns] => Array
                        (
                            [value] => Array
                                (
                                    [type] => text
                                    [size] => big
                                    [not null] => 
                                    [sortable] => 1
                                    [views] => 1
                                )

                        )

                    [text_processing] => 0
                    [max_length] => 
                    [allowed_values] => 
                    [allowed_values_php] => 
                    [widget] => Array
                        (
                            [rows] => 5
                            [size] => 60
                            [default_value] => Array
                                (
                                    [0] => Array
                                        (
                                            [value] => 
                                            [_error_element] => default_value_widget][field_feature_desc][0][value
                                        )

                                )

                            [default_value_php] => 
                            [label] => Feature Description
                            [weight] => -3
                            [description] => Description text in the feature area on the homepage, if applicable
                            [type] => text_textfield
                            [module] => text
                        )

                )

Если у вас есть идея, как я буду кодировать это дополнительное поле, это будет очень ценно. Я пробовал следующее:

$form['field_feature_desc']['max_length'] = 70;
$form['field_feature_desc']['columns']['value']['length'] = 70;

Извините, если на этот вопрос уже есть ответ, я нашел один и не смог его найти.

1 Ответ

0 голосов
/ 03 февраля 2011

Я обнаружил массив вне того, с которым работал.Итак, код, который сделал это, был:

     $form['#field_info'] = array(
        'field_feature_desc' => array(
           'max_length' => 70,
        ),
     );

Или более короткая версия:

$form['#field_info']['field_feature_desc']['max_length'] = 70;
...