Отображать приглашение войти после тела ноды для Webform

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

Аватар пользователя dlnsk dlnsk 24 мая 2011 в 9:11

Уважаемые друзья, подскажите по такому вопросу: создал webform'ы так, что их заполнение не доступно гостю. Хочется, чтобы сообщение о необходимости зарегистрироваться отображалось после тела ноды (желательно только для типа webform), ну и повесить на него какие-нибудь стили, чтобы по-крупнее/по-веселее было. Спасибо!

ВложениеРазмер
Иконка изображения webform_message.png32.74 КБ

Комментарии

Аватар пользователя dlnsk dlnsk 27 мая 2011 в 10:17

Собственное решение:
Изменения производятся в файлах вашей темы. В файле 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. Помогите разобраться!