it-swarm.com.de

Wie erlaube ich HTML-Tag im Menü?

So erlauben Sie ein HTML-Tag im Menü in Drupal 8. Zum Beispiel, wenn Sie home verwenden @reg Wird im Menütitel verwendet, wird das HTML-Tag angezeigt.

4
Aditya Joshi

Folgende Lösung funktioniert:

use Drupal\Core\Render\Markup;

/**
 * Implements hook_preprocess_HOOK()
 */
function YOURTHEME_preprocess_menu(&$variables){
  foreach($variables['items'] as &$link){
    $link['title'] = Markup::create($link['title']);
  }
}

Quelle: HTML in Menüelementnamen zulassen - Lösung für Drupal 8

7
Aditya Joshi

Ich empfehle dafür ein Plugin zu verwenden. Vollständiges Tutorial hier: Erstellen Sie einen Menü-Link mit HTML-Markup in drupal 8

namespace Drupal\MYMODULE\Plugin\Menu;

use Drupal\Core\Menu\MenuLinkDefault;

/**
 * A menu link that displays number of points.
 */
class MyMessagesMenuLink extends MenuLinkDefault {

  /**
   * {@inheritdoc}
   */
  public function getTitle() {
    $count = 0;
    if(\Drupal::currentUser()->isAuthenticated()) {
      // Load in your count here
      ...
    }
    return $this->t('My messages <span class="badge badge-dark">@count</span>', ['@count' => $count]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCacheMaxAge() {
    return 0;
  }

}
0