pavantar 23 декабря 2015 в 23:46 Имеем: Drupal 7 Webform "7.x-4.10" Вывожу блок формы в коде страницы Лимит заполнения - по куки Подскажите пожалуйста, как скрыть блок с формой для анонимного пользователя, который УЖЕ ЗАПОЛНИЛ форму? Drupal7 Есть вопрос FAQ Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
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 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 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 24 декабря 2015 в 13:18 $nid - NID вебформы. ['varname'] - имя ключа куки ("Лимит заполнения - по куки") $n - это число, с которым сравнивается количество заполнений WF ("Лимит заполнения - по куки"). Если количество заполнений может быть >1. Можно посмотреть как WF записывает данные и использовать их. Скорее всего сессию вытягивать и проверять. Но для анонимов только куки.
VasyOK 13 января 2016 в 6:50 а если просто выставить ограничение на количество заполнений для юзера? Он же второй раз не заполнит. и не увидит
Комментарии
Проверять куки в препроцессе.
об этом и спрашиваю
какой код прописать в шаблоне?
Впрепроцессоре, что то вроде этого:
<?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 записывает данные и использовать их. Скорее всего сессию вытягивать и проверять. Но для анонимов только куки.
а если просто выставить ограничение на количество заполнений для юзера?![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Он же второй раз не заполнит. и не увидит