checklistapi.install in Checklist API 8
Same filename and directory in other branches
Install, update, and uninstall functions for the Checklist API module.
File
checklistapi.installView source
<?php
/**
* @file
* Install, update, and uninstall functions for the Checklist API module.
*/
use Drupal\checklistapi\ChecklistapiChecklist;
use Drupal\Core\Render\Element;
/**
* Update saved progress configuration to new schema.
*/
function checklistapi_update_8001() {
$definitions = checklistapi_get_checklist_info();
foreach ($definitions as $id => $definition) {
$checklist = checklistapi_checklist_load($id);
/**
* Avoid trying to operate on null due to failure to load a checklist.
* @see https://www.drupal.org/project/checklistapi/issues/3122093
*/
if (!$checklist->config) {
continue;
}
$config = $checklist->config
->get(ChecklistapiChecklist::PROGRESS_CONFIG_KEY);
$config['#items'] = [];
$groups = $checklist->items;
foreach (Element::children($groups) as $group_key) {
$group = $groups[$group_key];
// Loop through items.
foreach (Element::children($group) as $item_key) {
if ($config[$item_key]) {
$config['#items'][$item_key] = $config[$item_key];
}
unset($config[$item_key]);
}
}
$checklist->config
->set(ChecklistapiChecklist::PROGRESS_CONFIG_KEY, $config)
->save();
}
}
Functions
Name | Description |
---|---|
checklistapi_update_8001 | Update saved progress configuration to new schema. |