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

Pro Seite ein anderes Design / Themes

Eingetragen von Majce (57)
am 11.08.2008 - 14:20 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo liebe Drupaler

Ist es möglich, dass wenn ich zb: eine Praktikanten-Website hätte, dass ich zb:
wenn ich auf Praktikant1 klicke - die Seite rot wird,
beim Prak.2 Gelb und so weiter (ohne Login - unabhängig, wer sich die Seiten anschaut)

Danke viel mal für eure Hilfe

Ganz lieben Gruss

Majce

‹ PIXTURE - Pro USER andere Farbe CCK Themen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, per hook_init

Eingetragen von klapper@drupal.org (85)
am 11.08.2008 - 14:45 Uhr

den folgenden Code in ein Modul einbauen und "mymodule" in den entsprechenden Modulnamen ändern,
anschließend kannst du mit Links der Form ?style=mystyle zwischen aktiven Themes umschalten.

<?php


/*
* switch theme
*/
function mymodule_init() {
  if ((
$style=$_GET['style']) && $style!=$_SESSION['style']) {//if it isnt the current theme.
   
$themes = list_themes();// get avaliable themes.
   
if ($themes[$style]) {//theme is valid.
     
$_SESSION['style'] = $style;
    }
  }
 
//set theme
 
if ($_SESSION['style'] && $_SESSION['style']!=$GLOBALS['user']->theme) {
   
$GLOBALS['custom_theme'] = $_SESSION['style'];
  }
}
?>

Edmund
------
Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

CSS

Eingetragen von stBorchert (6003)
am 11.08.2008 - 14:55 Uhr

Moin!
Eine weitere Alternative wäre, abhängig vom Pfad oder der Node-Id einfach eine CSS-Klasse zum body hinzufügen und diese in der style.css entsprechend farblich belegen.
Also in der template.php:

<?php
function DeinThemeName_body_class($left, $right) {
  if (
$left != '' && $right != '') {
   
$class = 'sidebars';
  }
  else {
    if (
$left != '') {
     
$class = 'sidebar-left';
    }
    if (
$right != '') {
     
$class = 'sidebar-right';
    }
  }

  if ((
arg(0) == 'node') && is_numeric(arg(1)) {
   
$class .= ' node-'. arg(1);
  }

  if (isset(
$class)) {
    print
' class="'. $class .'"';
  }
}
?>

Jetzt hast Du bei allen nodes im Body noch eine zusätzliche Klasse, die Du per CSS auswerten kannst.

node-1 {background: #ffffff;}
node-2 {background: #fafafa;}
...

Das ist natürlich etwas Schreibaufwand, falls Du viele verschiedene Seiten machen möchtest, die dann auch noch unterschiedliche Farben haben.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nachtrag

Eingetragen von stBorchert (6003)
am 11.08.2008 - 14:59 Uhr

In http://www.drupalcenter.de/node/11742 wurden auch Lösungen zu diesem Problem gezeigt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

CSS im Body Tag und CSS Kaskaden

Eingetragen von quiptime (4972)
am 11.08.2008 - 15:18 Uhr

Anderer Loesungsweg:

Es kommt darauf an welches Theme Du verwendest.

Sehe Dir mal den HTML Quellcode einzelner zu veaendernder Seiten an.

Dabei ganz speziell den Body Tag.

Hat er ereignis- oder anzeigenbezogene CSS Klassen. Wenn ja ist dies der Ausgangspunkt einer kaskadierenden CSS Formatierung bezogen auf die jeweilige mit einem konkreten Body Tag angezeigte Seite.

Hat er keine ereignis- oder anzeigebezogenen CSS Klassen? Dann organisiere Dir diese im Body Tag. Danach weiter wie voran.

Bei dieser Vorgehensweise sind keine separaten CSS Dateien notwendig da durch die verschiedenen Kaskadierungen separate Formatanweisungen innerhalb einer einzelnen CSS Datei erfolgen koennen.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

klapper@drupal.org

Eingetragen von Majce (57)
am 12.08.2008 - 10:08 Uhr
klapper@drupal.org schrieb

den folgenden Code in ein Modul einbauen und "mymodule" in den entsprechenden Modulnamen ändern,
anschließend kannst du mit Links der Form ?style=mystyle zwischen aktiven Themes umschalten.

<?php


/*
* switch theme
*/
function mymodule_init() {
  if ((
$style=$_GET['style']) && $style!=$_SESSION['style']) {//if it isnt the current theme.
   
$themes = list_themes();// get avaliable themes.
   
if ($themes[$style]) {//theme is valid.
     
$_SESSION['style'] = $style;
    }
  }
 
//set theme
 
if ($_SESSION['style'] && $_SESSION['style']!=$GLOBALS['user']->theme) {
   
$GLOBALS['custom_theme'] = $_SESSION['style'];
  }
}
?>

Edmund
------
Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de

Hallo Edmund.

Danke für deine Antwort, doch Fragen hätte ich immer noch dazu:

in welches MODUL (meinst du nicht vielleicht Themes) soll ich diesen Code einbauen?

<?php
function mymodule_init()
{
if ((
$style=$_GET['style']) && $style!=$_SESSION['style'])
{ 
$themes = list_themes();// get avaliable themes.
if ($themes[$style]) {//theme is valid.
$_SESSION['style'] = $style;
}
}
if (
$_SESSION['style'] && $_SESSION['style']!=$GLOBALS['user']->theme) {
$GLOBALS['custom_theme'] = $_SESSION['style'];
}
}
?>

ich habe vier aktive Themen, pixture, pixture1, pixture2, pixture3, wärest du vielleicht so lieb und würdest mir helfen, indem du mir ein Beispiel machst?

Komme nicht so ganz nach!

Danke viel mal für deine bisherige Hilfe

Lieben Gruss

Maja

  • Anmelden oder Registrieren um Kommentare zu schreiben

sorry, aber es muss ein

Eingetragen von klapper@drupal.org (85)
am 12.08.2008 - 10:50 Uhr

sorry, aber es muss ein Modul sein, da nur dort ein hook_init benutzt werden
kann.

Du kannst Dir ganz einfach ein neues Modul schreiben.
1. Verzeichnis sites/all/modules/deinmodul anlegen
2. eine Info Datei deinmodul.info dort anlegen (kopiere irgendwoher eins,
umbennenen, öffnen und namen austauschen)
3. deinmodul.module anlegen und dort den code aus dem beispiel einkopieren
(unter dem name deinmodul_init)
4. modul in admin/build/modules aktivieren

fertig!

Wenn du ein einfaches Beispiel für ein Modul brauchst, schaue dir mal 'ping'
an (ist ein Kernmodul).
Kopiere einfach alles und bennene ping in irgendwas um (in allen Dateien),
lösche den Inhalt von ping.module und kopiere den Code von oben ein.

Viele Grüße
Edmund
------

Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich danke euch allen

Eingetragen von Majce (57)
am 12.08.2008 - 14:50 Uhr

Ich möchte mich bei allen Usern bedanken, die mir geholfen haben!

Danke an euch alle und einen lieben Gruss

Majce

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

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 1 Benutzer und 27 Gäste online.

Benutzer online

  • wla

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