function theme_webform_view_messages in Webform 7.4
Same name and namespace in other branches
- 5.2 webform.module \theme_webform_view_messages()
- 6.3 webform.module \theme_webform_view_messages()
- 6.2 webform.module \theme_webform_view_messages()
- 7.3 webform.module \theme_webform_view_messages()
Display a message to a user if they are not allowed to fill out a form.
Parameters
array $variables: The variables array.
2 theme calls to theme_webform_view_messages()
- webform_client_form_prevalidate in ./
webform.module - Validates that the form can still be submitted, saved as draft, or edited.
- webform_node_view in ./
webform.module - Implements hook_node_view().
File
- ./
webform.module, line 2178 - This module provides a simple way to create forms and questionnaires.
Code
function theme_webform_view_messages(array $variables) {
global $user;
$node = $variables['node'];
$page = $variables['page'];
$submission_count = $variables['submission_count'];
$user_limit_exceeded = $variables['user_limit_exceeded'];
$total_limit_exceeded = $variables['total_limit_exceeded'];
$allowed_roles = $variables['allowed_roles'];
$closed = $variables['closed'];
$cached = $variables['cached'];
$type = 'warning';
if ($closed) {
$message = t('Submissions for this form are closed.');
}
elseif ($node->webform['confidential'] && user_is_logged_in()) {
$message = t('This form is confidential. You must <a href="!url">Log out</a> to submit it.', array(
'!url' => url('user/logout', array(
'query' => drupal_get_destination(),
)),
));
}
elseif (array_search(TRUE, $allowed_roles) === FALSE && $user->uid != 1) {
if (empty($allowed_roles)) {
// No roles are allowed to submit the form.
$message = t('Submissions for this form are closed.');
}
elseif ($user->uid == 0) {
// The user is anonymous, so (at least) needs to log in to view the form.
$login = url('user/login', array(
'query' => drupal_get_destination(),
));
$register = url('user/register', array(
'query' => drupal_get_destination(),
));
if (variable_get('user_register', 1) == 0) {
$message = t('You must <a href="!login">login</a> to view this form.', array(
'!login' => $login,
));
}
else {
$message = t('You must <a href="!login">login</a> or <a href="!register">register</a> to view this form.', array(
'!login' => $login,
'!register' => $register,
));
}
}
else {
// The user must be some other role to submit.
$message = t('You do not have permission to view this form.');
$type = 'error';
}
}
elseif ($user_limit_exceeded && !$cached) {
if ($node->webform['submit_interval'] == -1 && $node->webform['submit_limit'] > 1) {
$message = t('You have submitted this form the maximum number of times (@count).', array(
'@count' => $node->webform['submit_limit'],
));
}
elseif ($node->webform['submit_interval'] == -1 && $node->webform['submit_limit'] == 1) {
$message = t('You have already submitted this form.');
}
else {
$message = t('You may not submit another entry at this time.');
}
}
elseif ($total_limit_exceeded && !$cached) {
if ($node->webform['total_submit_interval'] == -1 && $node->webform['total_submit_limit'] > 1) {
$message = t('This form has received the maximum number of entries.');
}
else {
$message = t('You may not submit another entry at this time.');
}
}
// If the user has submitted before, give them a link to their submissions.
if ($submission_count > 0 && $node->webform['submit_notice'] == 1 && !$cached) {
if (empty($message)) {
$message = t('You have already submitted this form.');
$type = 'status';
}
$message .= ' ' . t('<a href="!url">View your previous submissions</a>.', array(
'!url' => url('node/' . $node->nid . '/submissions'),
));
}
if ($page && isset($message)) {
drupal_set_message($message, $type, FALSE);
}
}