Не могу найти ошибку в этом фрагменте кода Php - PullRequest
1 голос
/ 09 мая 2009

Я получаю сообщение об ошибке T_String в этом коде, более точное высказывание во второй строке ($ form ['com ...), и я просто не могу понять, почему.

function _maxlength_comment_type_form_alter(&$form, $form_state, $form_id) {
    $form['comment']['comment_max_length'] = array(
     '#type' => 'select',
     '#title' => t('Maximum comment length'),
     '#default_value' => variable_get('comment_max_length_'. $form['#node_type'] -> type, 160),
     '#options'=> drupal_map_assoc(array(140,160,180,200)),
     '#description' => t('numero maximo de caracteres permitidos.'),
     '#weight' => -1,
     );

Я добавляю этот код в модуль Maxlength drupal.

Ответы [ 3 ]

1 голос
/ 09 мая 2009

Это может быть эта часть:

'comment_max_length_'. $form['#node_type'] -> type

Попробуйте избавиться от пробелов вокруг стрелки?


Редактировать - я не верю, что вышеизложенное на самом деле является проблемой с кодом, хотя я все равно рекомендую удалить пробелы как вопрос стиля, просто очевидно, что вы делаете это:

'comment_max_length_'. ($form['#node_type']->type)

вместо этого:

('comment_max_length_' . $form['#node_type'])

Ваш код действителен и работает на моем компьютере TM .


Другое редактирование:

Убедитесь, что $form['comment'] также определено. Возможно, добавьте это в начале функции.

if (!isset($form['comment'])) $form['comment'] = array();
0 голосов
/ 09 мая 2009

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

0 голосов
/ 09 мая 2009

Я вижу две проблемы, один ник упоминал выше, то есть вы не должны иметь пробела по обе стороны от стрелки:

'comment_max_length_'. $form['#node_type'] -> type

Кроме того, после него не должно быть запятой (так как это последний элемент в массиве):

'#weight' => -1,`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...