Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst] Hook und Css

Eingetragen von loony (203)
am 21.07.2010 - 09:08 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hab so ne peinliche anfänger Frage.

Weiss vieleicht einer wie ich ein CSS über einen hook (oder irgendwie auf eine andere art) einbinden kann und das standart CSS vom Theme überschreiben kann? Der Pfad zum CSS ist in einer DB hinterlegt. Das auslesen daraus ist kein Problem da dies in einer Variable gespeichert ist.
Mein Ziel ist es das Standart CSS vom Theme XYZ zu überschreiben. Kann mir dabei einer helfen?

Noch kurz zur Erleuterung weshalb das CSS in der DB ist. Da mehrere CSS zur Verfügung stehen, möchte ich über mein Frontend das ich programmiert habe, die einzelnen CSS auswählen können.
Ich danke schon mal für die Antworten. :)

AnhangGröße
Die selectbox mit ein paar beispiel einträgen.17.7 KB
‹ [gelöst] Book Access - Add Node Option fehlt ... Modul Events: Extra-Menüpunkt Event eintragen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

drupal_add_css

Eingetragen von stBorchert (6003)
am 21.07.2010 - 09:10 Uhr

Hallo.
Schau Dir mal die Funktion [api:drupal_add_css] an.

edit: und am Besten auch gleich noch [do:skinr Skinr]. Mit diesem Modul kann man nämlich für einzelne Elemente verschiedene Styles anlegen.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

geht leider nicht ganz.

Eingetragen von loony (203)
am 21.07.2010 - 10:38 Uhr

geht leider nicht. :(
ich habe jetzt den Code

// gives the path to the css file starts at "sites/all/.."
$path = $css_table_array[$css_id]['path'];
// add the css
drupal_add_css($path);;

in die submit function gepackt. Durch das debuggen merkte ich das mir das Ubercartmodul einen strich durch die Rechnung macht und am schluss nochmals ein CSS added und mir somit mein CSS zurückstellt und ignoriert. :/

in der page.tpl hat die Variable styles mein css nich mit eingebunden. :(

haste dafür vieleicht eine lösung?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Soll diese CSS Datei denn

Eingetragen von Sense (1559)
am 21.07.2010 - 10:49 Uhr

Soll diese CSS Datei denn generell in die Seite eingebunden werden?

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja soll sie aber soll

Eingetragen von loony (203)
am 21.07.2010 - 10:52 Uhr

ja soll sie aber soll variabel bleiben. im page.tpl einpflegen wer nicht das problem, aber da darf ich nichts verändern. das ist die vorgae. xD

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du hast ja auch die

Eingetragen von Sense (1559)
am 21.07.2010 - 11:08 Uhr

Du hast ja auch die Möglichkeit diese über die template.php einzubinden.

<?php
/**
* Implementation of hook_preprocess_page().
*/
function themename_proprocess_page(&$vars) {
 
drupal_add_css(path_to_theme() . '/css/yourcss.css', 'theme');
 
 
// Regenerate css
 
$vars['styles'] = drupal_get_css();
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Diese Idee hatte ich auch

Eingetragen von loony (203)
am 21.07.2010 - 11:17 Uhr

Diese Idee hatte ich auch schon. Leider darf ich dies auch nicht. xD
Schlussentlich sollen 5 verschiedene themes ausgewählt werden können und 5 CSS. Alles was innerhalb von dem theme ist darf ich nicht brauchen also das page.tpl, template.php oder node.tpl etc nicht. nicht einmal das kern page.tpl. xD

mir bleibt also nichts anderes übrig als ein hook zu erstellen in meinem Modul? Wen dies der fall ist, wie würde das dan ausehen das mir dies nach dem Ubercartmodul eingebunden wird das CSS? in der Hirarchie muss das CSS zuoberst stehen um die Veränderungen/Styles übernemen zu können.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Würde ich dann folgendemaßen

Eingetragen von Sense (1559)
am 21.07.2010 - 11:20 Uhr

Würde ich dann folgendermaßen machen:

<?php
/**
* Implementation of hook_init().
*/
function yourmodule_init() {
 
drupal_add_css(drupal_get_path('module', 'yourmodule') . '/yourcss.css');
}
?>

Die CSS-Datei musst Du dann im Modul Ordner ablegen, damit Sie geladen werden kann.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Skinr

Eingetragen von stBorchert (6003)
am 21.07.2010 - 11:45 Uhr

Wie schon oben erwähnt: schau Dir mal [do:skinr Skinr] an.
So wie ich Deine Anforderungen verstehe, tut dieses Modul genau das, was Du haben möchtest.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ sense deine lösung ist

Eingetragen von loony (203)
am 21.07.2010 - 12:20 Uhr

@ sense
deine lösung ist super. es funktioniert noch nicht aber ich bin daran am arbeiten. im moment ist es so das ich zwar das css sehe welches ich eibindenmöchte in der variable $css in der Funktion selbst von drupal_add_css stehen alle css drin welche geladen werden. im page.tpl bei dieser zeile
<?php echo $styles ?>
sind alle css drin auser die ich mit drupal_add_css hinzugefügt habe aussert meine. :(
mein code sieht zurzeit so aus

Module:

<?php
/**
* implementation of a hook_menu().
*/
include_once 'includes/custom_css.form.php';
include_once
'includes/custom_css_form_submit.php';
include_once
'includes/custom_css_init.php';

function
custom_css_menu() {

   
$items['admin/custom css'] = array(
       
'path' => 'admin/settings/custom_css',
       
'title' => t('Custom Css Module'),
       
'description' => 'This module includes custom css files and overwrithes the old css files.',
       
'position' => 'right',
       
'weight' => -5,
       
'page callback' => 'drupal_get_form',
       
'access arguments' => array('administer site configuration'),
    );
    return
$items;
}

function
custom_css_nodeapi(&$node, $op, $teaser, $page) {
    include_once
'includes/custom_css.form.php';
   
$node->content[$content_name] = array(
                   
'#value' => drupal_get_form("custom_css_form"),
                   
'#weight' => $function->weight
               
);
}
?>

Funktion:

<?php
/**
* Implementation of hook_init().
*/
function custom_css_init() {
 
drupal_add_css(drupal_get_path('module', 'custom_css') . '/custom_stylesheets/chocolate.css');
}
?>

siehst du hier vieleicht ein überlegungsfehler?

@stBorchert
Ich werde mir skinner im hintergrund ansehen und schauen wie die es gelöst haben. da ich selbst keine zusätzlichen module brauchen darf, muss ich es selbst programmieren. :( danke ür den tipp :D

  • Anmelden oder Registrieren um Kommentare zu schreiben

Module

Eingetragen von stBorchert (6003)
am 21.07.2010 - 12:26 Uhr
loony schrieb

da ich selbst keine zusätzlichen module brauchen darf, muss ich es selbst programmieren.

Bitte?
Ihr verzichtet lieber auf fertige, getestete und funktionierende Lösungen? Was soll das denn?

  • Anmelden oder Registrieren um Kommentare zu schreiben

nur nicht ärgern :) mein

Eingetragen von loony (203)
am 21.07.2010 - 12:35 Uhr

nur nicht ärgern :) mein scheff meint es wäre eine gute übung. xD

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: mein scheff meint es

Eingetragen von stebeg (463)
am 21.07.2010 - 12:42 Uhr
Zitat:

mein scheff meint es wäre eine gute übung

Wat is ein Scheff? :-P

Ne gute Übung wäre ne saubere, sichere und einfach zu pflegende Lösung zu finden

  • Anmelden oder Registrieren um Kommentare zu schreiben

ein scheff ist einer der sagt

Eingetragen von loony (203)
am 21.07.2010 - 12:47 Uhr

ein scheff ist einer der sagt was zu machen ist und selbst nichts macht oder so in der art :D hihi. is nur ein Witz:D

ja und die saubere lösung versuche ich zu finden. xD

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich habe mir skinr angeschaut

Eingetragen von loony (203)
am 26.07.2010 - 10:18 Uhr

ich habe mir skinr angeschaut und gesehn das es für unser vorhaben nicht geigent ist, da die unterschiede von themes und css zu gross sind. Somit ist das Problem weiterhin bestehend. :(

Durch das debuggen fand ich heraus, dass mein css zwar in den header geladen wird, aber in der page.tpl. wird in der Variable $style mein css nicht eingebunden. Woran könnte das liegen? liegt es daran das es 2 mal durch meine funktion läuft?

  • Anmelden oder Registrieren um Kommentare zu schreiben

-- CLOSE --

Eingetragen von loony (203)
am 26.07.2010 - 12:45 Uhr

Kann geschlossen werden. Ich habe eine saubere Lösung gefunden.

Danke an die die mir geholfen haben. Das ganze funktioniert mit dem hook_init() und ein paar Zeilen Code. so wie es Sense gesagt hat.

:D danke

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bearbeite das Thema und packe

Eingetragen von Sense (1559)
am 26.07.2010 - 12:48 Uhr

Bearbeite das Thema und packe einfach ein "[gelöst]" dazu, damit Besucher wissen dass geholfen werden konnte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • [Gelöst] Menü wie hier samsung.com/de/ wie, mit Drupal?
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • [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?
Weiter

Neue Kommentare

  • Казино с минимальным депозитом
    vor 2 Stunden 2 Minuten
  • Казино с минимальным депозитом
    vor 2 Stunden 3 Minuten
  • Казино с минимальным депозитом
    vor 2 Stunden 4 Minuten
  • Казино с минимальным депозитом
    vor 2 Stunden 6 Minuten
  • Казино с минимальным депозитом
    vor 2 Stunden 6 Minuten
  • melde mich mal wieder, da ich
    vor 2 Wochen 4 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250238
Registrierte User: 20458

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

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