Submitted by stephang on
Bonjour,
J'ai du mal à appréhender les thèmes de Drupal 6.
But: modifier le rendu d'un thème pour un type de contenu
Je dois insérer un site dans mon site Drupal. En clair, garder la partie 'Header' de mon site et offrir la navigation dans la partie 'content'.
J'ai donc créer un type de contenu, sans champ particulier, puis un nœud à partir de ce type de contenu (car je ne suis pas arrivé à associer un template du type: page-monTypedeContenu.tpl.php
Dans la gestion de mes blocs, j'ai pu personnaliser l'affichage en fonction de mon type de contenu.
De là j'ai créer un (une ?) template: node-MonContenu.tpl.php qui ne contient que la déclaration d'iframe. Nickel.
Je voudrai modifier le css du thème (fait par une société tierce) afin de supprimer les images de fond, l'image de l'imprimante etc par exemple, mais uniquement pour ce type de contenu.
Je n'y arrive pas. Une idée svp ?
Le moteur utilisé est phpTemplate.
Par avance merci.
Si ce que tu veux c’est
Permalien Soumis par khtuluu le 14 Décembre, 2012 - 16:02
Si ce que tu veux c'est altérer le css de la partie que tu affiches dans l'iframe ce n'est simplement pas possible.
Bonjour, Non, ce que je veux
Permalien Soumis par stephang le 14 Décembre, 2012 - 16:20
Bonjour,
Non, ce que je veux c'est uniquement modifier le css du template: node-MonContenu.tpl.php
qui dans ce cas contient une iframe, mais c'est accessoire.
Le node-MonContenu.tpl.php contient:
<iframe
name="iframe"
...
</iframe>
Et je ne pense pas qu'y rajouter une ligne telle que:
link type="text/css" ... avant, serve à quelque chose car la balise est déjà traitée.
Est ce que rajouter une déclaration dans le css du thème: MonContenu.body {...}
serai correctement interprété par Drupal?
Merci d'avoir pris le temps de me répondre.
le thème que tu utilises pour
Permalien Soumis par khtuluu le 14 Décembre, 2012 - 16:28
le thème que tu utilises pour ton site inclut très certainement plusieurs fichier CSS dans ta page,
mais si tu veux travailler sur un fichier a toi dans ce cas tu as juste à le créer dans
/sites/all/themes/[tonTheme]/css/, il sera automatiquement inclut dans toutes les pages de ton site.
J’ai entre autre essayé cela
Permalien Soumis par stephang le 17 Décembre, 2012 - 12:01
J'ai entre autre essayé cela sans succès,
function phptemplate_preprocess_node(&$vars) {
if ($vars['type'] == 'cahier_cfp') {
$css = path_to_theme() . '/css/styles_cahiers.css';
drupal_add_css($css, 'theme', 'all', 1);
} else {
$css = path_to_theme() . '/css/styles.css';
drupal_add_css($css, 'theme', 'all', 1);
}
// Rebuild Drupal's css array:
$css = drupal_add_css();
// Apply that array to the $styles string to be printed in the section of page.tpl.php
$vars['styles'] = drupal_get_css($css);
}
Si le styles_cahiers.css est bien chargé quand j'arrive sur un node de type cahier_cfp, il ne recharge pas la feuille standard pour les autres.
Dans votre body, vous avez
Permalien Soumis par hles le 14 Décembre, 2012 - 16:21
Dans votre body, vous avez certainement des class du style "page-node-28" ou "node-type-article". A partir de la, vous pouvez surcharger les styles CSS que vous voulez.
Je n’ai pas dans mon de
Permalien Soumis par stephang le 14 Décembre, 2012 - 17:05
Je n'ai pas dans mon de balise propre à mon node.
Par ailleurs, j'ai effectivement un style.css propre à mon thème. Mais je ne sais pas comment personnaliser la définition de body pour un type de contenu précis, sans affecter tout le site.
Merci encore d'avoir pris le temps de me répondre.
ps:
A quoi correspond dans ce forum le lien "Accepter la réponse" ?
Dans ce cas tu peux charger
Permalien Soumis par khtuluu le 14 Décembre, 2012 - 17:55
Dans ce cas tu peux charger un fichier css uniquement pour ce type de contenu :
// vars contient toutes les infos du noeud courant dont son type
function [nomTheme]_preprocess_node(&$vars)
if ($vars['type'] == '[tonTypeDeContenu]'){
drupal_add_css(drupal_get_path('theme', '[nomTheme]') . '/css/[fichierCss].css');
}
}
je n'ai pas testé mais ça doit etre assez juste. Bien sûr n'oublie pas d'ajouter le fichier css au bon emplacement ;)
edit : Il faut supprimer tes cache quand tu ajoutes un preprocess sinon tu ne verra rien
Bonjour, hélas, ça ne marche
Permalien Soumis par stephang le 17 Décembre, 2012 - 10:36
Bonjour, hélas, ça ne marche pas.
je comprend bien le concept.
J'essaye d'autre syntaxe...
To be continued.. :)