Modifier du contenu pour chaque page dans les regions header et footer

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 à tous,

Je suis nouveau sur Drupal, et je cherche à répondre à un besoin précis sur un site que je suis en train de développer.

Je souhaiterais pouvoir permettre au rédacteur de modifier un texte se situant par exemple dans la région header et cela pour chaque page qu'il créera.

Je suis parti sur l'idée de créer un nouveau type de contenu et de rajouter un champ CCK, qu'ensuite je transforme en bloc avec View ce qui me permet de placer ensuite le contenu dans la région header du template.

J'aimerais savoir avant tout si il n'y a pas un solution plus simple, j'ai remarqué que ma solution générait 4 tags html supplémentaires autour de mon champ, je trouve que ça alourdi mon html, mais bon, si y'a pas d'autre moyen.

Merci à tous bonne journée.

PS : j'ai testé un module qui converti un CCK en bloc, mais le souci c'est que quand je ne suis plus dans une page je ne peux pas mettre de contenu par défaut, view peut le faire.

Forum : 
Version de Drupal : 

L'alternative, que j'ai utilisée sur un site, est d'utiliser une fonction de preprocess pour initialiser une variable que tu affiches ensuite dans la région de ton choix.

Sinon, sans produire de code, tes solutions me semblent assez élégantes.

Merci de ta réponse Numerizen.

Je suis rassuré de ne pas être allé dans le mur, lors de mon premier site sous Drupal, pourrais je te demander un peu plus d'informations sur ce que tu appelles une fonction de preprocess.

Cela fonctionne-t-il avec les champs cck ? Si tu avais un exemple de code ça serait sympa.

Ces fonctions permettent de préparer des variables pour les différents fichiers de template : node.tpl.php, page.tpl.php, etc.

Pour une bonne documentation accessible sur le sujet, tu peux aller regarder dans le thème zen, où tu trouveras des tas d'exemples très bien documentés, avec la structure de fichiers qui rend tout ça utilisable sans avoir à comprendre tout le bazar d'un coup.

Si tu veux te lancer de manière un peu plus sérieuse, le livre "Pro Drupal Development" est un must.

Bonjour
Ta méthode me semble astucieuse . Sinon pour résoudre ce probleme je pense que je procéderai comme suit:

EDIT : j'ai trouvé ce module qui semble faire justement ce que je dis, le code php en mois, à tester ;-)

http://drupal.org/project/cck_blocks

fin de l'edit.

  • créer les champs CCK supplémentaires dont tu as besoin
  • les masquer dans l'administration afin qu'il soit invisible pour l'utilisateur
  • créer un bloc php pour essayer de ne pas passer par les vues que je trouve un peu lourdes pour un cas de ce genre

Je créerais un bloc php du genre :

<?php
if(arg(0)=='node' && is_numeric(arg(1))){
$sql="SELECT mon_champ_cck FROM {la_table_CCK} WHERE nid=%d
$header=db_result(db_query($sql, arg(1)));
}
?>

En fait nyl auster le module dont tu parles est celui que j'ai mis dans mon Post scriptum, le souci c'est que lorsque je ne suis pas sur un noeud qui comporte les champs cck que j'ai créé, il ne m'affiche rien, alors que mon besoin c'est aussi d'avoir un contenu par défaut, ce que permet view.

Pour ce qui est du code Php, pour l'instant j'essaie de me contenter des modules meme si connaissant aussi php, je sais que tot ou tard je coderais dans drupal, mais j'ai du lire quelque part, que bien des fois on code trop vite alors qu'un module fait déja ce que l'on veut.

ok dans ce cas ta solution me parait la plus maligne. Pour le php tu as raison (j'ai écrit un petit truc là dessus dans la documentation); d'autant qu'il faut passer par le framework à 100% si possible et ça demande un temps d'apprentissage.