Gasten mogen alleen teasers zien

Drupal 7.

Stel dat je wilt dat iedereen inlogt om de gehele tekst van een pagina te kunnen lezen. De teasers (voorproefjes) zijn wel vrij te lezen. Standaard is dit niet mogelijk met Drupal. Maar met een klein programmaatje wel.

Het merendeel van de oplossing staat op de pagina: Afgeschermde pagina’s.
Alleen wil je de afscherming nu realiseren voor een of meer standaard inhoudstypes.

Ervan uitgaande dat met Drupal 7 wordt gewerkt hoeft maar één regel te worden aangepast in de beschreven module.
Vervang in de regel:

if (($node->type == 'medewerkers') && (!$GLOBALS['user']->uid) && ($view_mode != 'search_index')) {

de view mode:

if (($node->type == 'medewerkers') && (!$GLOBALS['user']->uid) && ($view_mode != ‘teaser’)) {

Uiteraard vervang je ‘medewerkers’ door het juiste inhoudstype.
Geldt de leesbeperking voor meer inhoudstypes (bijvoorbeeld ook ‘tweedetype’) gebruik dan:

if (in_array($node->type, array('medewerkers', 'tweedetype')) && (!$GLOBALS['user']->uid) && ($view_mode != ‘teaser’)) {

In de in_array($node->type, array('medewerkers', ‘tweedetype’)) kunnen meer inhoudstypes worden toegevoegd. Denk eraan dat hierin de systeemnaam moet komen, zoals ‘article’ of ‘page’ en niet de vertaalde naam. De systeemnaam is te zien op de pagina: www.example.com/admin/structure/types.

Zet wel duidelijk op je site dat voor het lezen van de gehele tekst ingelogd moet worden.