Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modulsuche ›

[Gelöst] CSS style switch (!= Theme switch)

Eingetragen von Genesis (597)
am 01.12.2012 - 20:35 Uhr in
  • Modulsuche
  • Drupal 7.x

Hallo zusammen,

ich will auf meiner Seite Usern ermöglichen verschiedene Farbstile zu wählen. Deswegen will ich aber nicht für jede Farbe ein neues Theme bereit stellen, da so auch alle anderen Theme-Teile (images, js, markup usw.) jedesmal neu geladen werden müssen. Ich bin dabei über das Modul Styleswitcher gestolpert. Was mir dabei nicht wirklich gefallen mag, ist dass es über einen Block läuft, ich hätte lieber eine Profil-Lösung (Profil Einstellungen), wie bei der klassischen Theme-Auswahl. Außerdem ist das Modul für 7.x noch Dev und die Issues wollen mir auch nicht so ganz gefallen.

Meine Frage: Kennt jemand alternative Lösungen, oder Module, bzw. hat eventuell Erfahrung mit dem oben genannten Modul unter 7.x?

Vielen Dank im Voraus,

Genesis

‹ Suche Lexikon/Sitemap Modul mit Einzelseite pro Begriff mehrere Blöcke zufällig einzeln anzeigen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

So weit ich verstanden habe,

Eingetragen von oteno (775)
am 01.12.2012 - 21:32 Uhr

So weit ich verstanden habe, handelt es sich um angemeldete User, oder?
Da könnte man auch über eine Selectlist im Profil eine Auswahl treffen. So könnte man eine Variable erzeugen, und konditional die entsprechende css-Datei ins Theme laden.
Oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, ich bin kein PHPler,

Eingetragen von Genesis (597)
am 01.12.2012 - 21:43 Uhr

Okay, ich bin kein PHPler, ich versuchs mal zu rekapitulieren. :)

Ich erstelle eine selectlist. Kein Problem. Dann lasse ich das Feld im Head-Bereich ausgeben, und wechsle dort mit der entsprechenden Ausgabe das Theme, entweder direkt per Ausgabe, oder als if/case-abfrage? Gibt es dadurch nicht Probleme beim Caching, weil die Dateien nicht via .info-Datei eingebunden werden?

Oder habe ich es komplett falsch verstanden? Dann entschuldige ich mich schon mal.

In jedem Fall schon mal danke für die Hilfe!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

so ähnlich habe ich mir das

Eingetragen von oteno (775)
am 01.12.2012 - 22:36 Uhr

so ähnlich habe ich mir das vorgestellt in der template.php:

function yourtheme_preprocess_html(&$variables) {

  $color = $user->data['neue_variable'];
  switch ($color) {
    case 'red':
       drupal_add_css(drupal_get_path('theme', 'yourtheme').'/css/red.css');
        break;
    case 'green':
        drupal_add_css(drupal_get_path('theme', 'yourtheme').'/css/green.css');
        break;
    case 'yellow':
        drupal_add_css(drupal_get_path('theme', 'yourtheme').'/css/yellow.css');
        break;
   }
}

völlig ungetestet, nur eine Skizze...

Wobei ich jetzt noch nicht genau wüsste, wie die neue Variable in das $user-Objekt kommt, oder ob sie schon drinnen ist, wenn man sie dem Profil hinzufügt.
Ich glaube wenn man dass css mit drupal_add_css hinzufügt, sollte man keine Probleme mit der Aggregation bekommen.
Ich hoffe ich liege jetzt nicht komplett falsch...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Oteno, ich danke dir

Eingetragen von Genesis (597)
am 01.12.2012 - 22:35 Uhr

Hallo Oteno,

ich danke dir vielmals für die Hilfe. Werde erst morgen zum Testen kommen. Aber ich denke, daran kann ich mich entlang hangeln!

Noch mal vielen, vielen Dank.

Werde die Ergebnisse dann noch mal einstellen, für etwaige spätere Interessenten. :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, ich bin hier etwas

Eingetragen von Genesis (597)
am 02.12.2012 - 21:47 Uhr

Okay, ich bin hier etwas weiter gekommen, aber es gibt noch ein Problem... Aktuell sieht der Code so aus:

function THEMENAME_preprocess_html(&$variables) { 
  global $user;
  $user_fields = user_load($user->uid);
  $color = $user_fields->field_prftheme['und']['0']['value']; 
  switch ($color) {
    case 'Standard':
           drupal_add_css( drupal_get_path('theme','THEMENAME') . '/css/standard.css','theme');
        break;
    case 'Blau':
           drupal_add_css( drupal_get_path('theme','THEMENAME') . '/css/blue.css','theme');
        break;
   }
}

Das funktioniert soweit auch, sprich er switched die Dateien entsprechend. Allerdings wird der Pfad falsch ausgegeben, bzw. die Datei falsch eingebaut. Das schaut dann nämlich so aus:

<style type="text/css" media="all">
<!--/*--><![CDATA[/*><!--*/
sites/all/themes/THEMENAME/css/blue.css
/*]]>*/-->
</style>

Warum er den Pfad so ausgibt verstehe ich nicht so recht. Ich habe nun schon X Sachen ausprobiert, aber immer endet es so.

Mache ich irgendwas falsch, oder habe ich was übersehen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auch wenn ich hier etwas mit

Eingetragen von Genesis (597)
am 03.12.2012 - 09:00 Uhr

Auch wenn ich hier etwas mit mir selbst rede. Durch Zufall bin ich heute morgen bei der Suche über eine andere Version gestolpert, und damit hat es dann funktioniert. Hier noch mal die funktionierende Variante, und noch mal großen Dank an Oteno.

function THEMENAME_preprocess_html(&$variables) { 
  global $user;
  $user_fields = user_load($user->uid);
  $color = $user_fields->field_prftheme['und']['0']['value']; 
  switch ($color) {
    case 'Standard':
            drupal_add_css( drupal_get_path('theme','THEMENAME') . '/css/standard.css', array('group' => CSS_THEME));
        break;
    case 'Blau':
            drupal_add_css( drupal_get_path('theme','THEMENAME') . '/css/blue.css', array('group' => CSS_THEME));
        break;
   }
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super, freut mich.

Eingetragen von oteno (775)
am 03.12.2012 - 09:51 Uhr

Super, freut mich.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • wmtbpo361x
  • 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

  • Rollen
    vor 4 Tagen 19 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 1 Tag
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 2 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 6 Tagen
  • Hey danke
    vor 10 Wochen 3 Stunden
  • Update: jetzt gibt's ein
    vor 10 Wochen 21 Stunden
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 2 Tagen
  • In der entsprechenden View
    vor 11 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250238
Registrierte User: 20467

Neue User:

  • LorisBen
  • StevenEness
  • ocvk2810

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