Blokk megjelenésének beállítása

kisspepe képe

Sziasztok!

Egy blokknak szeretném megadni, hogy csak bizonyos oldalakon jelenjen meg. Pontossan amit szeretnék:

Van egy főmenüm, Tutorialok. Ha erre ráklikkelek akkor megjelenik a hozzá tartozó oldal, és az oldalsávban meg kellene jeleníteni a Tutorialok blokkot, mely az almenüket tartalmazza.

Ez mind meg is van. A kérdésem, hogy a Tutorialok blokknak hogy adjam meg azt, hogy jelenjen meg minden oldalon ami a Tutorialok főmenüből származik.

A beállításoknál látom, hogy háromféleképpen lehet megadni a megjelenítést: melyik oldalakon jelenjen meg, melyik oldalakon ne jelenjen meg, vagy ha a PHP kód true értéket ad. Gondolom itt a PHP kód az egyetlen lehetőségem, ha nem akarom felsorolni a Tutorialok főmenün keresztül elérhető összes oldalt. Viszont azt nem tudom, hogy mi alapján írjam meg a PHP kódot. Vagy egyszerűbb megoldás is létezik?

Drupal verzió: 
Nagy Gusztáv képe

  1. A Book modulra is felfűzve a tartalmakat, bekapcsolhatod a Könyv navigáció blokkot.
  2. Az útvonal álneveket (pl. a Pathauto modullal) úgy állítod be, hogy tutorialok/valami legyen. A blokk láthatóságánál meg a tutorialok/* legyen a láthatóság.
0
0

Nagy Gusztáv

kisspepe képe

Köszönöm a segítséget, ezt meg fogom nézni.

Off: Láttam megjelent a könyved nyomtatásban, rendeltem is belőle egyet. Igaz már megvan kinyomtatva, ha ugyan az, de azért így mégis szebb. Még nem jött meg, de gondolom a héten meg fog jönni.

0
0
aboros képe

az, hogy

minden oldalon ami a Tutorialok főmenüből származik.

nem sokat mond nekem. mi a közös ezekben a tartalmakban? mindegyik hordozza a "Tutoralok" taxonomy termet? vagy mind 'tutorial' tartalom típusú node?
ezt pontosítsd ha nem találom el véletlenül. (mind_reader modulom még nagyon dev;)

tegyük fel, hogy a Tutorialok menu a node/42 és minden amit onnan el lehet érni, az vagy 'tutorial' típusú node vagy hordozza a 69 -es term idt.

a blokk láthatósági szabály:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  if (arg(1) == 42) {
    return TRUE;
  } else {
    $node = node_load(arg(1));
    if ($node->type == 'tutorial' || isset($node->taxonomy[69])) {
      return TRUE;
  }
} else {
  return FALSE;
}

ilyesmi bonyolultabb feltételrendszerek szerinti blokk megjelenítést (és még sok mást is persze) tudsz klikk-klikk módszerrel is legózni a context modullal.

0
0

-
clear: both;

Den képe

Context modul pont ezt tudja: átveszi a blokkok (még jobb, a box modul által biztosított boxok) kezelését.

Ügyesen megadva a kontextusokat (környezet) tudod szabályozni a blokkok megjelenését.

Tehát, a feltétel szabály a menu aktivitás, és a reakció a megfelelő régióba elhelyezett blokk.

0
0
aboros képe

ha egy másik nodeot nézek, ami nincs konkrétan belefűzve abba a menübe, akkor nem lesz aktív az a menü. akkor kézzel be kell fűzögetni vagy mondjuk valamilyen automatizált menüfelfűzés kell.. :) taxonomy_menu mondjuk..

jól látszik a drupal szépsége ebben a szálban. :)

0
0

-
clear: both;

Den képe

Van egy főmenüm, Tutorialok. Ha erre ráklikkelek akkor megjelenik a hozzá tartozó oldal, és az oldalsávban meg kellene jeleníteni a Tutorialok blokkot, mely az almenüket tartalmazza.

Ez mind meg is van. A kérdésem, hogy a Tutorialok blokknak hogy adjam meg azt, hogy jelenjen meg minden oldalon ami a Tutorialok főmenüből származik.

Bátorkodtam ezért ajánlani, mert ezek alapján, szerintem, menni fog. Ha nem, akkor a context-nek a szabály a tutorialok/* és így is megoldva

0
0
aboros képe

de ha mar a szabaly tutorialok/* akkor meg minek a context? :)
gyanitom amugy az nem egy menu, hanem egy views blokk ami node title -ket listaz. de ki tudja. :)

minden esetre szepen korbevalaszoltuk, igy kene mindig.

0
0

-
clear: both;

kisspepe képe

Mindenkinek köszönöm a segítséget. Elnézést hogy sokára válaszoltam, de napokban eléggé összejöttek a dolgok. Amint lesz egy kis időm ez alapján szerintem menni fog.

0
0