Ver código fonte

mustikas11: piira anonüümse avalehe juhendteksti blokk ainult avalehele

ardo 1 dia atrás
pai
commit
70e2cb7684

+ 6 - 2
third/drupal/mustikas11/LOEMIND.md

@@ -101,8 +101,11 @@ Juurdekontroll on viidud D7-ga vastavusse:
   - Peamenüüs anonüümsele ainult "Avaleht" ja "Kontakt"
 - Eemaldatud standard profiili "Home" menüülink (`standard.front_page`) peamenüüst
   (hook_menu_links_discovered_alter mustikas_export moodulis).
-- Lisa juhendteksti blokk (`anonymous_front_instruction`), nähtav ainult anonüümsele,
-  content regionis (D7 node/3 "Anonüümse kasutaja avalehe info" analogg).
+- Lisa juhendteksti blokk (`anonymous_front_instruction`), nähtav ainult anonüümsele
+  JA ainult avalehel (request_path <front>/node/5), content regionis
+  (D7 node/3 PHP `drupal_is_front_page() && !$user->uid` analogg).
+  NB! request_path peab sisaldama nii `<front>` kui `/node/5` ja `/`, sest
+  avalehele anonüümse juurdepääsu (403) korral on current path kas `/` või `/node/5`.
 - `metro_user_login` blokk piiratud ainult anonüümsele.
 - `tools_sidebar` menüü peidetud anonüümsele.
 - D7 footer taastatud: `metro_block_4-7` (telefon, e-mail, lahtiolekuajad,
@@ -114,6 +117,7 @@ Juurdekontroll on viidud D7-ga vastavusse:
 Skriptid (kordustäitmiseks):
 - `revoke_anon_access.php` – eemaldab anonüümselt access content
 - `add_instruction_block.php` – loob juhendteksti bloki
+- `restrict_instruction_front.php` – piirab juhendteksti bloki ainult avalehele
 - `restrict_login_block.php` – metro_user_login anonüümsele
 - `restore_footer.php` – footer blokid footer_top
 - `restrict_tools_sidebar.php` – tools_sidebar peidetud anonüümsele

+ 23 - 0
third/drupal/mustikas11/restrict_instruction_front.php

@@ -0,0 +1,23 @@
+<?php
+use Drupal\block\Entity\Block;
+
+// Piira anonüümse avalehe juhendteksti blokk ainult avalehele.
+// D7 analogg: node/3 body PHP `if (drupal_is_front_page() && !$user->uid)`.
+// NB! kasutame nii <front> kui ka /node/5 ja / — sest avalehele anonüümse
+// juurdepääsu korral (403) on current path kas / või /node/5.
+$block = Block::load('anonymous_front_instruction');
+if (!$block) {
+  echo "BLOCK anonymous_front_instruction NOT FOUND\n";
+  exit;
+}
+
+$visibility = $block->get('visibility');
+$visibility['request_path'] = [
+  'id' => 'request_path',
+  'negate' => FALSE,
+  'pages' => "<front>\n/node/5\n/",
+];
+$block->set('visibility', $visibility);
+$block->save();
+
+echo "request_path visibility added (pages=<front>+/node/5+/)\n";