create_menus.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. // Loob D7-st tulnud menüüstruktuuri D11-sse (menu_link_content entiteedid).
  3. // Path mapping: D7 path -> internal:/<path>. node/add/emal-liige -> emal_liige.
  4. use Drupal\menu_link_content\Entity\MenuLinkContent;
  5. // menu_name => [ [title, uri, weight], ... ]
  6. $menus = [
  7. 'main' => [
  8. [' Avaleht', 'internal:/', -50],
  9. ['Liikmed', 'internal:/liikmed', -49],
  10. ['Projektid', 'internal:/projektid', -48],
  11. ['Kanded', 'internal:/node/13151', -47],
  12. ['Contact', 'internal:/contact', -46],
  13. ['Dokumendid', 'internal:/docs', -28],
  14. ['Author', 'internal:/node/4', 2],
  15. ['Suspendisse', 'internal:/node/3', 4],
  16. ],
  17. 'menu-liikmed' => [
  18. ['Liikmete nimekiri (A-Z)', 'internal:/liikmed', -50],
  19. ['Liikmete nimekiri', 'internal:/liikmed/nimekiri', -49],
  20. ['Sünnipäevad', 'internal:/liikmed/synnipaevad', -48],
  21. ['Sünnipäevad nimekiri', 'internal:/synnipaevad', -47],
  22. ['Liikmemaksude saldod', 'internal:/kanded/liikmemaksud/saldod', -46],
  23. ['Liikmemaksude kanded', 'internal:/kanded/liikmemaksud', -45],
  24. ['CSV eksport (liikmed)', 'internal:/liikmed/eksport', -44],
  25. ['Lisa uus liige', 'internal:/node/add/emal_liige', -43],
  26. ['Impordi liikmed', 'internal:/import/emal_liikmete_import', -42],
  27. ],
  28. 'menu-projektid' => [
  29. ['Projektide nimekiri', 'internal:/projektid', -50],
  30. ['Projektide saldod', 'internal:/kanded/projektid/saldod', -49],
  31. ['Projektide kanded', 'internal:/kanded/projektid', -48],
  32. ['Lisa uus projekt', 'internal:/node/add/projekt', -47],
  33. ],
  34. 'menu-raamatupidamine' => [
  35. ['Liikmemaksude saldod', 'internal:/kanded/liikmemaksud/saldod', -50],
  36. ['Liikmemaksude kanded', 'internal:/kanded/liikmemaksud', -49],
  37. ['Projektide saldod', 'internal:/kanded/projektid/saldod', -48],
  38. ['Projektide kanded', 'internal:/kanded/projektid', -47],
  39. ['Tegevuskulude kanded', 'internal:/kanded/tegevuskulud', -46],
  40. ['Kõik kanded', 'internal:/kanded/koik-kanded', -45],
  41. ['Kõik kanded', 'internal:/kanded/koik', -45],
  42. ['Impordi panga väljavõte', 'internal:/import/panga_valjavotte_import', -44],
  43. ['Impordi liikmemaksud', 'internal:/import/liikmemaksude_import', -43],
  44. ['Lisa uus kanne', 'internal:/node/add/kanne', -42],
  45. ],
  46. ];
  47. $created = 0;
  48. $skipped = 0;
  49. foreach ($menus as $menu_name => $links) {
  50. foreach ($links as $link) {
  51. [$title, $uri, $weight] = $link;
  52. // Kontrolli, kas samasugune link juba eksisteerib.
  53. $existing = \Drupal::entityTypeManager()
  54. ->getStorage('menu_link_content')
  55. ->loadByProperties([
  56. 'menu_name' => $menu_name,
  57. 'title' => $title,
  58. ]);
  59. if (!empty($existing)) {
  60. echo "skip (olemas): $menu_name / $title\n";
  61. $skipped++;
  62. continue;
  63. }
  64. $ml = MenuLinkContent::create([
  65. 'title' => $title,
  66. 'menu_name' => $menu_name,
  67. 'link' => ['uri' => $uri],
  68. 'weight' => $weight,
  69. 'expanded' => FALSE,
  70. ]);
  71. $ml->save();
  72. echo "loodud: $menu_name / $title -> $uri (w=$weight)\n";
  73. $created++;
  74. }
  75. }
  76. echo "\nkokku: loodud=$created, vahelejäetud=$skipped\n";