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 - 21: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 - 22: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 - 22: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 - 23: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 - 23: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 - 22: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 - 10: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 - 10:51 Uhr

Super, freut mich.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • The Best Way to Kill a Thrilling Evening at Crash Casino Games
  • Neuinstallation: vermutlich ein rewrite-Problem
  • 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
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 5 Tagen 21 Stunden
  • Wenn die Subdomain auf
    vor 1 Woche 20 Stunden
  • ordnerstruktur
    vor 1 Woche 1 Tag
  • Die Subdomain muß auf den
    vor 1 Woche 3 Tagen
  • Verwende doch das Tag dafür,
    vor 4 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 5 Tagen
  • Ich habe ja keine Angst vor
    vor 6 Wochen 11 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 2 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250290
Registrierte User: 20515

Neue User:

  • VegazoneSpel
  • Wolf Dab
  • Scottteday

» Alle User anzeigen

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