You are here

function skinr_get_group_info in Skinr 8.2

Same name and namespace in other branches
  1. 7.2 skinr.module \skinr_get_group_info()

Retrieves all skin groups registered by modules and themes.

Return value

An array of groups.

5 calls to skinr_get_group_info()
LibraryListForm::buildForm in skinr_ui/src/Form/LibraryListForm.php
Form constructor.
SkinrApiTest::testSkinrGroupInfo in src/Tests/SkinrApiTest.php
Tests hook_skinr_group_info().
SkinrApiTestCase::testSkinrGroupInfo in src/Tests/skinr.test
Tests hook_skinr_group_info().
SkinsEditForm::buildForm in skinr_ui/src/Form/SkinsEditForm.php
Form constructor.
SkinsEditForm::validateForm in skinr_ui/src/Form/SkinsEditForm.php
Form validation handler.

File

./skinr.module, line 1195
Handles core Skinr functionality.

Code

function skinr_get_group_info() {
  $group_info =& drupal_static(__FUNCTION__);
  if ($group_info === NULL) {
    if ($cached = \Drupal::cache()
      ->get('skinr_group_info')) {
      $group_info = $cached->data;
      return $group_info;
    }
    $group_info = [];
    $plugins = \Drupal::service('plugin.manager.skin')
      ->getDefinitions();
    foreach ($plugins as $plugin) {
      if (empty($plugin['groups'])) {
        continue;
      }
      foreach ($plugin['groups'] as $group_name => $group_data) {
        $group_info[$group_name] = $group_data + [
          'title' => '',
          'description' => '',
          'weight' => 0,
        ];
      }
    }

    // Allow modules to alter groups through hook_skinr_group_info_alter().
    \Drupal::moduleHandler()
      ->alter('skinr_group_info', $group_info);
    \Drupal::cache()
      ->set('skinr_group_info', $group_info);
  }
  return $group_info;
}