web-dev-qa-db-fra.com

Afficher l'arborescence de la navigation complète

Ma question concerne comment montrer l'arborescence de navigation complète dans un bloc (Drupal 8)

Grâce à @oknate nous pouvons avoir un bloc de navigation de livres avec le livre de niveau supérieur montrant , mais j'ai besoin de tout l'arbre. (Pensez Table des matières)

Tous les exemples de follage supposent que vous êtes la page principale d'un livre de 3 niveaux de niveau.

Aussi, j'ai un module de travail à https://github.com/petergus/alt-book-nav.git

Affichage du livre (niveau supérieur) du bloc de navigation du livre est effectué en remplaçant les éléments suivants dans Livre/Src/Plugin/Block/Booknavigationblock.php (avec un module personnalisé bien sûr)

 // Only show the block if the user has view access for the top-level node.
  if ($nid) {
    $tree = $this->bookManager->bookTreeAllData($node->book['bid'], $node->book);
    // There should only be one element at the top level.
    $data = array_shift($tree);
    $below = $this->bookManager->bookTreeOutput($data['below']);
    if (!empty($below)) {
      return $below;
    }
  }

avec

     if ($nid) {
        $tree = $this->bookManager->bookTreeAllData($node->book['bid'], $node->book);
        return $this->bookManager->bookTreeOutput($tree);
      }

Cela ne montre que le niveau de niveau supérieur et de l'enfant, je souhaite pouvoir visualiser l'arbre complet de n'importe quelle page.

Je suis complètement nouveau avec drupal 8 et pas très pratique avec PHP Donc tout ce que je pouvais découvrir était que

     $tree = $this->bookManager->bookTreeAllData($node->book['bid'], $node->book);
     kint($tree);

ne renvoie que le nom du livre et le premier niveau et

     $tree = $this->bookManager->bookTreeAllData($node->book['bid']);
     kint($tree);

(sans le $node->book) renvoie les niveaux de multiples, c'est-à-dire des tableaux multiples "ci-dessous".

enter image description here

Je ne sais pas comment aller plus loin en tirant cette information dans le bloc, est-ce que quelqu'un?

Comme mentionné ci-dessus, j'ai le module que @oknate a suggéré à https://github.com/petergus/alt-book-nav.git

Appréciant grandement toute aide et en espérant que ces questions sert la communauté.

2
petergus

Il fait que j'ai déjà posté la réponse dans la question, mais cela l'a manqué pendant les tests!

Supprimer , $node->book De $tree = $this->bookManager->bookTreeAllData($node->book['bid'], $node->book); imprimait l'intégralité de l'arbre expansé.

Si quelqu'un a le temps de ajoutez une option de formulaire d'utilisateur au module Cela pourrait éventuellement bénéficier de nombreuses et obtenir sur le répétition DRUPAL.ORG.

1
petergus