varbase_update_helper.module in Varbase Core 8.6
Contains varbase_update_helper.module.
File
modules/varbase_update_helper/varbase_update_helper.moduleView source
<?php
/**
* @file
* Contains varbase_update_helper.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element;
use Drupal\update_helper_checklist\Entity\Update;
/**
* Implements hook_form_alter().
*/
function varbase_update_helper_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == "checklistapi_checklist_form") {
if (!isset($form['actions']['save']['#submit'])) {
$form['actions']['save']['#submit'] = [];
}
$form['actions']['save']['#submit'][] = 'varbase_update_helper_checklistapi_form_submit';
$checklist = $form['#checklist'];
$groups = $checklist->items;
// Prevent the user from Clearing checklist progress.
unset($form['actions']['clear']);
foreach (Element::children($groups) as $group_key) {
$group =& $groups[$group_key];
foreach (Element::children($group) as $item_key) {
$update_key = str_replace('.', '_', $item_key);
$entity = Update::load($update_key);
$entityStatus = $entity && $entity
->wasSuccessfulByHook() ? TRUE : FALSE;
if ($entityStatus) {
$form[$group_key][$item_key]['#disabled'] = TRUE;
}
}
}
}
}
/**
* Implements hook_checklistapti_form_submit().
*/
function varbase_update_helper_checklistapi_form_submit(array $form, FormStateInterface $form_state) {
$messenger = \Drupal::messenger();
$checklistapi = $form_state
->getValue('checklistapi');
foreach ($checklistapi as $key => $updateset) {
if ($key == "checklistapi__active_tab") {
continue;
}
if (is_array($updateset) && !empty($updateset)) {
foreach ($updateset as $update => $status) {
$update_key = str_replace('.', '_', $update);
$entity = Update::load($update_key);
$entityStatus = $entity && $entity
->wasSuccessfulByHook() ? TRUE : FALSE;
if ($entityStatus) {
continue;
}
if ($status) {
$update_data = explode(":", $update);
module_load_install($update_data[0]);
if (function_exists($update_data[1])) {
call_user_func($update_data[1], FALSE);
}
else {
$checklistapi[$key][$update] = 0;
$messenger
->addWarning(t("Couldn't find an update hook: %update_hook. Please verify the update hook name.", [
"%update_hook" => $update_data[1],
]));
}
}
}
}
}
$checklist = $form['#checklist'];
// Save progress.
$checklist
->saveProgress($checklistapi);
// Preserve the active tab after submission.
$form_state
->setRedirect($checklist
->getRouteName(), [], [
'fragment' => $checklistapi['checklistapi__active_tab'],
]);
}
/**
* Implements hook_help().
*/
function varbase_update_helper_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the varbase_update_helper module.
case 'help.page.varbase_update_helper':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('Varbase update helper') . '</p>';
return $output;
default:
}
}
/**
* Implements hook_checklistapi_checklist_info_alter().
*/
function varbase_update_helper_checklistapi_checklist_info_alter(array &$definitions) {
if (isset($definitions['update_helper_checklist']['#title'])) {
$definitions['update_helper_checklist']['#title'] = t('Varbase update instructions');
}
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function varbase_update_helper_form_checklistapi_checklist_form_alter(&$form, &$form_state) {
$form['#attached']['library'][] = 'varbase_update_helper/varbase_update_helper';
}
Functions
Name![]() |
Description |
---|---|
varbase_update_helper_checklistapi_checklist_info_alter | Implements hook_checklistapi_checklist_info_alter(). |
varbase_update_helper_checklistapi_form_submit | Implements hook_checklistapti_form_submit(). |
varbase_update_helper_form_alter | Implements hook_form_alter(). |
varbase_update_helper_form_checklistapi_checklist_form_alter | Implements hook_form_FORM_ID_alter(). |
varbase_update_helper_help | Implements hook_help(). |