Submitted by Stéphane53 on
Je souhaiterais savoir comment faire pour, à partir d'un thème (et ses fichiers theme.info, style.css, ...), insérer une nouvelle REGION CSS dans mes pages.
------> Par exemple :
Disons que j'ai un theme avec une feuille de style style.css qui déclare bien
les 4 régions suivantes :
header,
content,
sidebar-left,
footer,
Et mon souhait est de créer une région "sidebar-right".
Je le fais donc dans ma page styles.css. Par exemple :
sidebar-right {
float: right;
width: 100%;
)
Le fichier theme.info m'indique :
regions[header] = Header
regions[content] = Content
regions[left] = Sidebar left
regions[footer] = Footer
------> Est-ce uniquement au niveau de ce fichier theme.info que ça se passe ? Et que dois-je déclarer ?
Re- Bon je ne me coucherais
Permalien Soumis par Stéphane53 le 28 Janvier, 2010 - 19:56
Re-
Bon je ne me coucherais pas tant que je n'aurais pas résolu ça, car je
n'arrive plus à avancer sans... :)
Donc pour résumer : comment "triturer" le fichier .info dans le thème,
pour pouvoir, par exemple, créer une nouvelle région ?
J'y ai passé 2 heures, parfois un truc apparaît (je reste sur la page
"liste des blocs" de mon site), mais avec parfois un autre nom, ça ne
"répond" pas normalement...
Salut, je suis aussi en train
Permalien Soumis par guitarman le 29 Janvier, 2010 - 08:50
Salut, je suis aussi en train de regarder un peu comment ça marche tout ça.
Je ne voudrais pas dire de bêtises mais, il me semble qu'en dehors de les déclarer dans le .info et dans le css il faut aussi modifier tes templates pour pouvoir les afficher.
a+
La question que je me pose,
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 10:38
La question que je me pose, c'est s'il n'y aurait pas un fichier (un template, ou autre..) EN DEHORS du thème et donc dans les fichiers du site lui-même...
Car sur mon bouquin j'ai l'information suivante :
"Voici les 5 régions fournies par défaut :
- Left
- right
- content
- header
- footer"
Si ces régions sont par défaut, je suppose que c'est donc indépendant du thème. Le fichier qui les déclare est très important dans ce cas;..
Mais où est-il ? :-)
Effectivement il me semble
Permalien Soumis par guitarman le 29 Janvier, 2010 - 10:48
Effectivement il me semble avoir vu quelque chose comme ça, mais si tu déclare tes propres régions dan ton thème tu overwrite celles par défaut et donc ne surtout pas toucher à celles par défaut car si mise à jour drupal tu risque de perdre tes modifs.
Toutes tes modifs doivent être faites dans ton theme.
Un truc qui me perturbe,
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 12:19
Un truc qui me perturbe, c'est, pour prendre un exemple très concret :
J'ai dans mon css : sidebar-second {...
Puis dans mon fichier .info la ligne suivante :
regions[right] = Second sidebar
-> Et dans mes pages apparaît bien la région "Second sidebar". Mais comment le lien se fait-il entre le fichier .info et la déclaration dans le css, alors que l'orthographe est différente ? (sidebar-second / Second sidebar) !!!
(Car au final je parviens bien à faire apparaître mes noms de régions dans mes pages, par contre ces régions ne semblent absolument pas liées à ce que j'ai écrit à leur sujet dans la page .css)
Si j'ai bien compris et dans
Permalien Soumis par guitarman le 29 Janvier, 2010 - 13:34
Si j'ai bien compris et dans ton exemple sa passe par la variable $right dans le template ce qui correspond à regions[right]= le nom de region.
Ensuite dans le template derrière le if $right tu peux placer des div avec ta classe css.
Enfin j'ai pas encore essayer mais je crois que c'est comme cela que sa fonctionne.
Si un spécialiste passe par ici merci de confirmer.
ps: après modif il faut apparemment vider la cache
Je comprends le principe que
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 14:35
Je comprends le principe que tu évoques.
Ceci dit j'ai écumé le fichier template.php, et tous les fichiers de type .tpl, mais pas trace des right, left, header, content ou autre... Donc au final je ne repère toujours pas le lien, malheureusement...
Disons que j'en reste au stade suivant :
- Je crée mes régions dans le fichier .info (déclaration) et dans le fichier .css (caractéristiques en css de ces régions). Elles sont alors bien présentes sur mes pages.
- Mais je peux mettre n'importe quel bloc dedans, je n'obtiens rien. Par exemple je mets la "navigation" du site dans une de mes régions, cette navigation disparaît. Mes régions créés sont comme "vides"...
(PS : oui il faut vider le cache régulièrement, à chaque changement du fichier .info)
Par exemple dans garland
Permalien Soumis par guitarman le 29 Janvier, 2010 - 14:56
Par exemple dans garland page.tpl.php ligne 82:
<?php if ($right): ?>
<div id="sidebar-right" class="sidebar">
<?php if (!$left && $search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
<?php print $right ?>
</div>
<?php endif; ?>
Oui j'allais intervenir pour
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 15:34
Oui j'allais intervenir pour dire que c'est dans la page.tpl que ça se passe !
Je vais décortiquer ça... Merci pour le coup de main :-)
Un lien utile ici : http://www.webopius.com/content/125/creating-custom-regions-in-drupal-th...
Les 2 choses à faire
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 16:07
Les 2 choses à faire :
Fichier .info :
regions[ma_nouvelle_region] = Ma nouvelle région
page.tpl.php :
Et enfin les 2 régions apparaissent bien sur la page. Reste une chose (post à suivre...) :-)
Reste le comment agir au
Permalien Soumis par Stéphane53 le 29 Janvier, 2010 - 16:44
Reste le comment agir au niveau de la feuille de style, pour agir sur ces régions créées.
Pour reprendre le cas du thème "Basic", ça peut se passer au niveau de la feuille de style layout.css ou style.css
Affaire à suivre...
Bonjour à vous. Voici
Permalien Soumis par Stéphane53 le 30 Janvier, 2010 - 14:43
Bonjour à vous. Voici l'explication : il me manquait de déclarer la div dans le fichier php.
Du coup voilà la procédure globale, pour ceux qui ca va intéresser, pour créer une nouvelle région à laquelle on affectera ensuite diverses propriétés css :
1- Déclarer dans le fichier .info :
regions[ma_nouvelle_region] = Ma nouvelle region
2- Déclarer dans le fichier page.tpl.php :
div id="ma-nouvelle-region"
?php print $ma_nouvelle_region; ?
/div
(J'ai volontairement enlevé les < et > car sinon ça ne "passe pas")
3- Enfin dans le fichier css (dans le cas du thème "Basic", c'est layout.css et non style.css), écrire :
#
ma-nouvelle-region {
(avec ses propriétés en height, padding, margin, etc...)
}
(PS : j'ai aussi volontairement écrit Ma nouvelle region, ma_nouvelle_region et ma-nouvelle-region de 3 façons différentes pour qu'on les distingue bien dans leur déclarations diverses...)
Voilà...
Merci beaucoup c'est
Permalien Soumis par Elfvain le 16 Février, 2010 - 18:24
Merci beaucoup c'est exactement ce que je chercher a mettre dans la documentation du site ^^