Visa block under menypost?

Events happening in the community are now at Drupal community events on www.drupal.org.
spline's picture

Hej,
jag undrar om någon vet hur man kan få ett block synligt endast för sidor som ligger i menyträdet under en viss menypost.

Ex.vis

  • Hjälp (block 1)
    • Forumhjälp (block 1)
    • Chatthjälp (block 1)
  • Länkar (block 2)
  • ...

Om någon lägger upp en ny sida under "Hjälp", skulle jag vilja att "block 1" visas automatiskt för denna sida.

Som det är nu har jag för varje block angivit alla sidor det ska visas på, men detta blir lite omständligt och onödigt jobbigt för dem som ska lägga till nytt innehåll.

/Mvh

Comments

Jag vet inte om jag har

TBarregren's picture

Jag vet inte om jag har förstått din fråga rätt -- du vill att ett block skall synas bara om användaren har klickat på en meny-post som ligger i ett delträd av meny-trädet. I så fall kan du ju använda wildcards vid konfigurationen av block, t.ex. blog/thomas/*. Detta är förutsatt att att sökvägarna avspeglar menuträdet.


Thomas BarregrenNodeOne

Ja det är den matchningen

spline's picture

Ja det är den matchningen jag vill åstadkomma där ett block visas under menyalternativet samt alla underliggande menysidor, men nu är det väl inte så att sökvägen avspeglar egenhändigt skapade menyer (tex. Primary links)? Istället visas node/(id) eller en sökväg man anger manuellt per nod.

Går det i så fall att få URL:en att matcha en meny på det sättet?

Menyposter i sökvägen markeras ju i temat med klassen "active_trail", och i så fall skulle man kunna använda sig av det för att känna av vilken meny sidan befinner sig under, men jag har inte lyckats komma åt den informationen från ett block.

Något jag också lagt märke till är att menyn i inte återspeglas i "breadcrumbs", vad nu det kan innebära.

Två alternativ

TBarregren's picture

...men nu är det väl inte så att sökvägen avspeglar egenhändigt skapade menyer (tex. Primary links)?

Om du har Path modulen påslagen så kan du ju naturligtvis ange en URL alias som motsvarar nodens placering i menyträdet. Med PathAuto kan du göra detta helt automatiskt.

Om du av någon anledning inte vill att sökvägen skall avspelga placeringen i menyträdet, t.ex. om du inte vill använda Path modulen, så får du nog på blockets inställningssida skriva lite PHP-kod som returnerar true/false beroende på vad som returneras av menu_get_active_trail().


Thomas BarregrenNodeOne

Tack för tipsen! Jag kände

spline's picture

Tack för tipsen!

Jag kände inte till alla möjligheter med pathauto, så det var bra att veta att det går att automatgenerera URL efter sidans menysökväg. Om man använder det systemet öppnas ju möjligheten att matcha blockvisning mot ett URL-mönster som föreslaget.

En konstighet när jag provar detta är att en av sidorna i menyn ges ett avvikande automatiskt URL-alias.
Node path är satt till "content/[menupath-raw]". Alla menyposter i nivå1 ges då sökvägen "content/menytitel", utom den andra posten som ges "content/hem/nod-7".

Att matcha blockvisning direkt mot sidans meny och inte via URL verkar svårare.

Funktionen menu_get_active_trail() har jag tittat på, den verkar fungera endast för standardmenyn (navigation). För övriga menyer (i detta fall Primary links) returnerar den bara en lista med 2 poster: "Hem" (/) och aktuell sida. Mellanliggande menyalternativ kommer inte med.

Finns det kanske något samband med de "breadcrumbs" som visas på sidan, eftersom de beter sig på ett liknande sätt? Vid navigering i standardmenyn visas hela menysökvägen i breadcrumbs, men i övriga menyer visas endast topplänken "Hem".

Jag förstår mig inte riktigt på hur detta är uppbyggt i Drupal ännu, men skulle gärna vilja göra det.

Förbiseende av mig

spline's picture

En konstighet när jag provar detta är att en av sidorna i menyn ges ett avvikande automatiskt URL-alias. Node path är satt till "content/[menupath-raw]". Alla menyposter i nivå1 ges då sökvägen "content/menytitel", utom den andra posten som ges "content/hem/nod-7".

Ok, sorry nu såg jag vad detta berodde på. Jag hade experimenterat lite och sidan förekom även i en annan meny med menysökvägen "Hem > Nod 7". Tydligen prioriterades denna meny som sökvägsalias för sidan. (I den ordning menyerna skapats kanske?)

Detta leder ju till en del andra funderingar, om man vill inkludera samma sidor i flera olika menystrukturer. Det verkar inte som Drupal håller reda på vilken meny som används, utan helt enkelt söker fram de menyer där sidan förekommer och markerar dessa som "aktiva". Jag kan tänka mig att det finns moduler eller alternativa metoder som medger användning av en viss navigationstruktur bland flera möjliga för samma innehåll, men det får väl bli något att fördjupa sig i efterhand behovet uppstår.

Context

itangalo's picture

Det låter som ett klockrent fall för modulen Context, där man kan bestämma en hel del om vad som ska visas eller inte exempelvis utifrån menyval.

Context ger också en hel del annan funktionalitet, så bli inte förvånad om det finns en del inställningar att leka med.

//Johan Falk, NodeOne
**
Vill du lära dig mer om Drupal? Kolla in samlingen av tips och guider!
Har du en fråga om Drupal? Missa inte FAQ-sidan på forumet!
Kolla in min senaste guide: Sju steg mot svart bälte i att tema Drupal

Tack för tipset

spline's picture

Det hade jag inte väntat att tråden skulle vakna till liv med nya uppslag.
Context låter som en intressant modul som kanske tar sig an problemet ur en mer generell synvinkel.

Underbart, super nice, tack

ropaolle's picture

Suttit flera timmer med detta och Contex löser det galant.

Tack Itangalo.

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: