Drupal View of custom block tonen in node

Af en toe kan het wel eens handig zijn om een View, block of zelfs een andere reeds bestaande node in te voegen in je nieuwe node of block op je Drupal website.

Alvorens onderstaande embed technieken te gebruiken dien je natuurlijk de PHP filter in te schakelen (Standaard bij Drupal core) en bij de nodes die je aan zal maken dit als filter in te schakelen ipv Full HTML.

Hieronder vind je enkele mogelijke opties om dit te doen:
De tekst in het rood dien je te vervangen door de ID of juiste benaming

  • Laad een bestaande node in een andere node of block:

    <?php
    // Op deze manier kan je bijvoorbeeld de berichttekst voor een node embedden
    // Verder kan je alle andere node variabelen ook aanspreken
    $node = node_load(NODE_ID);
    print check_markup($node->body);
    ?>
  • Laad een view in een bestaande node of block:

    <?php
    // Op deze manier kan je een view embedden
    print views_embed_view('NAAM_VAN_DE_VIEW', 'block_1');
    ?>
  • Laad een eigen aangemaakt block in een node of ander block

    <?php
    // Op deze manier kan je een block embedden
    $block = module_invoke('block', 'block', 'view', 'ID_VAN_HET_BLOK');
    // Voor titel van het block
    print $block['subject'];
    // Voor de inhoud van het blok
    print $block['content'];
    ?>
Labels: 
Gerelateerde inhoud: 

1 reactie

20
Mei

afbeelding van Hogans

Voor het laden een node in een block is er een betere oplossing.
Hiermee zal de volledige node goed opgehaald worden door de Drupalcore.

<?php

$xNode = ID; /* De ID van jouw node */

$node = node_load($xNode);
if (user_access('administer nodes'))
{
$nodeurl = url('node/'. $node->nid);
print('[edit]');
}
$nodeout = node_view($node);
print $nodeout;
?>

Reactie toevoegen