2016-06-21 46 views
0

我認爲這很容易,但我很難過。將參數從內容類型傳遞到模塊

我有一個包含id字段的自定義內容類型。我用一個基本的頁面模板來渲染它們。

我寫了一個小模塊,它創建了一個填充了來自外部API的數據的塊。一切工作,除了我似乎無法弄清楚如何將ID的值從給定頁面的內容傳遞到我的模塊,以便它可以進行API調用。

這將是直線PHP中的幾行代碼,它不能在Drupal 8和Twig中複雜嗎?

回答

0

我想你可以用HOOK_preprocess達到你想要的。

使用:

YOUR_MODULE_preprocess_node(&$variables){ ... } or 
YOUR_MODULE_preprocess_block(&$variables){ ... } 

從內容類型訪問您的變量,並把它傳遞給你的函數模板奧德。

+0

任何的例子嗎?我能找到的唯一一個將模塊中的變量傳遞迴模板。我需要先通過另一種方式。 – raf

1

我設法找到一個解決方案here

我重新張貼在情況下,它是別人有用。

如果生成自定義模塊,你可以通過路由系統訪問內容字段中輸入您塊構建功能裏面是這樣的:

public function build() { 

    if ($node = \Drupal::routeMatch()->getParameter('node')) { 
     $field_my_custom_value = $node->field_my_custom_value->value; 
    } 

    //do something with the variable, like make the API call 

    //Make sure to set the cache to the context or even to zero if you need 
    return array(
     '#markup' => $this->t('my content to render'), 
     '#cache' => array(
     'contexts' => ['contexts' => ['route']], 
    ), 
    ); 
}