Drupal CCK + Views. Aanpassen van de weergave van de medewerkersgalerij.
In de vorige les hebben we met behulp van de Drupal-modules Views en CCK een medewerkersgalerij gemaakt, die wordt gevuld door het aanmaken van content van het type “Medewerker”. Aan het inhoudstype Medewerker hebben we twee velden toegevoegd: Volledige naam (text field) en Over de medewerker (textarea). Deze les laat zien dat dezelfde gegevens op verschillende manieren kunnen worden weergegeven via Views.
Op dit moment wordt de medewerkersgalerij als volgt weergegeven:
Voor het gemak heb ik in het menu een link naar de medewerkersview geplaatst. Gebruik als pad naar de view de eigenschap “Path” van de weergave “Pagina”.
Methode 1. Laten we werken met de view van de medewerkersgalerij: we verwijderen de beschrijving van elke medewerker uit de algemene galerij en maken van de volledige naam een link naar de node van de medewerker.
Allereerst moeten we het beschrijvingsveld verwijderen uit de medewerkersgalerij. Ga naar de lijst met views (Siteconstructie – Views) en selecteer de view van onze galerij, in mijn geval view_sotrudniki.
Klik op de knop om velden te bewerken en verwijder het veld “Beschrijving van de medewerker”. Sla daarna de wijzigingen op. Wees niet bang om iets te verwijderen in de weergave — door een veld uit de view te verwijderen, verwijder je de gegevens zelf niet.
Nu ziet de view zonder beschrijving er als volgt uit:
Vervolgens maken we de volledige naam van de medewerker klikbaar, zodat deze linkt naar de node van de medewerker. Ga in de view naar het veld “Volledige naam”:
Onderaan verschijnen de veldinstellingen. Selecteer “Link this field to its node” (verbind dit veld met zijn node):
Sla de wijziging op en vergeet niet de hele view op te slaan. Nu is de volledige naam een link naar de node van de medewerker:
Methode 2. We maken de volledige naam een link naar de medewerkersgalerijview, maar geven via de link het node-ID van de medewerker door.
Op basis van het node-ID van de medewerker tonen we een blok met de beschrijving van de medewerker direct onder de galerij. Bijvoorbeeld: als het node-ID van de medewerker 10 is, dan leidt de link naar zijn naam naar jouw_site/sotrudniki/10.
Ga naar de view van onze galerij en voeg het veld Inhoud: nid toe. nid staat voor node id — het unieke nummer van de node. Wanneer je het veld toevoegt, stel in dat het niet getoond moet worden (Exclude from display).
Plaats het veld nid bovenaan, zodat de waarde beschikbaar is bij het maken van de link voor de volledige naam.
Ga nu naar de instellingen van het veld “Volledige naam” en stel de link in als sotrudniki/[nid].
Verwijder het vinkje bij “Link this field to its node” en vink “Output this field as a link” aan (Geef dit veld weer als link). In de waarde van de link gebruiken we een sjabloon met [nid] — daarom hebben we het veld Inhoud: nid omhoog verplaatst. We schrijven: sotrudniki/[nid]. Sla het veld en de view op.
Nu moeten we een blok maken waarin de beschrijving van de medewerker wordt weergegeven. Noem het view_block_sotrudniki. Voeg aan deze view een blokweergave toe.
Voeg de volgende velden toe:
Inhoud: Volledige naam
Inhoud: Over de medewerker
Filters:
Inhoud: Gepubliceerd – ja
Inhoud: Type – medewerker
Argument:
Inhoud: nid – in de argumentinstellingen geef je het volgende aan:
Provide default argument – als er geen argument wordt opgegeven, kun je het argument bepalen via de functie arg()
of een andere methode. De functie arg()
gebruikt in de haakjes het nummer van het argument in de URL (sotrudniki/[nid]), waarbij de nummering begint bij nul. Dus we kiezen het tweede argument – het node-ID [nid]; het eerste argument is “sotrudniki”.
Andere mogelijke argumentopties:
Node ID from URL – werkt wanneer het eerste argument node is (bijv. node/14);
Taxonomy Term ID from URL – werkt wanneer het eerste argument term is; de module Taxonomy behandelen we later in een aparte les;
User ID from URL – werkt wanneer het eerste argument user is.
We zullen deze argumenten in andere lessen bespreken, maar voorlopig voeren we de PHP-code return arg(1); in.
Sla het argument en de view op. Nu verschijnt er een blok view_block_sotrudniki: Blok. Een blok wordt telkens aangemaakt wanneer er in een view een blokweergave wordt toegevoegd. Plaats het blok view_block_sotrudniki: Blok in de regio Content. In de zichtbaarheidinstellingen van het blok geef je op dat het alleen moet worden weergegeven op pagina’s waarvan de URL het woord sotrudniki bevat (zodat de eerste view met de medewerkersgalerij wordt geladen) en daarna een node-ID (de /*
na de slash betekent dat er een waarde na de slash wordt verwacht).
Ga naar de pagina jouw_site/sotrudniki – nu verschijnt, wanneer je op de volledige naam van een medewerker klikt, zijn naam en beschrijving.