Je souhaite modifier le parent d'une arborescence de menus lors d'une mise à jour de nœud. J'utilise le module nommé « règles » pour accéder à l'événement de mise à jour et je le code comme suit:Comment changer l'élément de menu parent sans casser les enfants dans Drupal?
if ($node->taxonomy[1] == "1") {
$plid = 440;
} else if ($node->taxonomy[1] == "2") {
$plid = 379;
}
if($plid) {
db_query("UPDATE {menu_links} SET plid='".$plid."', p1='".$plid."' WHERE link_path='"."node/".$node->nid."'");
}
Le problème est que ce noeud $ qui est mise à jour a également quelques éléments du menu enfant sous elle, dans le menu principal et quand je mets à jour le nœud pour changer le parent, ses enfants finissent juste un niveau supérieur et ne sont pas déplacés avec l'élément de menu courant. Existe-t-il un moyen facile de déplacer un arbre de menu entier d'un élément de menu parent à un autre?
Je veux que ce,
- Parent1
-child1
--- sous-child1
--- sous-child2
- parent2
être le suivant:
- Parent1
- parent2
-child1
--- sous-child1
--- sous-enfant2
Pouvez-vous m'aider?
Existe-t-il un moyen drupal de le faire? =)
Je sais que ce code fait beaucoup d'hypothèses, mais je en ai besoin juste pour un cas spécifique
C'est une très mauvaise idée de mettre à jour "manuellement" la table de base de données et beaucoup de choses peuvent (et vont) arriver dans et autour du menu, les routeurs, le cache, les alias et beaucoup plus. Avez-vous/insistez/sur l'exécution de ce code de mise à jour de base de données? – berkes
Non, c'était juste une mauvaise tentative. Je l'ai mis là juste pour clarifier ce que j'essaie vraiment de faire. –