Скрыть уже заполненную webform
23 декабря 2015 в 23:46
Имеем:
Drupal 7
Webform "7.x-4.10"
Вывожу блок формы в коде страницы
Лимит заполнения - по куки
Подскажите пожалуйста, как скрыть блок с формой для анонимного пользователя, который УЖЕ ЗАПОЛНИЛ форму?
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Проверять куки в препроцессе.
об этом и спрашиваю
какой код прописать в шаблоне?
Впрепроцессоре, что то вроде этого:
<?php
$webform_node = node_load($nid);
$webform = node_view($webform, 'full');
if (
$_COOKIE['varname'] > $n) {$vars['webform'] = $webform;
}
?>
В шаблоне:
<?php print $webform; ?>
<?php else: ?>
Вы уже писали
<?php endif; ?>
модно попросить прокомментировать:
в template.php вставить так:
function mytheme_preprocess_page(&$variables){
$webform_node = node_load($nid);
$webform = node_view($webform, 'full');
if ($_COOKIE['varname'] > $n) {
$vars['webform'] = $webform;
}
}
$nid - номер вебформы надо подставить?
['varname'] - любое название?
$n - это что за переменная?
Думал так:
в самом модуле Webform есть проверка на повторное заполнение.
каким-то образом запросить эту проверку и в шаблоне:
<?php if (!$logged_in && $ПЕРЕМЕННАЯизВЕБФОРМ): ?>
<?php $block = module_invoke('webform', 'block_view', 'client-block-6569'); print render($block['content']);?>
<?php endif; ?>
$nid - NID вебформы.
['varname'] - имя ключа куки ("Лимит заполнения - по куки")
$n - это число, с которым сравнивается количество заполнений WF ("Лимит заполнения - по куки").
Если количество заполнений может быть >1.
Можно посмотреть как WF записывает данные и использовать их. Скорее всего сессию вытягивать и проверять. Но для анонимов только куки.
а если просто выставить ограничение на количество заполнений для юзера?
Он же второй раз не заполнит. и не увидит