adaptivetheme-8.x-3.x-dev/at_core/src/Ext/ExtGet.php
at_core/src/Ext/ExtGet.php
<?php
namespace Drupal\at_core\Ext;
use Drupal\node\Entity\NodeType;
use Drupal\comment\Entity\CommentType;
use Drupal\block_content\Entity\BlockContentType;
use Drupal\paragraphs\Entity\ParagraphsType;
use Drupal\image\Entity\ImageStyle;
/**
*
*/
class ExtGet {
/**
* @param $theme
* @return \Drupal\Core\Entity\EntityInterface[]|null
*/
public function getActiveThemeBlocks($theme) {
$theme_blocks = NULL;
if (\Drupal::moduleHandler()->moduleExists('block') === TRUE) {
$theme_blocks = \Drupal::entityTypeManager()->getStorage('block')->loadByProperties(['theme' => $theme]);
}
return $theme_blocks;
}
/**
* @return array
*/
public function getBreakPoints() {
$breakpoints = [];
if (\Drupal::moduleHandler()->moduleExists('breakpoint') === TRUE) {
$breakpoints['breakpoint_groups'] = \Drupal::service('breakpoint.manager')->getGroups();
foreach ($breakpoints['breakpoint_groups'] as $group_key => $group_values) {
$breakpoints['breakpoints'][$group_key] = \Drupal::service('breakpoint.manager')->getBreakpointsByGroup($group_key);
}
foreach ($breakpoints['breakpoints'] as $group => $breakpoint_values) {
if ($breakpoint_values !== []) {
$breakpoints['breakpoint_options'][$group] = $group;
}
}
}
else {
\Drupal::messenger()->addMessage(t('This theme requires the <b>Breakpoint module</b> to be installed. Go to the <a href="@extendpage" target="_blank">Modules</a> page and install Breakpoint. You cannot set the layout or use this themes custom settings until Breakpoint is installed.', ['@extendpage' => base_path() . 'admin/modules']), 'error');
}
return $breakpoints;
}
/**
* @return array
*/
public function getEntityTypes() {
$entity_types = [];
// Get node types.
if (\Drupal::moduleHandler()->moduleExists('node') === TRUE) {
$entity_types['node'] = NodeType::loadMultiple();
}
// Get comment types.
if (\Drupal::moduleHandler()->moduleExists('comment') === TRUE) {
$entity_types['comment'] = CommentType::loadMultiple();
}
// Get block types.
if (\Drupal::moduleHandler()->moduleExists('block_content') === TRUE) {
$entity_types['block_content'] = BlockContentType::loadMultiple();
}
// Get paragraph types.
if (\Drupal::moduleHandler()->moduleExists('paragraphs') === TRUE) {
$entity_types['paragraphs'] = ParagraphsType::loadMultiple();
}
return $entity_types;
}
/**
* @return array
*/
public function getViewModes() {
$view_modes = [];
if (\Drupal::moduleHandler()->moduleExists('node') === TRUE) {
$view_modes['node'] = \Drupal::service('entity_display.repository')->getViewModes('node');
// Unset unwanted view modes.
unset($view_modes['node']['rss']);
unset($view_modes['node']['search_index']);
unset($view_modes['node']['search_result']);
}
// Get comment view modes.
if (\Drupal::moduleHandler()->moduleExists('comment') === TRUE) {
$view_modes['comment'] = \Drupal::service('entity_display.repository')->getViewModes('comment');
}
// Get block view modes.
if (\Drupal::moduleHandler()->moduleExists('block_content') === TRUE) {
$view_modes['block_content'] = \Drupal::service('entity_display.repository')->getViewModes('block_content');
}
// Get paragraph view modes.
if (\Drupal::moduleHandler()->moduleExists('paragraphs') === TRUE) {
$view_modes['paragraphs'] = \Drupal::service('entity_display.repository')->getViewModes('paragraph');
}
return $view_modes;
}
/**
* @return array|\Drupal\Core\Entity\EntityInterface[]|static[]
*/
public function getImageStyles() {
$image_styles = [];
if (\Drupal::moduleHandler()->moduleExists('image') === TRUE) {
$image_styles = ImageStyle::loadMultiple();
}
return $image_styles;
}
/**
* @param $file_path
* @return array
*/
public function getSassVariables($file_path) {
$sass_variables = [];
if (file_exists($file_path)) {
$lines = file($file_path);
foreach ($lines as $i => $line) {
// Check the line is a variable.
if (substr($line, 0, 1) === '$') {
$line_arr = explode(":", $line);
$key = trim(str_replace('$', '', $line_arr[0]));
$value = trim(str_replace(';', '', $line_arr[1]));
$sass_variables[$key] = $value;
}
}
}
return $sass_variables;
}
}
