class BlocksDataCollector in Devel 4.x
Same name and namespace in other branches
- 8.3 webprofiler/src/DataCollector/BlocksDataCollector.php \Drupal\webprofiler\DataCollector\BlocksDataCollector
- 8 webprofiler/src/DataCollector/BlocksDataCollector.php \Drupal\webprofiler\DataCollector\BlocksDataCollector
- 8.2 webprofiler/src/DataCollector/BlocksDataCollector.php \Drupal\webprofiler\DataCollector\BlocksDataCollector
Class BlocksDataCollector.
Hierarchy
- class \Drupal\webprofiler\DataCollector\BlocksDataCollector extends \Symfony\Component\HttpKernel\DataCollector\DataCollector implements DrupalDataCollectorInterface uses StringTranslationTrait
Expanded class hierarchy of BlocksDataCollector
1 file declares its use of BlocksDataCollector
- DataCollectorTest.php in webprofiler/
tests/ src/ Functional/ DataCollectorTest.php
File
- webprofiler/
src/ DataCollector/ BlocksDataCollector.php, line 17
Namespace
Drupal\webprofiler\DataCollectorView source
class BlocksDataCollector extends DataCollector implements DrupalDataCollectorInterface {
use StringTranslationTrait, DrupalDataCollectorTrait;
/**
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
private $entityTypeManager;
/**
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
*/
public function __construct(EntityTypeManagerInterface $entity_type_manager) {
$this->entityTypeManager = $entity_type_manager;
$this->data['blocks']['loaded'] = [];
$this->data['blocks']['rendered'] = [];
}
/**
* {@inheritdoc}
*/
public function collect(Request $request, Response $response, \Exception $exception = NULL) {
$storage = $this->entityTypeManager
->getStorage('block');
$loaded = $this->entityTypeManager
->getLoaded('config', 'block');
$rendered = $this->entityTypeManager
->getRendered('block');
if ($loaded) {
$this->data['blocks']['loaded'] = $this
->getBlocksData($loaded, $storage);
}
if ($rendered) {
$this->data['blocks']['rendered'] = $this
->getBlocksData($rendered, $storage);
}
}
/**
* @return array
*/
public function getRenderedBlocks() {
return $this->data['blocks']['rendered'];
}
/**
* @return int
*/
public function getRenderedBlocksCount() {
return count($this
->getRenderedBlocks());
}
/**
* @return array
*/
public function getLoadedBlocks() {
return $this->data['blocks']['loaded'];
}
/**
* @return int
*/
public function getLoadedBlocksCount() {
return count($this
->getLoadedBlocks());
}
/**
* {@inheritdoc}
*/
public function getName() {
return 'blocks';
}
/**
* {@inheritdoc}
*/
public function getTitle() {
return $this
->t('Blocks');
}
/**
* {@inheritdoc}
*/
public function getPanelSummary() {
return $this
->t('Loaded: @loaded, rendered: @rendered', [
'@loaded' => $this
->getLoadedBlocksCount(),
'@rendered' => $this
->getRenderedBlocksCount(),
]);
}
/**
* {@inheritdoc}
*/
public function getIcon() {
return 'iVBORw0KGgoAAAANSUhEUgAAABUAAAAcCAYAAACOGPReAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNDgwMTE3NDA3MjA2ODExOEY2MkNCNjI0NDY3NzkwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQjg5OTA4OEYwQTgxMUUzQkJDRThFQjA5Q0E1REFCRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQjg5OTA4N0YwQTgxMUUzQkJDRThFQjA5Q0E1REFCRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDM4MDExNzQwNzIwNjgxMTg3MUZDQ0I0RjY1RTlEM0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDQ4MDExNzQwNzIwNjgxMThGNjJDQjYyNDQ2Nzc5MEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz68h+kGAAAAWElEQVR42mL8//8/A7UBEwMNwAg3lAVEODg4UCW2Dhw4wDgapgyMtEj8eCMKFPCkyI1GFCJMiUnQVDUUX0SNllK4wxRf+JAdUeQUfaMRRd+ib4SHKUCAAQAMcyf8vLAstgAAAABJRU5ErkJggg==';
}
/**
* @param $decorator
* @param $storage
*
* @return array
*/
private function getBlocksData(EntityDecorator $decorator, EntityStorageInterface $storage) {
$blocks = [];
/** @var \Drupal\block\BlockInterface $block */
foreach ($decorator
->getEntities() as $block) {
/** @var \Drupal\block\Entity\Block $entity */
if (NULL !== $block && ($entity = $storage
->load($block
->get('id')))) {
$route = '';
if ($entity
->hasLinkTemplate('edit-form')) {
$route = $entity
->toUrl('edit-form')
->toString();
}
$id = $block
->get('id');
$blocks[$id] = [
'id' => $id,
'region' => $block
->getRegion(),
'status' => $block
->get('status'),
'theme' => $block
->getTheme(),
'plugin' => $block
->get('plugin'),
'settings' => $block
->get('settings'),
'route' => $route,
];
}
}
return $blocks;
}
}