Проблема с формами. Хак функции ядра.

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

Аватар пользователя beliy_snow beliy_snow 3 июня 2008 в 19:47

Не могу понять откуда, но при рендере формы вылазит варнинг. При чем варнинг вылазит только при первом рендере формы, при нажатии на F5 ошибка не появляется. Откуда ноги растут? Варнинг следующий:
warning: implode() [function.implode]: Bad arguments. in viagra.com\includes\form.inc on line 622.
В связи с этим, убив три часа на поиск порывшейся собаки, пришел к выводу, что решением проблемы с наименьшими кровопотерями будет небольшое изменение функции ядра. Нет, я конечно против такого подхода и в будущем естессно раберусь что за хня, но пока вот такое решение:
<?php function form_get_error($element) {
...
// было
$key = implode('][', $element['#parents']);
// стало
$key = implode('][', (array)$element['#parents']);
}
?>
Возражения, рекомендации принимаются.

Комментарии

Аватар пользователя Stalker-g2 Stalker-g2 3 июня 2008 в 20:07

ужос. вся проблема в том, что форма-то на самом деле неправильно генерировалась
string implode ( string $glue , array $pieces )
ты неправильно генерировал форму, делая $element['#parents'] не массивом
print_r($element['#parents']) в модуле своём и искать по коду выше косяк-почему так

Аватар пользователя beliy_snow beliy_snow 5 июня 2008 в 13:19

1. А как должна "правильно" генерироваться форма?
2. $element['#parents'] я не трогаю вообще, никак, нигде, этот массив генерится автоматом.

Аватар пользователя gorr gorr 5 июня 2008 в 16:47

А поподробнее можно- когда такой глюк получается, никогда не сталкивался. (что за форма такая особенная?)