Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] language switch Block themen

Eingetragen von deelite (468)
am 14.01.2013 - 14:52 Uhr in
  • Themes & Theming
  • Drupal 7.x

Hallo,

kann mir jemand einen Tipp geben, wie ich den ULs und LIs, welche der language switch block generiert, eigene CSS-Klassen mitgeben kann?

Vielen Dank schon mal fürs Lesen!

‹ css Design / style für Kommentare [gelöst] language switch Block themen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Block hat doch eine

Eingetragen von wla (9461)
am 14.01.2013 - 15:21 Uhr

Der Block hat doch eine eindeutige ID. Von da kannst Du Dich im Zweifel weiterhangeln. Hast Du Dir denn den Inhalt schon genauer angesehen z.B. mit Firebug?

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja. Da gibt es eine Liste. ul

Eingetragen von deelite (468)
am 14.01.2013 - 15:27 Uhr

Ja. Da gibt es eine Liste. ul und li müsste ich jeweils eine weitere Klasse verpassen können. Und bestenfalls die systemseitigen entfernen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn es da doch schon Klassen

Eingetragen von wla (9461)
am 14.01.2013 - 16:08 Uhr

Wenn es da doch schon Klassen gibt und eine ID im Block steht reicht das doch

#blockID .klasse ul {
. . . . . . . .
}
#blockID .klasse ul li {
. . . . . . . . .
}

Damit hast Du doch alles notwendige für Dein CSS.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Grundsätzlich ja. Da ich

Eingetragen von deelite (468)
am 14.01.2013 - 16:12 Uhr

Grundsätzlich ja.

Da ich jedoch ein CSS-Framework einsetze, benötige ich eigene Klassen für diese Elemente.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn es denn unbedingt

Eingetragen von wla (9461)
am 14.01.2013 - 16:34 Uhr

Wenn es denn unbedingt unnötig aufwendig sein soll, sieh doch mal, ob es für den Language_Switcher_Block im entsprechenden Modul eine Theming-Funktion oder eine Template-Datei gibt. Dann kannst Du die Theming-Funktion in der template.php in Deinem Theme überschreiben und mit eigenen Code die Ausgabe des Blockes erzeugen. Dann hast Du alles in der Hand. Wenn es eine Template-Datei ist, mußt Du sehen, wie Du das dann umschreiben kannst nachdem Du die Datei in Dein eigenes Theme kopiert hast.
Ich sehe nach wie vor nicht die Notwendigkeit, wenn das mit wenigen CSS-Statements zu regeln ist.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hm, genau da hängt es dann

Eingetragen von deelite (468)
am 14.01.2013 - 16:52 Uhr

Hm, genau da hängt es dann bei mir.

Ich denke, ich habe die Funktion gefunden:

<?php
function hs02_locale_block_view($type) {
  if (
drupal_multilingual()) {
   
$path = drupal_is_front_page() ? '<front>' : $_GET['q'];
   
$links = language_negotiation_get_switch_links($type, $path);

    if (isset(
$links->links)) {
     
drupal_add_css(drupal_get_path('module', 'locale') . '/locale.css');
     
$class = "language-switcher-{$links->provider}";
     
$variables = array('links' => $links->links, 'attributes' => array('class' => array($class)));
     
$block['content'] = theme('links__locale_block', $variables);
     
$block['subject'] = t('Languages');
      return
$block;
    }
  }
}
?>

Allerdings weiß ich aufgrund fehlender PHP-Kenntnisse nicht, wie ich die so aufdröseln kann, dass ich die resultierenden ul- und li-tags direkt ansprechen kann.

"hs02" ist in diesem Fall bereits mein Theme.

P.S. Ja, es muss in diesem Fall wirklich über diesen Weg laufen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist keine Theme Funktion

Eingetragen von wla (9461)
am 14.01.2013 - 17:23 Uhr

Das ist keine Theme Funktion und kann deshalb nicht so überschrieben werden. Die Theme-Funktion findest Du hier

<?php
      $block
['content'] = theme('links__locale_block', $variables);
?>

Das deutet auf eine Theme-Funktion (theme_links__locale_block) oder eine Template-Datei hin. Auf die Schnelle habe ich die aber jetzt nicht gefunden. Aber wenn Du dazu noch nicht in PHP fit bist, laß es und bleibe bei CSS!

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

OK, da ich diesen Weg gehen

Eingetragen von deelite (468)
am 14.01.2013 - 17:32 Uhr

OK, da ich diesen Weg gehen MUSS, muss ich da wohl durch.

Ich werde berichten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die entsprechende Funktion

Eingetragen von oteno (775)
am 14.01.2013 - 19:36 Uhr

Die entsprechende Funktion wirst Du nicht finden, da es sich bei einem doppelten Unterstrich lediglich eine "Suggestion" handelt. D.h. man kann/muss eine entsprechende Funktion erst anlegen, die dann aufgerufen wird.
In Deinem Fall müsstest Du folgende Funktion in die template.php einfügen.
Ums möglich einfach zu machen, habe ich Dir die Stellen markiert, wo Du Deine Klassen direkt reinschreiben kannst - ist ja einigermaßen lesbar wo das Mark up reinmuss.
Die Funktion könnte man noch deutlich vereinfachen, aber so geht's schon denke ich...

function hs02_links__locale_block($variables) {
  $links = $variables['links'];
  $attributes = $variables['attributes'];
  $heading = $variables['heading'];
  global $language_url;
  $output = '';

  if (count($links) > 0) {
    $output = '';

    // Treat the heading first if it is present to prepend it to the
    // list of links.
    if (!empty($heading)) {
      if (is_string($heading)) {
        // Prepare the array that will be used when the passed heading
        // is a string.
        $heading = array(
          'text' => $heading,
          // Set the default level of the heading.
          'level' => 'h2',
        );
      }
      $output .= '<' . $heading['level'];
      if (!empty($heading['class'])) {
        $output .= drupal_attributes(array('class' => $heading['class']));
      }
      $output .= '>' . check_plain($heading['text']) . '</' . $heading['level'] . '>';
    }

    $output .= '<ul' . drupal_attributes($attributes) . '>'; // HIER KÖNNTEST DU  eine Klasse für die ul direkt eingeben

    $num_links = count($links);
    $i = 1;

    foreach ($links as $key => $link) {
      $class = array($key);

      // Add first, last and active classes to the list of links to help out themers.
      if ($i == 1) {
        $class[] = 'first';
      }
      if ($i == $num_links) {
        $class[] = 'last';
      }
      if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '<front>' && drupal_is_front_page()))
           && (empty($link['language']) || $link['language']->language == $language_url->language)) {
        $class[] = 'active';
      }
      $output .= '<li' . drupal_attributes(array('class' => $class)) . '>';  // HIER KÖNNTEST DU eine Klasse für die li direkt eingeben

      if (isset($link['href'])) {
        // Pass in $link as $options, they share the same keys.
        $output .= l($link['title'], $link['href'], $link);
      }
      elseif (!empty($link['title'])) {
        // Some links are actually not links, but we wrap these in <span> for adding title and class attributes.
        if (empty($link['html'])) {
          $link['title'] = check_plain($link['title']);
        }
        $span_attributes = '';
        if (isset($link['attributes'])) {
          $span_attributes = drupal_attributes($link['attributes']);
        }
        $output .= '<span' . $span_attributes . '>' . $link['title'] . '</span>';
      }

      $i++;
      $output .= "</li>\n";
    }

    $output .= '</ul>';
  }

  return $output;
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tausend Dank für die Mühe!

Eingetragen von deelite (468)
am 14.01.2013 - 19:52 Uhr

Tausend Dank für die Mühe! Das funktioniert wunderbar!

  • 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 20 Stunden
  • Hey danke
    vor 1 Woche 1 Tag
  • Update: jetzt gibt's ein
    vor 1 Woche 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 1 Woche 6 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 6 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 4 Tagen
  • In der entsprechenden View
    vor 2 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 4 Tagen
  • gelöst
    vor 5 Wochen 17 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 19 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