Помогите вывести результат работы блока

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

Аватар пользователя Alkaid Alkaid 16 июля 2014 в 10:11

Добрый день! Никак не могу решить проблему. Друпал на стадии освоения, просьба ногами сильно не пинать.
Сделал свой модуль, сделал блок с полями ввода. При сабмите информация обрабатывается в modulname_blockname_submit() и результат (массив) болжен быть выведен в блоке.
Пробовал в сабмите результат цеплять к $form_state, но проблема в том, что при сабмите форма обновляется, $form_state сбрасывается, переменная с итогами исчезает. Хранить результат в БД не вариант.
Решил попробовать выводить переменную с результатами через шаблон. Создал в папке с модулем шаблон block--modulname--block_delta.tpl.php.
в модуле создал функцию :

function modulname_theme() {
return array(
'modulname_block_delta' => array(
'variables' => array(
'search_res' => NULL,
),
'template' => 'block--modulname--block_delta',
),
);
}

В сабмите блока обрабатываю данные, присваиваю переменной search_res готовый массив $res (пробовал и обычную строку):
 theme('modulname_block_delta', array('search_res' => $res));
Для проверки вывода в шаблоне прописал  <?php debug($search_res); ?>
Так вот... Если файл шаблона находится в папке с модулем, то переменная $search_res в шаблон попадает(срабатывает debug(), выводится массив), но на этом всё... вывести через шаблон ничего не могу, хоть что пиши в шаблоне, ничего не меняется, ничего не выводится...
Но если файл шаблона положить в папку templates текущей темы, то всё в шаблоне (HTML) выводится, но без переменной.
При попытке вывести переменную выводится "неопределенная переменная"(Undefined variable: search_res )
Так где, всё-таки должен лежать файл шаблона, чтоб вывести и переменную, и разметку? Где что нужно изменить? Уже мозги кипят...

Комментарии

Аватар пользователя Alkaid Alkaid 16 июля 2014 в 12:37

Ну или хотя бы подскажите вариант, как полученное в сабмите блока значение вывести в самом блоке? Уже создал еще один блок для вывода значения, только как туда передать это значение из сабмита? В инете куча информации, однако ответа найти не удалось. Все либо через drupal_set_message(), либо в БД, либо в файл. А вот как сделать вывод типа как в поиске? Копал вывод в Search, не смог разобраться...

Аватар пользователя Alkaid Alkaid 16 июля 2014 в 18:54

Нет, пока не пробовал. Просто не имею опыта разработки с этим модулем. В моём модуле у меня своя сущность (наследовал от entity), интеграцию с views пока не делал. Но спасибо за направление, попробую вывести с помощью views.