D2 les 03

Views vervolmaking

In dit gedeelte gaan we zaken bekijken die we bij views nog niet gezien hebben.. Eerst enkele algemeenheden...

Relaties in Views

In de herhalingsles (= vorige les) werd er bij de 'Wetenschappers 3' view gretig gebruik gemaakt van relaties. In deze vervolmaking van view kom ik er niet op terug, maar het is evident dat je in Drupal 3 deze relaties volledig onder de knie hebt om velden aan te boren die niet rechtstreeks in het inhoudtype zitten.

Views slideshow

Ook nog zo'n topper van views; de slideshow. In Drupal 2 hebben we het daar uitvoerig over gehad. Hier gaan we perfectioneren door de slideshow volldig responsive te maken, iets wat het niet standaard is. Meer nog met de nodig CSS ga ik de slideshow ook verbergen in de phone layout.

Normale layout (pc en tablet) de figuur verkleint en past zich aan, aan het venster.

Dit is de CSS die daarvoor nodig is:

Omdat ik vond dat de figuren te klein werden bij de phone versie, verberg ik die. Zo krijg je een mooie adaptive layout:

Dit is de nodige CSS die dit teweeg brengt:

@media is een knap staaltje van CSS die kan ingesteld worden al naargelang de schermbreedte. Je stelt zelf de breedte in.

Views Selective Exposed Filters

Bekijk aandachtig onderstaande print. Er zijn een aantal filters publiek gesteld. Als de opleidingen op 'Alle' staat, dan zie je hier 4 mogelijke cursussen. (in deze test)

Als je nu een opleiding kiest (Webdesign) dan zie je nu bij Cursussen dat je nog 2 mogelijkheden over houdt. De filters rechts,wel, hun inhoud is afhakelijk van de filters links.

Maak iets analoogs met klassen en cursussen. --Ter verduidelijking.. drupal 3 op donderdagaovnd in lokeren is een klas.. De cursus is Drupal 3. Er kunnen dus van een cursus meerdere klassen bestaan als deze meerdere keren worden gegeven. --We gaan voor een vereenvoudigde versie...In het inhoudstype zie je referentie naar een entiteit. We nemen dus de node van de cursussen op in de klassen.

Zo zie je bij de input van de klassen dat je een cursus kunt kiezen:

Installeer Views Selective Filters. Je krijgt nu in een view de mogelijkheid om dit toe te voegen aan je filters.

Telkens er selective staat, zal de inhoud afhankelijk zijn van de andere filters, ongeacht hun plaats.

Views Autocomplete Filter

Zorgt er voor dat een tekstveld auto aanvullend is. Bij de filters komt er een vinkje te staan 'autoaanvullend'. Practisch als je veel items hebt om op te filteren. Merk ook op dat je deze filter afhankelijk kunt maken van de andere. Je kunt zelfs een ander veld als voeding gebruiken..

Een voorbeeldje..

 

Views Dependent Filters

Met deze module (het is eigenlijk zelf geen filter) kan je filters die je publiek hebt gezet, afhankelijk maken van elkaar. Je kunt dus een filter laten verschijnen las er in een andere filter een waarde werd gekozen. In een view gaan we bij filters =>toevoegen een dependent filter toevoegen. We  kiezen eerst van welk veld we de andere filter laten afhangen. Hier kies ik voor een waarde van de cursus.

Numoet je bij de rangschikking de dependent omhoog schuiven tussen de filters die  je wilt gebruiken.

Onder klas_cursus in ons geval. Je ziet dan dat je controller waarden kunt invullen en een afhankelijke filter kunt kiezen. Aangezien Drupal 2 niet wordt ingericht als klas, maar wel als cursus bestaat, is het niet zinvol om een tekstveld om te zoeken te tonen bij Drupal 2. (een beetje bij het haar getrokken voorbeeld... enkel om didactische redenen)

Het teskveld is zichtbaar ik kies Drupal 1

Het tekstveld is niet zichtbaar bij het kiezen van Drupal 2

Editable Views

In een view rechtreeks de inhoud aanpassen. Het kan!  We maken een view met de cursussen en hun prijzen. Na installatie van editable fields module kan je dit selecteren:

Als je nu bij de velden die neemt met de term editable, dan kan je ze aanpassen. Elke node wordt telkens gewijzigd. Je kunt dus tegelijkertijd alles wijzigen. Heef tiets van Excel op webniveau.

Views Calc

Deze simpele module geeft je de mogelijkheid om bewerkingen zoals totaal, gemiddelde, aantal,...uit te voeren, per pagina of voor de totale view. Kies view calc als weergave en stel dan de velden in naar keuze.

Een mogelijk resultaat:(hier het gemiddelde)

Computed field

deze module zorgt er voor dat je bij views, een 'global math expression' of Algemene Wiskundige expressie kunt maken. Je kunt daarmee bewerkingen doen met velden die numeriek zijn. Bijvoorbeeld een som van 2 velden, product,...De velden hebben soms last van hun opmaak. Kies daarom als opmaakhulpmiddel, 'onopgemaakt' voor de velden waarmee je gaat rekenen.

kies het rekenveld

Voeg nu het rekenveld in

zicht op de view:

De instellingen. Maak gebruik van de tokens.

Een resultaat:

Computed field gaat nog veel verder dan dat. Je kunt er pure PHP in schrijven en zo alle velden in de database aanspreken. Zo kan ik bvb tonen of een cursus volzet is of niet, aan de hand van de tabel inschrijvingen, op een andere server!

Views Data Export

Deze module geeft je de mogelijkheid om een knop te voorzien om de gegevens te exporteren.

Maak een data export en geef het een pad. Aangezien ik zal kiezen voor een Excel bestand geef ik het ook een xls. extensie.

De knop moet toegevoegd worden aan een bepaalde view:

Je kiest de wijze van exporteren:

Je kunt de knop van tekst voorzien en de manier van exproteren instellen:

Zo ziet de knop er standaard uit.

Bij klikken kom je op het bestand terecht, die je kunt openen. Merk op dat Excel werd geopend. Het berekend veld komt niet mee omdat dit niet in de databse zit opgeslagen. logisch.

Views Accordion

Een mooie module die een view wat compacter kan maken. Het eerste veld wordt als uitklapveld gebruikt.

Kies de weergave van views accordion

Bij de instellingen kan je groeperen en de rij kiezen die uitgeklapt wordt weergegeven. (of geen enkele)

Views Flipped Table

de rijen en kolommen van een table view worden hier geswitched. Goed als je velden hebt met veel informatie. Zeer simpele module.

Views Tree

Deze module stelt je in staat om een hierarchische structuur weer te geven. Bijvoorbeeld taxonomietermen met hoofd- en nevenvelden. Zelf vind ik weinig verschil met de taxonomieterm menu. Ik laat het dan ook bij de afbeelding van de site zelf:

Responsive Tables

Deze module zorgt voor een extra kolom bij de tabelweergave van views.

Je kunt drie standen van prioriteit instellen: 'geen' wil zeggen dat het veld niet responsive is en dus niet verdwijnt. Low betekent dat het als eerste verdwijnt als er geen plaats meer is. Gemiddeld is een tussen instelling. Je kunt dus low gebruiken voor tablets en gemiddeld voor smartphones.

Full

Tablet. Zoek de verschillen..

Smartphone... Merk op dat je moet klikken op de titel om de volledige inhoud nu te zien..

Als je dit wilt zien op de front moet je bij Uiterlijk=>Algemene instellingen=> Responsive tabellen de pixels instellen. doe je dat niet dan werkt het niet!

Foo Table

Deze module doet alles wat de vorige deed, maar dan beter...

Er komt een formaat bij 'Foo Table'

Met volgende instellingen:

Hier kan je aanvinken welke velden je weg wil, bij welke weergave.

full.

tablet. Merk het + teken op om de inhoud uit te vouwen.

Smartphone.

Vooralleer je dit kunt moet je eerst nog deze module installeren.

Het is een 'gevaarlijke' module. ik heb ondervonden dat sommige zaken vna mijn thema niet meer werkten, zoals het uitvouwen vna mijn menu's. Ik heb daarom de 1.8 versie moeten nemen.

Er is ook een third party... Ga naar deze site:

Download en pak uit.

Zet het in de juiste map. Bingo...

Views Bulk Operations

Knappe module om in een view alle handelingen te doen (verwijderen, bijwerken...) Je krijgt bij de velden een veld bij die je kunt activeren. Deze zorgt voor vinkjes naast elk item. Bij de handelingen kan je ook een fitler zetten. Knappe module zonder echt moeilijk te zijn. Test maar eens uit..

Views Responsive Grid

Zorgt voor een rooster dat kan gebruikt worden onafhankelijk van het scherm. Deze module werkt als volgt: je activeert ze. Je stelt je view er mee in. Je krijgt dan per kolom een class. Deze moet je echter zelf met CSS vullen. Zo kan je bvb float:left zetten voor alle kolommen. Het speelt dan geen rol meer hoeveel kolommen je instelt. Alles wordt mooi opgevuld, welk scherm je ook gebruikt. Deze module zou in Drupal 8 in de core zitten.

Views Table Rowspan

Zorgt er voor dat je kunt groeperen in de tabel zelf, in plaats van er boven.  In onderstaand voorbeeld zie je dat sommige groepen 2 modules krijgen van elk 40 lestijden..

Aggregatie

is geen aparte module, maar moet gewoon aangevinkt worden bij de uitgebreide instellingen van je view. Elk veld krijgt een aggregatie instelling. Je moet best op één veld groperen en op de rest kan je dan het aantal, som,.. aanvinken.

Een voorbeeldje: