[Résolu] (résolu) Conseil pour la création d'un thème

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je cherche un conseil à propos des différents thèmes de base qui existent pour Drupal. J'ai de bonnes connaissances en html et css, mais très peu en php, je souhaite donc pouvoir me baser sur un thème existant propre pour démarrer mes modifs.

Que me conseillez-vous?
J'ai déjà téléchargé "basic", mais une chose me dérange avec ce thème, il y a un décalage qui se produit parfois lorsqu'on passe d'une page avec barre latérale et une sans...

Quant à Zen, j'ai lu qu'il n'était pas très clean et je souhaite vraiment un thème simple, et zen me paraît trop lourd (bcp de fonctionnalités etc.)

Merci d'avance ;)

Merci de ta réponse,

Probablement oui. En fait, j'ai remarqué le décalage sur ce site également, c'est pas bien grave, mais je souhaite faire un thème vraiment carré ! Lorsqu'on va sur la page d'accueil de ce site, et lorsqu'on clique sur forums par exemple, on voit un décalage qui s'effectue, les blocs qui se repositionnent apparemment. Sur basic on a le même décalage...

Je vais essayer de régler ça en passant par le css donc.

Entre zen et basic, tu me conseillerais lequel ?

Autrement, j'ai une petite question. Je commence à comprendre tout doucement comment fonctionne le template sous Drupal, mais certains points m'échappent encore.

Par exemple, si j'ai bien compris, page.tpl.php gère toutes les pages, et donc, à la fois les pages où on trouve les listes des articles (par exemple, lorsque dans un article on clique sur un terme de taxonomie, on arrive sur une page qui liste tous les articles en rapport avec ce terme), et les pages des articles.
Comment faire dans ce cas si l'on souhaite modifier le template des "pages listes" différemment des "pages articles" ? Je souhaiterais par exemple faire un tableau pour les "pages listes", mais pas pour les articles...

Quelqu'un aurait quelques infos à ce sujet ?

Merci d'avance pour vos réponses ;)

Fait une recherche du coté des 'template suggestions'. Fais bien attention, page.tpl.php est utile pour faire du theming en général, du layout de page, pas du layout de contenu... pour faire des listings d'articles, regarde du côté de views. Enfin, si j'ai bien compris.

Basic, pour un thème sans grande complexité a toujours été bien avec moi. J'aime bien le thème Framework aussi si tu veux du html5.

Ok pour Basic et Framework, je note, merci.

Je vais aussi étudier les 'template suggestions'...

Par contre pour la liste d'articles, je connais views, le problème n'est pas là, c'est qu'il y a apparemment un template par défaut pour les listes d'articles, par exemple celle que l'on voit sur la page d'accueil (qui est la même que celle qui apparait lorsqu'on clique sur un terme de taxonomie)...

C'est cette liste là que j'aimerais modifier, est-ce possible de le faire indépendamment du reste ?

Bonjour

pour ce qui est du décalage avec ou sans barre latérale, pour l’éviter, il faut que la barre latérale soit toujours présente, même si la page tient entièrement à l'écran.

Ça se solutionne en rajoutant:

body {
    overflow-y: scroll;
}

On ne peut pas la modifier, mais on peut la surcharger avec une vue. En installant le module d'ailleurs, tu peux activer une vue qui reprend les paramètres de page d'accueil. Il suffira de définir ta page d'accueil pour qu'elle pointe sur l'url de la vue et plus sur /node. C'est définissable dans Configuration->Site Information

Merci dilune, parfait ;)

Merci aussi mzwyssig, c'est nickel pour les listes.

J'aurais une dernière question, toujours sur l'architecture et le template.

Je souhaite ajouter une région à mon thème, entre le menu principal et les trois colonnes, dans laquelle je placerai le contenu principal. Grâce aux module commentblock, je place les commentaires dans une autre région, à savoir celle du contenu principal.

Pour vous aider à comprendre, j'ai fait un rapide schéma :
http://www.hostingpics.net/viewer.php?id=953867scema.jpg

Je suis donc allé dans la page.tpl.php de basic, et ai ajouté ceci:

     <div id="new_region">
           <?php if ($page['new_region']): ?>
          <div id="new_region">

            <?php if ($page['new_region']): ?>
              <div style="width:100%;"><?php print render($page['new_region']) ?></div>
            <?php endif; ?>
                       
          </div> <!-- /#new_region -->
        <?php endif; ?>
      </div>

(c'est très rapidement fait, juste à titre de test)

entre ces deux balises déjà présentes :

<div id="main" class="clearfix"> 
<div id="content">

ça marche, sauf que j'ai un problème : le menu est passé en dessous de ma région, ça doit être dû au fait que basic utilise une thème renversé pour le référencement, mais comment faire dans ce cas?

Il faudrait aussi que je mette le titre dans cette nouvelle région, mais donc il ne sera plus entre les balises <div id="content"></div>, et ça me paraît pas très clean de procéder comme ça... ou peut-être je me trompe?

Pouvez-vous juste me dire si je procède comme il faut et si le fait de réorganiser quelque peu la page.tpl.php ne va pas me poser problème par la suite?

Merci d'avance pour votre aide ;)

M'a l'air bien de faire comme ça. Il faut juste pas oublier d'ajouter la région dans le basic.info. C'est bizarre que le menu se déplace.. tu es sûr d'avoir mis au bon endroit ton bout de code ? (par rapport au bout de code, fais attention, tu as imbriqué deux fois le même id "new_region" ci-dessus).

Pour déplacer le titre, le plus simple c'est d'utiliser le module "blockify" qui permet de transformer en bloc un peu tous les éléments d'une page d'un site Drupal, dont le titre, les breadcrumbs, etc. Tu pourras ensuite les placer dans n'importe quelle région.

L'autre solution est d'aller chercher le titre dans node.tpl.php et de le placer où tu veux dans ton page.tpl.php. Ca ne pose pas de problèmes.

J'ai ajouté dans basic.info, et pour les id new_region j'ai mis ça pour l'exemple mais n'ai pas mis les mêmes sinon ;)

Pour l'emplacement du bout de code, en fait, je l'ai mis au dessus de l'id "content", je peux pas faire autrement puisque sinon impossible de faire du width 100%, MAIS, j'ai l'impression qu'il doit y avoir un bout de code quelque part qui permette à l'id "content" de passer en dessous du menu, alors que dans le template il y est au dessus...

ça doit être le template inversé qui fait ça non?
du coup faudrait que je trouve comment passer ma nouvelle région en dessous du menu, tout en la laissant au dessus dans page.tpl.php

Autrement merci pour blockify je connaissais pas ! Et merci pour ton aide qui me fait bien progresser dans ma connaissance du template !

Peut-être que le thème est configuré pour cacher le menu, mais que le menu est placé dans un bloc, dans une région, et du coup tu le vois pas dans le template ? Basic fait bien du "contenu d'abord", mais juste au niveau des sidebars avec la région principale...