[Решено] При изменении $form['submit']['#value'] формы не добавляется комментарий

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

Аватар пользователя Paldru Paldru 1 августа 2013 в 3:44

Темизировал форму добавления комментариев через template.php.

Все хорошо, но если я изменяю

<?php
$form
['submit']['#value'] = t('Save');
?>

на

<?php
$form
['submit']['#value'] = 'Добавить комментарий';
?>

Комментарий перестает добавлятся, т.е где то в друпале есть проверка на совпадение "value" при submit-е

Как можно это решить?

Комментарии

Аватар пользователя sg85 sg85 1 августа 2013 в 4:09

скорее всего в стандартном сабмите формы для проверки нажатой кнопки используется нечто вроде $form_state['values']['op'](или как-то так, смотреть что там на самом деле, лень), которое обычно содержит в себе как раз значение #value, если это так и я ничего не перепутал, то можно попробовать пару реализаций через задний проход, а именно:
1 копируем сабмит нужной формы к себе в модуль, переименовываем, заставляем его принимать нужное значение, и подсовываем его в форму заместо оригинала.
2 еще круче - объявляем свой хук темизации для некоего элемента, и подсовываем её в #theme нужной кнопки
3 чуть менее глупый способ - подменить значение $form_state['values']['op'](или что он там использует) на нужное, на какой-либо из стадий(однако не помню, возможно ли такое в принципе).

А вот на умные мысли меня сегодня не прет...

Если будете использовать какой-либо из этих подходов, то, если не сложно, пожалуйста, укажите адрес проекта, чтобы я, возможно, когда-нибудь в далеком будущем, случайно за него не взялся Wink

Аватар пользователя Paldru Paldru 1 августа 2013 в 11:13

"Cynicus" wrote:
Правильно так
<?php
$form['submit']['#value'] = t('Dobavit kommentariy');
?>
http://lmgtfy.com/?q=drupal+t[/quote]
В моем случае любой вариант кроме

<?php
$form['submit']['#value'] = t('Save');
?>

дает ошибку, точнее даже не удовлетворяет условию для сабмита