lb_grid_cta-1.0.1/modules/lb_grid_icon/lb_grid_icon.module
modules/lb_grid_icon/lb_grid_icon.module
<?php
/**
* @file
* LB Grid CTA module.
*/
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Form\FormStateInterface;
/**
* Implements HOOK_theme().
*/
function lb_grid_icon_theme($existing, $type, $theme, $path) {
return [
'block__lb_icon_grid' => [
'base hook' => 'block',
'template' => 'block--lb-icon-grid',
]
];
}
/**
* Implements hook_preprocess_HOOK().
*/
function lb_grid_icon_preprocess_block__lb_icon_grid(&$variables) {
$variables['block_content'] = $variables['elements']['content']['#block_content'];
$variables['items'] = $variables['block_content']->field_block_item->referencedEntities() ?? FALSE;
$variables['columns'] = $variables['block_content']->field_icon_columns->value ?? 3;
}
/**
* Implements hook_ENTITY_TYPE_presave() for block entities.
*/
function lb_grid_icon_block_content_presave(EntityInterface $block) {
if ($block->bundle() === 'icon_grid_item') {
$block->setInfo($block->get('field_title')->value);
}
}
/**
* Implements hook_inline_entity_form_entity_form_alter().
*/
function lb_grid_icon_inline_entity_form_entity_form_alter(array &$entity_form, FormStateInterface $form_state) {
$entity = $entity_form['#entity'];
if ($entity->bundle() === 'icon_grid_item' && !empty($form_state->getUserInput()['settings']['block_form']['field_block_item']['form'])) {
$form = $form_state->getUserInput()['settings']['block_form']['field_block_item']['form'];
if (isset($form['inline_entity_form'])) {
$resultForm = reset($form['inline_entity_form']['entities'])['form'];
}
else {
$resultForm = reset($form);
}
$entity->setInfo($resultForm['field_title']['0']['value']);
}
}
