Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

target="_blank" in einem Menüpunkt, wie?

Eingetragen von flofi (30)
am 13.04.2011 - 09:45 Uhr in
  • Anfängerfragen
  • Drupal 7.x

Hallo zusammen,

hab jetzt schon ne Weile gesucht und Bücher durchforstet, aber nicht zum o.g. Problem gefunden.
Ich habe ein neues Menü für die Sidebar erstellt, in dem man z.B. einen Link zur Facebook Fanpage findet. Per CSS hab ich dem Menüpunkt ein Hintergrundbild mit dem Facebook Logo gegeben. Im Menüpunkt selbst habe ich keine Möglichkeit anzugeben, ob der Klick einen neuen Tab im Browser oder ein neues Fenster öffnen soll.

Wie und wo müsste man diese Funktionalität einbauen? Eine alternative wäre vermutlich das Modul "Menu Attributes", aber geht es auch ohne Modul?

Gruß und danke.

‹ GELÖST - CSS Problem automated logout ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

theme_menu_item_link

Eingetragen von stBorchert (6003)
am 13.04.2011 - 10:04 Uhr

Hallo.
Ohne Modul kann man das über die Theme-Ebene steuern. Speziell über die Funktion [api:theme_menu_item_link:6].

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Um dem "custom menu" eine

Eingetragen von flofi (30)
am 13.04.2011 - 10:23 Uhr

Um dem "custom menu" eine eindeutige Klasse zu geben habe ich folgende Funktion in meinen template.php Datei geschrieben. (Diese funktioniert auch, d.h. sie schreibt eine eindeutige Class=menu-XYZ zum jeweiligen Link.

<?php
/**
* Add unique class (mlid) to all menu items.
*/
function templateXXX_menu_link(array $variables) {
 
$element = $variables['element'];
 
$sub_menu = '';

 
$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];

  if (
$element['#below']) {
   
$sub_menu = drupal_render($element['#below']);
  }
 
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
  return
'<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
?>

gefunden auf:

http://api.drupal.org/api/drupal/includes--menu.inc/function/theme_menu_...

Wie bekomme ich jetzt noch das target='_blank' hinzu?

Einen Ansatz für externe Links wäre zu schauen, ob im href die ersten 4 Zeichen 'http' sind, dann externen Link daraus machen.

Danke für eure Hilfe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

target

Eingetragen von stBorchert (6003)
am 13.04.2011 - 10:40 Uhr
drupalfragen schrieb

Einen Ansatz für externe Links wäre zu schauen, ob im href die ersten 4 Zeichen 'http' sind, dann externen Link daraus machen.

Genau so. Nur, dass Du dann $element['#attributes']['target'] setzen musst.

Allerdings finde ich persönlich als Benutzer von Webseiten es absolut nervend, wenn Links in neuen Tabs/Fenster geöffnet werden. Das kann und möchte ich selbst entscheiden. Und außerdem ist der HTML-Quelltext dann nicht valide :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, vielen Dank für die

Eingetragen von flofi (30)
am 13.04.2011 - 16:57 Uhr

Hallo,
vielen Dank für die Hilfe,
habe jetzt aber doch das Modul menu attributes genommen. Dieses musste aber auch noch angepasst werden.

Musste den modul Code wie folgt verändern:

function menu_attributes_get_menu_attribute_info() {
  $attributes = module_invoke_all('menu_attribute_info');
  drupal_alter('menu_attribute_info', $attributes);

  // Merge in defaul values.
  foreach ($attributes as $attribute => &$info) {
  variable_set("menu_attributes_{$attribute}_enable",1);
    $info += array(
      'form' => array(),
      'enabled' => variable_get("menu_attributes_{$attribute}_enable", 1),
      'default' => '',
    );
    $info['form'] += array(
      '#type' => 'textfield',
      '#title' => $info['label'],
      '#description' => isset($info['description']) ? $info['description'] : '',
      '#default_value' => variable_get("menu_attributes_{$attribute}_default", $info['default']),
    );
  }

  return $attributes;
}

Also dem Code in der foreach Schleife folgende Zeile hinzufügen:
variable_set("menu_attributes_{$attribute}_enable",1);

Ohne diese Zeile hat mir das Modul in den Menüeinstellungen eine leeres Fieldset angezeigt. (Drupal 7)
Jetzt funktionierts.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
Weiter

Neue Kommentare

  • Oh, der Klassiker unter den
    vor 1 Stunde 51 Minuten
  • spin online casino l75tqh
    vor 7 Stunden 27 Minuten
  • Naja ich achte immer drauf on
    vor 17 Stunden 7 Minuten
  • Das ist für mich das typische
    vor 20 Stunden 19 Minuten
  • Ok es scheint zu laufen
    vor 22 Stunden 18 Minuten
  • Danke. Es scheint jetzt
    vor 23 Stunden 12 Minuten
  • Der Fehler kann in der
    vor 1 Tag 13 Stunden
  • Ja, das mit Mühselig hab ich
    vor 1 Tag 15 Stunden
  • composer nutezn
    vor 1 Tag 23 Stunden
  • Sorry ich sehe gerade ich
    vor 3 Tagen 12 Minuten

Statistik

Beiträge im Forum: 250251
Registrierte User: 20469

Neue User:

  • Germanrom
  • StevenEness
  • ocvk2810

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 33 Gäste online.

Benutzer online

  • dinmikkith

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association