Рейтинг:1

Проверьте тип блока в THEME_preprocess_menu_local_task

флаг za

Я хочу внести изменения в локальные вкладки задач определенного типа пользовательского блока (мини_макет).

Я могу сделать это для определенных типов узлов в моей теме с помощью THEME_preprocess_menu_local_task(), и там я могу использовать следующее, чтобы сначала проверить узел и тип узла.

$node = \Drupal::routeMatch()->getParameter('node');
если ($node && $node->getType() == 'content_type') {
  // мой код
}

Но как мне проверить что-то вроде $блок и $block->getType() == 'mini_layout'? (Что, безусловно, неправильно.)

Делать это в модуле или лучше остаться в теме?

Рейтинг:1
флаг ua

я скорее использую hook_menu_local_tasks_alter просто потому, что они сделали специальный крючок для этого. Так что можно и использовать.

/**
 * Реализует hook_menu_local_tasks_alter().
 */
функция MY_MODULE_menu_local_tasks_alter(&$data, $route_name) {
  $is_a_block = !empty(\Drupal::routeMatch()->getParameters()->get('block_content'));
  если ($is_a_block) {
    $is_a_mini_layout_block = \Drupal::routeMatch()->getParameters()->get('block_content')->bundle() == 'mini_layout';
    если ($is_a_mini_layout_block) {
      // мой код
    }
  }
}

Делать это в модуле или лучше остаться в теме?

Лучше использовать модуль, так как эти страницы используют тему администратора, и вы никогда не должны касаться основной темы администратора. Поэтому, если вы не используете настраиваемую тему администратора, тогда и только тогда вы можете рассмотреть возможность использования темы.

Sarah C avatar
флаг za
Спасибо! Работал отлично. Спасибо за дополнительный контекст.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.