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']);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc