Productgrid-weergave & theming (Drupal 7)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Hoe zorg je in Drupal 7 voor een leuke opmaak van producten? Bv. in een grid op de home page?

View mode + display + view + context

Er zijn verschillende wegen die naar Rome leiden. Een route die mij goed bevalt:

Defineer een view mode

Defineer een nieuwe view mode (bv. product teaser) met behulp van de Display Suite-module

Maak een display aan

Klik op Manage display bij het betreffende content-type
Kies rechtsboven de betreffende view mode. Configureer onderaan het scherm (hier niet te zien) de layout qua kolommen, en bepaal waar welke velden komen

Ik gebruik meestal de Two-colum stacked layout. Bijbehorende sjabloon-sugesties:

* ds-2col-stacked--node.tpl.php
* ds-2col-stacked--node-home-page-product-display.tpl.php
* ds-2col-stacked--node-product-display.tpl.php
* ds-2col-stacked--node-product-display-home-page-product-display.tpl.php
* ds-2col-stacked--node--{id}.tpl.php

Incorporeer deze display in een view

Show: content met als optie de view mode. Ipv. content kun je ook Display suite kiezen. Geen idee wat het verschil is
Om producten in een grid op de home page te tonen, heb ik 'm nodig als block (denk ik)

Gebruik deze view in een context

Context home_sweet_home gedefineerd, met als voorwaarde dat het path gelijk is aan <front>
Binnen deze context wordt

Body: Toon teaser ipv. alles

  • In producttype-displays kun je niet aangeven dat je iets met de teaser wilt doen
  • Op product-display-niveau kun je niet aangeven dat je iets met de teaser wilt doen. Deze posting suggereert dat er een tandwieltje achter het body-veld zou staan waarin je oa. teaser-lengte kunt instellen. Dat lijkt niet te werken en sommige commentaren leggen uit dat niet meer gaat als er al content is ingevoerd
  • In een product-display-view werk je normaliter niet op veld-niveau, maar geef je alleen aan welke 'bundle' je wilt gebruiken. Als ik fields als bron gebruikte, zag ik zo snel geen oplossing.

Zie ook

Bronnen

Body teaser weergeven