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

  • 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
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 12 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 22 Gäste online.

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