DefaultController.php in Simple Style Guide 8
File
src/Controller/DefaultController.php
View source
<?php
namespace Drupal\simple_styleguide\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Form\FormBuilderInterface;
class DefaultController extends ControllerBase {
protected $formBuilder;
protected $entityTypeManager;
public function __construct(EntityTypeManagerInterface $entity_type_manager, FormBuilderInterface $form_builder) {
$this->entityTypeManager = $entity_type_manager;
$this->formBuilder = $form_builder;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('entity_type.manager'), $container
->get('form_builder'));
}
public function index() {
$config = $this
->config('simple_styleguide.styleguidesettings');
$config_colors = $config
->get('default_colors');
$config_patterns = $config
->get('default_patterns');
$default_patterns = [];
if ($config_patterns) {
foreach ($config_patterns as $key => $value) {
if ($value) {
$default_patterns[] = $key;
}
}
}
$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 = [];
$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;
}
}
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,
];
}
}