Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

атробут nofollow,

атробут nofollow,
, by

Дня доброго.
Подскажите как сделать так, что бы  в drupal 8 при переходе по меню с модулем superfish не передавался вес по ссылкам, то есть вставить тег nofollow, а так же в самом друпале идет ссылка на вход для регистрации и при выводе книги? Иначе получаются сотни ссылок с каждой страницы с утекающим весом.

1 answer
votes: 1324
Answer

Наверно только кастомным модулем, можно это сделать, дополнительных модулей пока что нет для такого в 8ом друпале:

https://www.drupal.org/project/menu_attributes

https://www.drupal.org/project/nofollowlist

https://www.drupal.org/project/noindex_external_links#english

Если вам когда-нибудь понадобится приписать атрибут rel со значением nofollow к ссылкам только определенного меню, т.е. меню с заданным именем, точечно, то тогда вы всегда можете воспользоваться представленным чуть ниже программным кодом, рассчитанным на Drupal 7. Рекомендую добавить данную страницу в закладки браузера.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function druwebru_menu_link__main_menu($parametri) {
    $elementik $parametri['element'];
    $pod_menu '';
 
    if ($elementik['#below']) :
        $pod_menu = drupal_render($element['#below']);
    endif;
 
    $elementik['#localized_options']['attributes']['rel'] = 'nofollow';
    $vivod = l($elementik['#title'], $elementik['#href'], $elementik['#localized_options']);
    return '<li' . drupal_attributes($elementik['#attributes']) . '>' $vivod $pod_menu "</li>\n";
}
?>

Вставьте сниппет в файл template.php вашей темы. Имя функции переименуйте по следующему шаблону: НазваниеТемы_menu_link__МашинноеИмяМеню. К примеру касаемо листинга выше, код будет срабатывать для блока меню с именем main_menu в теме под названием druwebru.



Вставьте сниппет в файлtemplate.php

Можно немного подробнее про это? Я просто не нашел такой файл. Я так понимаю, что мне просто надо создать модуль и подключить его?


Да, действительно, это же для 7ой версии. 

Тогда попробуйте использовать вот эти хуки:
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Menu!menu.api.php/function/hook_menu_links_discovered_alter/8.2.x
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Menu!menu.api.php/function/hook_link_alter/8.2.x
http://drupal.stackexchange.com/questions/187585/what-is-the-equivalent-of-hook-menu-alter-to-change-a-menu-item-type


function hook_menu_links_discovered_alter(&$links) {

Не могу разобраться пока ка ее подключить

Вот такая подключается без проблем:

class NofollowController extends ControllerBase {

  //Метод, который возвращает render array с содержимым страницы
  public function renderPage() {
    $output = array();
    $output['#title'] = 'Hello world title';
    $output['#markup'] = 'Hello World!';
    return $output;
  }
}

 

nofollow.nofollow:
  path: '/helloworld'
  defaults:
    _title: 'Andrey'
    _controller: '\Drupal\nofollow\Controller\NofollowController::renderPage'
  requirements:
    _permission: 'view testpage'
Я так понимаю вот в этом проблема

::renderPage - а должно быть что то другое