Уважаемые друзья, подскажите по такому вопросу: создал webform'ы так, что их заполнение не доступно гостю. Хочется, чтобы сообщение о необходимости зарегистрироваться отображалось после тела ноды (желательно только для типа webform), ну и повесить на него какие-нибудь стили, чтобы по-крупнее/по-веселее было. Спасибо!
Вложение | Размер |
---|---|
![]() | 32.74 КБ |
Комментарии
Собственное решение:
Изменения производятся в файлах вашей темы. В файле page.tpl.php в фрагменте
<?php if ($show_messages): ?>
<?php echo $messages; ?>
<?php endif; ?>
первую строку заменить на
<?php if ($show_messages and $node->type !== 'webform'): ?>
В файл template.php добавить функцию
<?php
function тема_preprocess_node(&$vars, $hook) {
$vars['webform_message'] = theme_status_messages();
}
?>
Далее два варианта:
1. Сделать копию файла node.tpl.php под именем node-webform.tpl.php и туда в нужное место (например, после тела ноды) поместить следующее
<?php if (!empty($webform_message)): ?>
<div class="webform-message"><?php print $webform_message; ?></div>
<?php endif; ?>
2. Внести исправления непосредственно в node.tpl.php, но тогда нужно проверить, что данная нода имеет тип webform
<?php if (!empty($webform_message) and $node->type === 'webform'): ?>
<div class="webform-message"><?php print $webform_message; ?></div>
<?php endif; ?>
Остается открытым только один вопрос: в файле page.tpl.php есть переменная $show_messages, проверка которой осуществляется для отображении сообщения. Я так и не понял, как содержимое этой переменной можно перекинуть в файл node.tpl.php. Помогите разобраться!