Лишние link rel на страницах термина.

Аватар пользователя VasyOK VasyOK 18 октября в 0:03

Всем привет!
Проблема. На любой странице термина ананоимусам доступны ссылки на редактирование/удаление термина, а также контейнера форума (шта?). Термин с форумам никак не связан.

Т.е.:

<head>  
    <!--......................-->
    <link rel="delete-form" href="/taxonomy/term/1/delete">
    <link rel="edit-form" href="/taxonomy/term/1/edit">
    <link rel="forum-edit-container-form" href="/admin/structure/forum/edit/container/1">
    <link rel="forum-delete-form" href="/admin/structure/forum/delete/forum/1">
    <link rel="forum-edit-form" href="/admin/structure/forum/edit/forum/1">    
    <!--......................-->
</head>

Тут патчи ставят, но про форум они не в курсе:
https://www.drupal.org/project/drupal/issues/2856823

Взял код из этой темы:
https://www.drupal.org/project/metatag/issues/2625300

И поставил в mytheme.theme темы оформления (если б я был Адано, может я бы и знал как кастомный модуль из этого сварганить).

function mytheme_page_attachments_alter(array &$attachments) {
    if (!isset($attachments['#attached']['html_head_link'])) {
      return;
    }
    $unset_html_head_link = [      
      'delete-form',
      'edit-form',
      'forum-edit-container-form',
      'forum-delete-form',
      'forum-edit-form',
    ];
    foreach ($attachments['#attached']['html_head_link'] as $key => $value) {
      if (isset($value[0]['rel']) && in_array($value[0]['rel'], $unset_html_head_link)) {
        unset($attachments['#attached']['html_head_link'][$key]);
      }
    }
}

Вроде ушел лишний код из head. Еще варианты?

Комментарии

Аватар пользователя adano adano 18 октября в 7:20

VasyOK wrote: может я бы и знал как кастомный модуль из этого сварганить

Подобное в базовую тему уходит, а не в модуль.
А где проверка на анонимуса?

VasyOK wrote: Еще варианты?

9.3.0 дождись

Аватар пользователя marassa marassa 18 октября в 21:33

VasyOK wrote: Смысл в этих директивах?

Я ещё два года назад задавался вопросом зачем эти теги вообще вставляются в хедер, ответа так и не нашел. Есть целые модули для удаления этих лишних тегов, без них все прекрасно работает как для анонимуса так и для админа, но вот зачем ядро Друпала с таким упорством вставляет их на страницу - для меня так и остается загадкой.

Аватар пользователя marassa marassa 19 октября в 7:15
1

https://www.drupal.org/project/unset_html_head_link
https://www.drupal.org/project/disable_link_rel

Нашел, кстати, в одном месте довольно туманное описание зачем нужны эти ссылки:

Removing those links will break a whole crapload of stuff, on a whole crapload of modules. We use those link values to build out the admin UI in many cases.

https://www.drupal.org/project/drupal/issues/2406533#comment-10942263
При этом никаких подробностей о том, что именно сломается, нет, и мой личный опыт, в также опыт многочисленных пользователей указанных модулей (а также тех, кто удалил эти ссылки через хук) показывает, что не ломается ничего...