Скрыть уже заполненную webform

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

Аватар пользователя pavantar pavantar 23 декабря 2015 в 23:46

Имеем:
Drupal 7
Webform "7.x-4.10"
Вывожу блок формы в коде страницы
Лимит заполнения - по куки

Подскажите пожалуйста, как скрыть блок с формой для анонимного пользователя, который УЖЕ ЗАПОЛНИЛ форму?

Комментарии

Аватар пользователя bumble bumble 24 декабря 2015 в 11:07

Впрепроцессоре, что то вроде этого:

<?php
$webform_node 
node_load($nid);
$webform node_view($webform'full');

if (

$_COOKIE['varname'] > $n) {
  
$vars['webform'] = $webform;
}
?>

В шаблоне:

<?php if(isset($webform)): ?>
  <?php print $webform; ?>
<?php else: ?>
  Вы уже писали
<?php endif; ?>
Аватар пользователя pavantar pavantar 24 декабря 2015 в 11:17

модно попросить прокомментировать:

bumble wrote:

Впрепроцессоре, что то вроде этого:

в template.php вставить так:
function mytheme_preprocess_page(&$variables){
$webform_node = node_load($nid);
$webform = node_view($webform, 'full');

if ($_COOKIE['varname'] > $n) {
$vars['webform'] = $webform;
}
}

bumble wrote:

$webform_node = node_load($nid);

$nid - номер вебформы надо подставить?
bumble wrote:

if ($_COOKIE['varname'] > $n) {

['varname'] - любое название?
$n - это что за переменная?

Аватар пользователя pavantar pavantar 24 декабря 2015 в 11:22

Думал так:
в самом модуле Webform есть проверка на повторное заполнение.
каким-то образом запросить эту проверку и в шаблоне:

<?php if (!$logged_in && $ПЕРЕМЕННАЯизВЕБФОРМ): ?>

<?php $block = module_invoke('webform', 'block_view', 'client-block-6569'); print render($block['content']);?>

<?php endif; ?>

Аватар пользователя bumble bumble 24 декабря 2015 в 13:18

$nid - NID вебформы.

['varname'] - имя ключа куки ("Лимит заполнения - по куки")

$n - это число, с которым сравнивается количество заполнений WF ("Лимит заполнения - по куки").
Если количество заполнений может быть >1.

Можно посмотреть как WF записывает данные и использовать их. Скорее всего сессию вытягивать и проверять. Но для анонимов только куки.

Аватар пользователя VasyOK VasyOK 13 января 2016 в 6:50

а если просто выставить ограничение на количество заполнений для юзера?
Он же второй раз не заполнит. и не увидит Smile