little_helpers.module in Little helpers 7.2
Same filename and directory in other branches
Hook implementations and supplementary functions availably in any request.
File
little_helpers.moduleView source
<?php
/**
* @file
* Hook implementations and supplementary functions availably in any request.
*/
use Drupal\little_helpers\System\FormRedirect;
use Drupal\little_helpers\Webform\Webform;
use Drupal\little_helpers\Webform\Submission;
/**
* Implements hook_form_BASE_FORM_ID_alter() for webform_client_form().
*
* Insert a custom submit handler that lets other modules alter the redirect.
*/
function little_helpers_form_webform_client_form_alter(array &$form, array &$form_state) {
$form['#submit'][] = '_little_helpers_webform_redirect_alter';
}
/**
* Form submission handler: Let other modules alter the redirect.
*
* @see little_helpers_form_webform_client_form_alter()
* @see hook_webform_redirect_alter()
*/
function _little_helpers_webform_redirect_alter(array $form, array &$form_state) {
if (!$form_state['webform_completed'] || !$form_state['redirect']) {
return;
}
$sid = $form_state['values']['details']['sid'];
$submission = Submission::load($form['#node']->nid, $sid);
$redirect = FormRedirect::fromFormStateRedirect($form_state['redirect']);
drupal_alter('webform_redirect', $redirect, $submission);
$form_state['redirect'] = $redirect
->toFormStateRedirect();
}
/**
* Implements hook_webform_confirm_email_confirmation_redirect_alter().
*/
function little_helpers_webform_confirm_email_confirmation_redirect_alter(&$redirect, $node, $submission) {
$submission = new Submission($node, $submission);
$submission->confirmed = 1;
$r = FormRedirect::fromFormStateRedirect($redirect['path'], $redirect);
drupal_alter('webform_redirect', $r, $submission);
$redirect = get_object_vars($r) + $redirect;
}
/**
* Implements hook_webform_submission_insert().
*/
function little_helpers_webform_submission_insert($node, $submission) {
little_helpers_webform_submission_update($node, $submission);
}
/**
* Implements hook_webform_submission_presave().
*
* Śet $submission->was_draft which is needed later in
* @see little_helpers_webform_submission_update() to only invoke the hook once.
*/
function little_helpers_webform_submission_presave($node, $submission) {
$submission->new_or_was_draft = empty($submission->sid) || empty($submission->completed);
}
/**
* Implements hook_webform_submission_update().
*/
function little_helpers_webform_submission_update($node, $submission) {
if (!$submission->is_draft && $submission->new_or_was_draft) {
$webform = new Webform($node);
if (!$webform
->needsConfirmation()) {
little_helpers_webform_confirm_email_email_confirmed($webform, $submission);
}
}
}
/**
* Implements hook_webform_confirm_email_email_confirmed().
*/
function little_helpers_webform_confirm_email_email_confirmed($node_or_webform, $submission, $first_confirmation = TRUE) {
if ($first_confirmation) {
$submission_o = new Submission($node_or_webform, $submission);
module_invoke_all('webform_submission_confirmed', $submission_o);
}
}
/**
* Delivery callback: JSON response.
*/
function little_helpers_deliver_json($result) {
switch ($result) {
case MENU_NOT_FOUND:
drupal_add_http_header('Status', '404 Not found');
return;
case MENU_ACCESS_DENIED:
drupal_add_http_header('Status', '403 Forbidden');
return;
case 405:
drupal_add_http_header('Status', '405 Method Not Allowed');
return;
case 502:
drupal_add_http_header('Status', '502 Bad Gateway');
return;
case MENU_SITE_OFFLINE:
drupal_add_http_header('Status', '503 Service unavailable');
return;
}
echo drupal_json_output($result);
drupal_page_footer();
}
Functions
Name![]() |
Description |
---|---|
little_helpers_deliver_json | Delivery callback: JSON response. |
little_helpers_form_webform_client_form_alter | Implements hook_form_BASE_FORM_ID_alter() for webform_client_form(). |
little_helpers_webform_confirm_email_confirmation_redirect_alter | Implements hook_webform_confirm_email_confirmation_redirect_alter(). |
little_helpers_webform_confirm_email_email_confirmed | Implements hook_webform_confirm_email_email_confirmed(). |
little_helpers_webform_submission_insert | Implements hook_webform_submission_insert(). |
little_helpers_webform_submission_presave | Implements hook_webform_submission_presave(). |
little_helpers_webform_submission_update | Implements hook_webform_submission_update(). |
_little_helpers_webform_redirect_alter | Form submission handler: Let other modules alter the redirect. |