You are here

function _migrate_cookie_categories_to_separate_structure in EU Cookie Compliance (GDPR Compliance) 7

Same name and namespace in other branches
  1. 7.2 eu_cookie_compliance.install \_migrate_cookie_categories_to_separate_structure()

Transform string based categories into array based ones.

Parameters

$categories: The array of categories to transform.

$settings: The full configuration settings.

Return value

array

1 call to _migrate_cookie_categories_to_separate_structure()
eu_cookie_compliance_update_7017 in ./eu_cookie_compliance.install
Migrate categories from string to array.

File

./eu_cookie_compliance.install, line 788
Installation file.

Code

function _migrate_cookie_categories_to_separate_structure($categories, $settings) {
  if (count($categories)) {
    $i = 0;

    // Add default values for new attributes like weight.
    foreach ($categories as $machine_name => &$category) {
      $category['machine_name'] = $machine_name;
      $category['checkbox_default_state'] = 'unchecked';

      // Preserve all categories being automatically checked
      // and first category's special treatment, if any.
      if (!empty($settings['select_all_categories_by_default'])) {
        $category['checkbox_default_state'] = 'checked';
      }
      if ($i === 0 && !empty($settings['fix_first_cookie_category'])) {
        $category['checkbox_default_state'] = 'required';
      }
      $category['weight'] = $i++;
    }
  }
  return $categories;
}