Verberg een view menulink als er geen inhoud is

Moeilijkheidsgraad

Stel... je hebt een view die het laatste nieuws toont. Je hebt daarvoor ook een menulink in bvb het hoofdmenu.

Wat gebeurt er als er geen nieuws is (bvb niet meer gepubliceerd omdat het verouderd is)? De menulink blijft bestaan in het hoofdmenu. Bij klikken krijg je dan ... niets. Pijnlijk voor een goede Drupal site.

Je kunt dit programmeren met hooks, maar ik doe dit op een andere manier...

Ik maak van dezelfde view ook een blokje. Dit blok heeft bij de instelling 'ontbreken van gegevens' een tekstje dat de CSS code bevat om de betreffende link te verbergen.

Ik maak bij wijze van test een view die alle nodes toont van het inhoudstype Article..

Screen002047.png

En ik zorg voor een menulink

Screen002053.png

Nu maak ik van dezelfde view een blokje aan. Ik beperk met tot een veld. Dit veld moet trouwens onzichtbaar gemaakt worden. Als er wel inhoud is mag ik eigenlijk niets van het blok zien.


Screen002048.png

Omdat je het enigste veld niet kunt uitsluiten van weergave, herschrijf ik het door een spatie te plaatsen. Als je geen enkel teken ingeeft, zal het veld toch getoond worden.

Screen002052.png

Nu komt de magie...We maken gebruik van 'gedrag bij ontbreken van resultaten'. Voeg een tekstveld in.


Screen002049.png

plaats de code in het blok om de specifieke menulink te verbergen.
Screen002051.png

Plaats dan het blok op elke pagina. Is er inhoud van de view dan zal de menulink zichtbaar zijn. Anders zal de CSS code worden gegenereerd en wordt de link onzichtbaar. Toegegeven.. dit zal de site een fractie van een seconde vertragen omdat deze controle moet gebeuren.