Kaynağa Gözat

mustikas11: menüüstruktuuri + blokkide seadistamine (D7 sarnaselt)

- create_menus.php: loob D7 menüülingid menu_link_content-ina
  (main 8, menu-liikmed 9, menu-projektid 4, menu-raamatupidamine 9)
- setup_blocks.php: paigutab menüüblokid sidebar regioni + request_path
  nähtavus (liikmed/projektid/kanded), keelab top/footer HTML blokid
  (oodavad teema ülekandmist)
ardo 1 gün önce
ebeveyn
işleme
163512d814

+ 83 - 0
third/drupal/mustikas11/create_menus.php

@@ -0,0 +1,83 @@
+<?php
+// Loob D7-st tulnud menüüstruktuuri D11-sse (menu_link_content entiteedid).
+// Path mapping: D7 path -> internal:/<path>. node/add/emal-liige -> emal_liige.
+use Drupal\menu_link_content\Entity\MenuLinkContent;
+
+// menu_name => [ [title, uri, weight], ... ]
+$menus = [
+  'main' => [
+    [' Avaleht', 'internal:/', -50],
+    ['Liikmed', 'internal:/liikmed', -49],
+    ['Projektid', 'internal:/projektid', -48],
+    ['Kanded', 'internal:/node/13151', -47],
+    ['Contact', 'internal:/contact', -46],
+    ['Dokumendid', 'internal:/docs', -28],
+    ['Author', 'internal:/node/4', 2],
+    ['Suspendisse', 'internal:/node/3', 4],
+  ],
+  'menu-liikmed' => [
+    ['Liikmete nimekiri (A-Z)', 'internal:/liikmed', -50],
+    ['Liikmete nimekiri', 'internal:/liikmed/nimekiri', -49],
+    ['Sünnipäevad', 'internal:/liikmed/synnipaevad', -48],
+    ['Sünnipäevad nimekiri', 'internal:/synnipaevad', -47],
+    ['Liikmemaksude saldod', 'internal:/kanded/liikmemaksud/saldod', -46],
+    ['Liikmemaksude kanded', 'internal:/kanded/liikmemaksud', -45],
+    ['CSV eksport (liikmed)', 'internal:/liikmed/eksport', -44],
+    ['Lisa uus liige', 'internal:/node/add/emal_liige', -43],
+    ['Impordi liikmed', 'internal:/import/emal_liikmete_import', -42],
+  ],
+  'menu-projektid' => [
+    ['Projektide nimekiri', 'internal:/projektid', -50],
+    ['Projektide saldod', 'internal:/kanded/projektid/saldod', -49],
+    ['Projektide kanded', 'internal:/kanded/projektid', -48],
+    ['Lisa uus projekt', 'internal:/node/add/projekt', -47],
+  ],
+  'menu-raamatupidamine' => [
+    ['Liikmemaksude saldod', 'internal:/kanded/liikmemaksud/saldod', -50],
+    ['Liikmemaksude kanded', 'internal:/kanded/liikmemaksud', -49],
+    ['Projektide saldod', 'internal:/kanded/projektid/saldod', -48],
+    ['Projektide kanded', 'internal:/kanded/projektid', -47],
+    ['Tegevuskulude kanded', 'internal:/kanded/tegevuskulud', -46],
+    ['Kõik kanded', 'internal:/kanded/koik-kanded', -45],
+    ['Kõik kanded', 'internal:/kanded/koik', -45],
+    ['Impordi panga väljavõte', 'internal:/import/panga_valjavotte_import', -44],
+    ['Impordi liikmemaksud', 'internal:/import/liikmemaksude_import', -43],
+    ['Lisa uus kanne', 'internal:/node/add/kanne', -42],
+  ],
+];
+
+$created = 0;
+$skipped = 0;
+
+foreach ($menus as $menu_name => $links) {
+  foreach ($links as $link) {
+    [$title, $uri, $weight] = $link;
+
+    // Kontrolli, kas samasugune link juba eksisteerib.
+    $existing = \Drupal::entityTypeManager()
+      ->getStorage('menu_link_content')
+      ->loadByProperties([
+        'menu_name' => $menu_name,
+        'title' => $title,
+      ]);
+
+    if (!empty($existing)) {
+      echo "skip (olemas): $menu_name / $title\n";
+      $skipped++;
+      continue;
+    }
+
+    $ml = MenuLinkContent::create([
+      'title' => $title,
+      'menu_name' => $menu_name,
+      'link' => ['uri' => $uri],
+      'weight' => $weight,
+      'expanded' => FALSE,
+    ]);
+    $ml->save();
+    echo "loodud: $menu_name / $title -> $uri (w=$weight)\n";
+    $created++;
+  }
+}
+
+echo "\nkokku: loodud=$created, vahelejäetud=$skipped\n";

+ 61 - 0
third/drupal/mustikas11/setup_blocks.php

@@ -0,0 +1,61 @@
+<?php
+// Paigutab menüüblokid D7 sarnaselt olivero regionidesse.
+// D7 metro: sidebar_first = user_login(-20), menu-liikmed(-19), menu-projektid(-18),
+//   menu-haldus(-17), menu-raamatupidamine(-16), navigation(-15)
+// D11 olivero: sidebar region.
+
+use Drupal\block\Entity\Block;
+
+$sidebar = [
+  ['metro_user_login', 'Sidebar: Login', -20, []],
+  ['metro_menu_menu_liikmed', 'Liikmed', -19, ['/liikmed', '/liikmed/', '/liikmed/*']],
+  ['metro_menu_menu_projektid', 'Projektid', -18, ['/projektid', '/projektid/', '/projektid/*']],
+  ['metro_menu_menu_haldus', 'Haldus', -17, []],
+  ['metro_menu_menu_raamatupidamine', 'Kanded', -16, ['/kanded', '/kanded/', '/kanded/*']],
+];
+
+foreach ($sidebar as $item) {
+  [$id, $label, $weight, $pages] = $item;
+  $block = Block::load($id);
+  if (!$block) {
+    echo "skip (puudub): $id\n";
+    continue;
+  }
+  $block->setRegion('sidebar');
+  $block->setWeight($weight);
+  $settings = $block->get('settings');
+  $settings['label'] = $label;
+  $settings['label_display'] = '0';
+  $block->set('settings', $settings);
+
+  if (!empty($pages)) {
+    $block->setVisibilityConfig('request_path', [
+      'id' => 'request_path',
+      'negate' => FALSE,
+      'pages' => implode("\n", $pages),
+    ]);
+  } else {
+    // Eemalda olemasolev request_path visibility.
+    $visibility = $block->get('visibility');
+    unset($visibility['request_path']);
+    $block->set('visibility', $visibility);
+  }
+
+  $block->save();
+  echo "paigutatud: $id -> sidebar (w=$weight, label=$label)\n";
+}
+
+// Peida üleliigsed metro_block_* (top/footer HTML blokid) — need tulevad
+// teema töö käigus õigetesse regionidesse.
+$hide = ['metro_block_1', 'metro_block_2', 'metro_block_3', 'metro_block_4',
+  'metro_block_5', 'metro_block_6', 'metro_block_7'];
+foreach ($hide as $id) {
+  $block = Block::load($id);
+  if ($block) {
+    $block->disable();
+    $block->save();
+    echo "keelatud: $id (top/footer HTML blokk, ootab teemat)\n";
+  }
+}
+
+echo "done\n";