function gridstack_update_8102 in GridStack 8
Same name and namespace in other branches
- 8.2 gridstack.install \gridstack_update_8102()
Update optionsets grids to use new breakpoints array.
File
- ./
gridstack.install, line 83 - Installation actions for GridStack.
Code
function gridstack_update_8102() {
$config_factory = \Drupal::configFactory();
foreach ($config_factory
->listAll('gridstack.optionset.') as $optionset_name) {
// Map old grids array into breakpoints array.
$optionset = $config_factory
->getEditable($optionset_name);
$options = $optionset
->get('options');
$grids = $optionset
->get('options.grids');
$new_grids = $optionset
->get('options.breakpoints.lg');
if (empty($new_grids['grids']) && !empty($grids)) {
$main = $nested = [];
foreach ($grids as $grid) {
$main[] = isset($grid['node']) ? $grid['node'] : [];
$nested_items = isset($grid['nested']) ? $grid['nested'] : [];
$nested[] = empty($nested_items) ? [] : Json::decode($nested_items);
}
$main = array_filter($main);
if (!empty($main)) {
$optionset
->set('options.breakpoints.lg.grids', Json::encode($main));
$optionset
->clear('options.grids');
$optionset
->clear('json.grids');
if (!empty($nested)) {
$check = array_filter($nested);
// Preserve indices even if empty.
if (!empty($check)) {
$optionset
->set('options.breakpoints.lg.nested', Json::encode($nested));
}
}
}
if (isset($options['settings']['isNested'])) {
$optionset
->clear('options.settings.isNested');
}
if (!empty($options['use_framework'])) {
$optionset
->set('options.settings', []);
}
}
$optionset
->save(TRUE);
}
}