Рейтинг:0

Как скрыть/изменить ['операции']['#ссылки'] изменить/удалить в структуре -> меню в D8

флаг ng

Я пытаюсь скрыть ссылки редактирования и удаления в меню операций в структуре -> меню для определенных ролей.

Я просто пытался скрыть диалог операций с помощью этого кода, но он возвращает:
Ошибка: невозможно отменить смещения строк в my_menu_form_menu_edit_form_alter()

/**
 * @Реализует hook_form_FORM_ID_alter().
 */
функция my_menu_form_menu_edit_form_alter(&$form, FormStateInterface $form_state) {

  дпм ($ форма);

  foreach ($form['links']['links'] as $index => $link) {
если (strpos($index, 'menu_link') !== false){
  dpm($form['links']['links'][$index]['operations']['#links']);
    unset($form['links']['links'][$index]['operations']);

  }
}

Я тоже пытался изменить только заголовок ссылки, но это тоже не сработало и привело к той же ошибке.

В D7 вы просто могли бы сделать что-то вроде $form[$key]['operations']['edit']['#access'] = FALSE;

Помощь :-)

Рейтинг:0
флаг ng

Сожалею! Приведенный выше код действительно работает. Просто возникли некоторые проблемы с кешированием кода в нашей среде DEV, где изменения в коде извлекаются из кеша только через пару дней, когда вы входите в систему и снова выходите из нее. Уже отключил все кеширование Drupal, drush cr не помогает - догадайтесь, это какой-то докер, ddev, мистика опкода.

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

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