You are here

function _eu_cookie_compliance_extract_category_key_label_description in EU Cookie Compliance (GDPR Compliance) 8

Same name and namespace in other branches
  1. 7.2 eu_cookie_compliance.module \_eu_cookie_compliance_extract_category_key_label_description()
  2. 7 eu_cookie_compliance.module \_eu_cookie_compliance_extract_category_key_label_description()
  3. 2.0.x eu_cookie_compliance.module \_eu_cookie_compliance_extract_category_key_label_description()

Converts a multiline, list of key|label|description strings to an array.

Parameters

string $string: A multiline string containing key, label and optionally a description separated by a pipe symbol.

Return value

array An array of categories the form [key => ['label' => label, 'description' => description]]

1 call to _eu_cookie_compliance_extract_category_key_label_description()
eu_cookie_compliance_update_8123 in ./eu_cookie_compliance.install
Move categories into standalone config entities.

File

./eu_cookie_compliance.module, line 634
The main file for the EU Cookie Compliance module.

Code

function _eu_cookie_compliance_extract_category_key_label_description($string) {
  $categories = [];
  $list = explode("\n", $string);
  $list = array_map('trim', $list);
  $list = array_filter($list, 'strlen');
  foreach ($list as $position => $text) {
    $parts = explode('|', $text);
    $num_parts = count($parts);
    if ($num_parts >= 3) {
      $key = trim($parts[0]);
      $label = trim($parts[1]);
      $description = trim($parts[2]);
    }
    elseif ($num_parts === 2) {
      $key = trim($parts[0]);
      $label = trim($parts[1]);
      $description = '';
    }
    else {
      $key = $label = trim($parts[0]);
      $description = '';
    }
    $categories[$key] = [
      'label' => $label,
      'description' => $description,
    ];
  }
  return $categories;
}