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 - 15: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 (9464)
am 14.01.2013 - 16: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 - 16: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 (9464)
am 14.01.2013 - 17: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 - 17: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 (9464)
am 14.01.2013 - 17: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 - 17: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 (9464)
am 14.01.2013 - 18: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 - 18: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 - 20: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 - 20: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

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 3 Tagen 23 Stunden
  • Guckst du hier: step by step
    vor 3 Tagen 13 Stunden
  • Guckst du hier: step by step
    vor 3 Tagen 13 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 5 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 1 Tag
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 2 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 3 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 2 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 5 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 20 Stunden

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 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