2017-11-24 3 views
0

Ich möchte eine Zweigvorlage für mein benutzerdefiniertes Modul erstellen, die Next- und Previous-Artikellinks ausgibt.Wie kann ich PHP-Variable in Zweig drucken?

In meiner .module Datei Ich habe

<?php 
/** 
* @file 
* Code for the nextprev module. 
*/ 
function nextprev_theme($existing, $type, $theme, $path) { 
    return [ 
     'nextprev_template' => [ 
     'variables'=> [ 
       'nextprev' => 'Some_value', 
      ], 
    ], 
    ]; 
    } 

In meiner Controller-Datei verwende ich

public function build() { 
    /** 
     * {@inheritdoc} 
     */ 

     $node = \Drupal::request()->attributes->get('node'); 
     $created_time = $node->getCreatedTime(); 
     $nextprevlinks .= $this->generateNext($created_time); 
     $nextprevlinks .= $this->generatePrevious($created_time); 

     $renderable = [ 
     '#theme' => 'nextprev_template', 
     '#nextprev' => 'nextprevlinks', 
     ]; 
     $rendered = drupal_render($renderable); 

    } 

} 

Ich will als aus meinem $ nextprevlinks in Zweig drucken {{}} nextprev

Ich habe Zweig Vorlage in meinem Modul-Ordner gemacht und es funktioniert, aber ich kann meine {{nextprev}} Variable nicht ausdrucken, es gibt Null, wenn ich kint benutze.

Ich habe auch nextprev.routing.yml mit:

nextprev.block: 
    path: /node 
    defaults: 
    _controller: Drupal\nextprev\Controller\NextPrevLinksBlock::build 
    requirements: 
    _permission: 'access content' 

Antwort

0

Dies muss arbeiten:

$renderable = [ 
    '#theme' => 'nextprev_template', 
    '#nextprev' => $nextprevlinks, 
    ]; 

Aber ich denke, coild es besser sein, wenn Sie darstellbaren Array von der Steuerung wie diese zurückgeben :

return [ 
    '#theme' => 'nextprev_template', 
    '#nextprev' => $nextprevlinks, 
]; 
Verwandte Themen