Dat Views één van de meest fantastische Drupal modules is zal ondertussen iedereen al wel geweten hebben.
Met deze module is het mogelijk om heel wat gegevens uit de database te halen zonder zelf ingewikkelde queries en PHP scripts te gaan schrijven hiervoor.
Maar af en toe komt het wel eens voor dat je niet 100% tevreden bent met de output die je door Views kan genereren.
Gelukkige bestaat er hier voor de module Views Custom Field. Met deze plugin kan je de output wijzigen alvorens deze op het scherm getoond word. Je kan er zelfs gebruik van custom PHP code maken, wat bijzonder handig en leuk kan zijn natuurlijk.
Stel dat je een lijst wilt tonen van links naar externe websites, of een overzicht van bijlages uit je nodes. Standaard krijgen deze net zoals elke andere link in Drupal geen 'Target' mee, waardoor deze steeds in het bestaande venster zullen openen waardoor je de bezoeker kwijt geraakt.
Wanneer je nu deze Views Custom Field module hebt ingeschakeld kan je dit toevoegen aan deze links.
In onderstaand voorbeeld laat ik je zien hoe je een Custom PHP Field kan toevoegen en er een target aankoppelen.
Aangezien target="_blank" niet W3C Strict valid is maak ik gebruik van rel="external" en een Javascript dat de link zal openen in een nieuw venster. (Hoe je dit kan doen kan je terug vinden via deze link: target blank-xhtml-w3c-valid-maken)
Eerst dien je het veld toe te voegen aan je view dat je wilt wijzigen. (Schakel de optie 'display field' uit, zodat het niet zal getoond worden in de view, maar voor we het kunnen gebruiken als Custom Field dienen we het wel op deze manier beschikbaar te stellen)
Hierna kan je als veld een Customfield PHP code toevoegen, indien je wilt weten hoe je alle velden dient aan te spreken in je code kan je voor jezelf even het volgende invullen in het veld, zodat alle mogelijke variabelen getoond zullen worden:
<php
print var_export($data, TRUE);
?>
Stel dat je het veld voor de link die je wilt aanpassen de volgende variabele is: $data->node_field_link
Dan zou je hier de target als volgt aan kunnen toevoegen:
<php
print str_replace('<a ', '<a rel="external" ', $data->node_field_link);
?>
Dit is natuurlijk maar een voorbeeld maar zoals je kan zien zijn de mogelijkheden enorm hiermee.
Geen reacties beschikbaar.
Reactie toevoegen