Personnaliser le fil d'Aiane avec du PHP ... quelle syntaxe ?

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,

J'utilise Custom Breadcrumbs pour mes fils d'ariane et je souhaiterais personnaliser ceux-ci en fonction des term de taxonomy attribués aux articles.

Dans le champ "Breadcrumb visibility" on peut préciser une requête PHP qui va conditionner l'affichage ou non du fil d'Ariane.

Mon problème c'est que je suis novice en PHP et la syntaxe me pose problème...

Après quelques recherches, j'ai fait un test concluant avec ce code :
return ($node->nid == 2);

Le résultat : le fil d'Ariane ne s'affiche que sur le node dont l'ID = 2.

Dans la même logique je voudrais que la requête cherche plutôt si le term de taxonomy dont l'id = 9 est associé au node ou pas. Quelle est la requête PHP à utiliser pour ça ?

Si vous pouviez me donner un coup de main ou une référence compréhensible sur la manière de rédiger des requêtes simples de PHP avec le bon vocabulaire Drupal ... ça serait cool !

Merci

Jean-Guy

Forum : 
Version de Drupal : 

Je ne connais pas le module Custom Breadcrumbs ni ta configuration, mais tu peux essayer quelque chose comme

<?php
 
if(arg(0) == 'node') {
 
$tid = '9' ;// identifiant du terme recherché
 
$result = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d AND nid = %d", $tid, arg(1)));
  if(
$result == '1') {   
    return
TRUE;
  } else {
    return
FALSE;
  }
}
?>

en continuant mes recherches j'ai finalement trouvé la requête :

return (isset($node->taxonomy[65]));

où 65 est l'id du term que l'on souhaite utiliser. Ca marche !

cela dit j'ai maintenant le même problème pour les node privés. j'utilise le module "private" et je souhaite afficher un fil d'ariane spécifique sur les nodes privés.
Il faut donc que je modifie cette satanée requête PHP.

J'ai essayé : return (isset($node->private));
mais c'est un échec, c'est sûrement trop simple ... une piste peut-être ?

ça fonctionne très bien avec :
return($node->private);

merci pour le coup de main, pas facile de comprendre la syntaxe PHP en tant que débutant et de "deviner" les termes qu'utilise Drupal ... mais ça va venir !

en tous cas j'ai de beaux fils d'Ariane, merci :)