Könyv azonos mélységű lapjainak beazonosítása.

HF leon képe

A könyv lapjainak mélysége alapján lehet szelektálni a lapok között?

Amikor egy könyv egyik lapján vagyok azt könnyedén le lehet kérni, hogy melyik a lap előtt és után álló lap.

Van arra lehetőség, hogy ezt a könyv lapok mélysége alapján le lehessen kérni?

Vagyis ha egy lapon vagyok és a következő lap az aktuális gyermeke, akkor az egy mélyebben lévő lap. Van arra lehetőség, hogy megállapítsam, hogy melyik lap az aktuális lappal azonos mélységben lévő következő lap?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
HF leon képe

Ahogy látom a BookManager.php-t kell kiegészítenem. Mivel ez a core része nem lenne szerencsés átírni, de ahogy eddig látom nem igazán van olyan funkció benne, amivel a feladat megoldható. Így ki kell egészítenem a BookManager.php és a BookManagerInterface.php fájlokat.

  1. public function bookTreeGetFlat(array $book_link) {
  2. if (!isset($this->bookTreeFlattened[$book_link['nid']])) {
  3. // Call $this->bookTreeAllData() to take advantage of caching.
  4. $tree = $this->bookTreeAllData($book_link['bid'], $book_link, $book_link['depth'] + 1);
  5. $this->bookTreeFlattened[$book_link['nid']] = [];
  6. $this->flatBookTree($tree, $this->bookTreeFlattened[$book_link['nid']]);
  7. }
  8.  
  9. return $this->bookTreeFlattened[$book_link['nid']];
  10. }
  11.  
  12. protected function flatBookTree(array $tree, array &$flat) {
  13. foreach ($tree as $data) {
  14. $flat[$data['link']['nid']] = $data['link'];
  15. if ($data['below']) {
  16. $this->flatBookTree($data['below'], $flat);
  17. }
  18. }
  19. }

A fenti kódrészlet segítségével hívható le a következő és előző lap a BookManager.php-ben. Én viszont olyan megoldást szeretnék, amely az azonos szinten lévő előző és következő lapot adja meg.

0
0