Modifier $content

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 suis en train de modifier l'apparence de mon site Drupal. J'ai presque tout fait, il me manque juste une info. J'aimerai suprimer dans le contenu ce qui se rajoute automatiquement au-dessu et au-dessous du texte:

Par exemple: Accueil >> créer un contenu >> book page

.....

Page suivante >>

Par rapport à mes recherches je me suis appercue que le texte du contenu et les rajouts de Drupal était dans la variable $content de la page node.tpl.

Ma question, sur quelle page puis-je modifier ma variable pour supprimer les rajouts de Drupal?

Idem pour les langues, j'ai rajouter un block pour passer de la page anglais-français, vis-vers-ca, mais j'aimerai que le drapeau du pays ne s'affiche pas et ne pas mettre de titre "languages". Le block s'affiche grâce à la variable $sidebar_right de la page "page.tpl", comment puis-je modifier ?

J'espère avoir été assez claire.

Merci d'avance pour vos réponses,

Claudia

Je ne suis pas sûr d'avoir bien compris.

Si tu parles du fil d'ariane, pour le supprimer, il faut supprimer la ligne suivante dans page.tpl.php :

          <?php if ($breadcrumb): print $breadcrumb; endif; ?>

Ensuite, le lien Page suivante doit sûrement être dans les liens associés au node. Pour le supprimer, élimine le code qui ressemble à ça dans node.tpl.php:

  <?php if ($links): ?>
    <div class="links">
      <?php print $links; ?>
    </div>
  <?php endif; ?>

Pour le bloc avec les drapeaux, je suppose qu'il vient d'un module d'internationalisation. Il faudrait savoir quel module exactement, puis regarder la fonction qui génère le bloc, afin de la surcharger dans le thème (via un fichier template.php)...

De façon générale, tu te poses des questions qui sont à gérer au niveau du thème. Regarde les ressources en anglais à ce sujet : http://drupal.org/node/509.

Hello,

Les modifs que tu veux faire ne sont pas hyper simples à mettre en oeuvre, donc ne te décourage pas face au charabia qui arrive.

D'une façon générale, quand on veut redéfinir ou supprimer les variables qui sont passées à un template (par exemple, $content, $breadcrumb...), il faut créer une fonction spéciale appelée _phptemplate_variables() dans le fichier template.php du thème utilisé (si ce fichier n'existe pas, il suffit de le créer, c'est un fichier php standard).

Ca serait trop long d'entrer dans le détail, je te renvoie à la doc de drupal.org : [lien pas trouvé car drupal.org est down]

Pour $content, c'est un peu différent, car tu veux contrôler les éléments AVANT qu'ils soient concaténés dans $content (or, _phptemplate_variables() intervient APRES la concaténation).

Il te faut donc créer un module (appelons-le toto.module) qui contiendra une fonction toto_form_alter() avec un code qui ressemle à ça :

<?php
function toto_form_alter($node, $op) {
  if (
$op == 'view') {
   
$node->content = array(...);  // faire ici les modifs
 
}
}
?>

Ici, tu peux ajouter ou enlever des éléments à $node->content (qui deviendra ensuite $content) AVANT qu'il ne soit passé au template. Fais bien attention, $node->content est un tableau PHP (array) et non une chaîne de caractères.

Voilà, j'espère que ça te met dans la bonne direction.