public function DefaultController::index in Simple Style Guide 8
Primary Page.
Return value
array Returns markup array.
1 string reference to 'DefaultController::index'
File
- src/
Controller/ DefaultController.php, line 55
Class
- DefaultController
- Class DefaultController.
Namespace
Drupal\simple_styleguide\ControllerCode
public function index() {
$config = $this
->config('simple_styleguide.styleguidesettings');
$config_colors = $config
->get('default_colors');
$config_patterns = $config
->get('default_patterns');
// Selected patterns.
$default_patterns = [];
if ($config_patterns) {
foreach ($config_patterns as $key => $value) {
if ($value) {
$default_patterns[] = $key;
}
}
}
// Custom colors.
$default_colors = [];
if ($config_colors) {
foreach ($config_colors as $key => $value) {
$color_split = explode('|', $value);
if (!empty($color_split[0])) {
$default_colors[$key]['hex'] = $color_split[0];
$rgb = array_map('hexdec', str_split(ltrim($color_split[0], '#'), 2));
$rgb_value = implode(',', $rgb);
$default_colors[$key]['rgb'] = $rgb_value;
}
if (!empty($color_split[1])) {
$default_colors[$key]['class'] = $color_split[1];
}
if (!empty($color_split[2])) {
$default_colors[$key]['description'] = $color_split[2];
}
}
}
// Custom patterns.
$custom_patterns = [];
$storage = $this->entityTypeManager
->getStorage('styleguide_pattern');
$ids = $storage
->getQuery()
->execute();
if (!empty($ids)) {
$patterns = $storage
->loadMultiple($ids);
foreach ($patterns as $pattern) {
$pattern->template = [
'#theme' => 'simple_styleguide_pattern',
'#pattern_id' => $pattern
->id(),
'#pattern' => $pattern->pattern,
];
$custom_patterns[] = $pattern;
}
}
// Sort patterns by weight.
usort($custom_patterns, function ($a, $b) {
return $a
->get('weight') <=> $b
->get('weight');
});
return [
'#theme' => 'simple_styleguide',
'#default_patterns' => $default_patterns,
'#default_colors' => $default_colors,
'#custom_patterns' => $custom_patterns,
];
}