Injecter du CSS Drupal

Résolu/Fermé
pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019 - Modifié par pbertout le 30/12/2015 à 15:26
pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019 - 9 janv. 2016 à 14:21
Bonjour à tous,

Alors voila mon problème, j'ai un téléchargé un dossier avec dedans des fichier CSS qui vont me permettre d'insérer une lightbox sur mon site (j'ai essayé avec des modules mais je bloque). Seulement je bloque également là, je n'arrive pas à trouver ou mettre, comment injecter cela, en sois même je ne peux pas utiliser CSS injector étant donné qu'il s'agisse d'un dossier de plusieurs fichier CSS, et je ne peux pas non plus l'installer comme un module...

Si vous avez une idée je vous en remercierais !!!

Merci à tous et bonnes fêtes !
A voir également:

1 réponse

ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 3/01/2016 à 20:10
Je commence tout juste sur Drupal mais apparemment c'est plutôt sur les thèmes qu'on joue avec le CSS et de préférence dans un sous-thème. (On ne doit pas modifier un thème officiel car ils sont mis à jour automatiquement et on perdrait ses modifs)

Donc le premier truc à faire serait de créer un sous-thème.

La façon de procéder dépends un peu des spécificités du thème de départ (certains comme celui de bootstrap proposent un répertoire à recopier) mais globalement la procédure généralement applicable est expliquée (en anglais) sur : https://www.drupal.org/node/225125

D'abord choisir arbitrairement un nom interne unique constitué de minuscule (et éventuellement de tirets bas). Exemple en partant de bartik : "mon_soustheme_bartik"

- créer un sous-répertoire reprenant exactement ce nom interne dans
sites/all/themes/mon_soustheme_bartik
(ou dans
sites/www.exemple.com/themes/mon_soustheme_bartik
si on gère plusieurs site)

Ensuite créer un fichier .info dans ce répertoire, qui aura le même nom que le nom interne, donc :
sites/all/themes/mon_soustheme_bartik/mon_soustheme_bartik.info


Il contiendra :

name = Mon sous-thème à moi que j'ai fait(info libre)
description = Un sous-thème du thème Bartik (info libre)
core = 7.x (dépends de la version de drupal)
base theme = bartik (Info la plus importante !!! obligatoirement le nom interne du thème de base)

(Ne pas écrire dans le .info ce que j'ai mis entre parenthèses !!! On sait jamais ...)


Le sous-thème hérite ensuite de "presque" toutes les propriétés du thème de base et dés la fin de l'édition du .info on peut le choisir dans le menu d'administration "apparence/thème/"

Il est possible d'overrider (surcharger ou redéfinir) dans le .info certaines propriétés du thème de base.
Certaines, (très peu) devront être obligatoirement redéfinies comme le logo.png qui pourra être recopié à partir du répertoire du thème de base, les régions (qui apparaissent dans blocs), quelques préférences avancées de thème et le module color (avec ses css).

Ensuite il faut créer un fichier template.php dans le répertoire du sous thème et le modifier :

<?php
function <bold>mon_soustheme_bartik</bold>_preprocess_html(&$variables) {
    drupal_add_css('sites/all/themes/mon_soustheme_bartik/ton_css.css');
}


Le chemin est relatif depuis la racine ... Après j'utilise les options par défaut, on peut utiliser un css sur un autre serveur, etc ...

Moi, c'est là que je mets mon css ...
Et à l'arrivé dans le source des pages j'ai :

@import url("[http://mon.serveur/drupal/sites/all/themes/mon_soustheme_bartik/ton_css.css]");


Si besoin la page du site officiel pour le CSS : https://www.drupal.org/node/171209
(Ou ils disent qu'on peut aussi le faire dans le .info mais chez moi ça marche pas, même après refresh du cache)

Maintenant ça fait 1 semaine que je fais du drupal alors ce que j'en dis ...


Tout ça dépends également de la version de Drupal. (6, 7 ou 8 / Je suis sur 7). Si je dis des co**ries n'hésitez pas à me le dire.


Et ta lightbox elle marche qu'avec du css, pas de javascript ?
Avec du JS en plus le template.php du sous-thème devient :

<?php
mon_soustheme_bartik_preprocess_html(&$variables) {
    drupal_add_js('https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?autoload=true&skin=sons-of-obsidian', 'external');
    drupal_add_css('sites/all/themes/mon_soustheme_bartik/ton_css.css');
}


Bibliographie :
Creating a sub-theme
Working with JS
Adding style sheets
function drupal_add_js
function drupal_add_css
function template_preprocess_html








You may stop me but you can't stop us all   ;-)
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
4 janv. 2016 à 09:53
Juste pour dire que la première ligne est :

<?php 
function mon_soustheme_bartik_preprocess_html(&$variables) {


Il y a du y avoir un problème de copié/collé ... Et le nom de la fonction dépends évidement du nom interne du (sous-)thème ....
0
pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019 94 > ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021
Modifié par pbertout le 4/01/2016 à 18:23
Bonjour et merci pour cette réponse mais au risque de ne pas avoir compris ce que tu m'as dit je vais reformuler : en gros dans mon thème (corporate pour ma part), je dois créer un sous-thème ou dedans je pourrais mettre mon fichier lightbox. C'est bien ça?
Ha oui et après vérification, j'ai également du javascript.

De plus je suis aussi sur la version 7.

Merci beaucoup !

A++
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276 > pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019
Modifié par ryko1820 le 4/01/2016 à 19:56
C'est cela. D'abord créer un sous-thème car il ne faut pas modifier un thème officiel ou hacker le core d'après les "bests practices". (En raison des mise à jours auto entre autres), ensuite définir dans l'administration ce thème comme thème par défaut, et puis insérer ses scripts js et css dans le template.php de son sous-thème en utilisant les fonctions faites pour ça. Il est aussi possible de le faire dans le .info ou dans des .inc mais pour ce que tu souhaites faire cela me parait le plus simple.
0
pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019 94 > ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021
5 janv. 2016 à 07:50
D'accord, merci je vais faire cela alors ! Merci beaucoup ! Je te tiens au courant !

Bonne journée !

A++
0
pbertout Messages postés 992 Date d'inscription mercredi 25 mars 2015 Statut Membre Dernière intervention 8 septembre 2019 94
5 janv. 2016 à 19:33
Bonsoir,

Je viens de me poser une question, voila, par exemple certain utilisateurs peuvent choisir deux thèmes différents, pour la lightbox, je vais créer dans mes deux thèmes le dossier, ou il suffit de faire le sous-thème dans seulement le thème principal (à savoir corporate pour ma part)?

Merci par avance !

Bonne soirée !
0