在Drupal8自定义块中使用自定义树枝模板

我是Drupal的新手,并开始学习Drupal8,任何人都可以请我提供一个使用自定义树枝模板的示例 在Drupal8自定义块中。</ p>
</ div>

展开原文

原文

I'm very new to Drupal and started learning with Drupal8 can anyone please provide me an example of Using custom twig template in Drupal8 custom block.

1个回答



按照以下步骤操作:</ p>

如果您没有,请创建自定义.module文件 一个并添加带有已定义变量名称的hook_theme()和Twig模板名称。</ p>

  / ** 
*实现hook_theme()。
  • /
    function custom_theme() {
    返回数组(
    'custom_block'=&gt;数组(
    '变量'=&gt;数组('title'=&gt; NULL,'description'=&gt; NULL),
    '模板'=&gt ;'block - ws-custom',
    ),
    );
    }
    </ code> </ pre>

    下一步是创建一个块文件并放置代码 。 转到自定义模块文件夹,打开/ src / Plugin / Block /并创建文件,例如 Custom.php。 包含一些核心功能并构建自定义块。 为您的块和管理员标签定义ID,以便您可以在Structure中轻松找到它 - &gt; 阻止布局并放置到区域。</ p>

    创建一个类并扩展BlockBase。 使用build()函数并返回一个变量数组:</ p>

      namespace Drupal \ custom \ Plugin \ Block; 
    use Drupal \ Core \ Block \ BlockBase;

    / **
    *提供'ws custom'块。

  • @Block(

  • id =“custom_block”,

  • admin_label = @Translation(“自定义块”),

  • *)

  • /
    class自定义扩展BlockBase {
    / **

  • {@inheritdoc}

  • /
    公共函数build(){
    //做某事
    返回数组(
    ') #title'=&gt;'标题',
    '#description'=&gt;'说明'
    );
    }
    }
    </ code> </ pre>

    现在 清除缓存并转到结构 - &gt; 块布局。 找到您的块并将其放在您想要的区域。</ p>

    下一步是创建Twig文件并渲染变量。 在您的主题文件夹中打开您使用的主题,例如 wstheme和打开文件夹模板/块。 现在,创建一个文件块 - custom.html.twig。 </ p>

    将变量渲染为Twig HTML:</ p>

      {#
    / **
  • @file

  • Profile自定义块。

  • /
    #}
    &lt; div class =“custom - block”&gt;
    &lt; h1&gt; {{title}}&lt; / h1&gt;
    &lt; p&gt; {{description}} &lt; / p&gt;
    &lt; / div&gt;
    </ code> </ pre>

    祝你好运!</ p>
    </ div>

展开原文

原文

Follow the next steps:

Create your custom .module file if you don't have one and add hook_theme() with defined variables names, and Twig template name.

/**
 * Implements hook_theme().
 */
function custom_theme() {
  return array(
   'custom_block' => array(
            'variables' => array('title' => NULL, 'description' => NULL),
            'template' => 'block--ws-custom',
        ),
  );
}

Next step is to create a block file and place the code. Go to your custom module folder, open /src/Plugin/Block/ and create file e.g. Custom.php. Include some core functions and build your custom block. Define id for your block and admin label, so you can easily find it in Structure -> Block layout and place to a region.

Create a class and extend BlockBase. Use build() function and return an array of variables:

namespace Drupal\custom\Plugin\Block;
use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'ws custom' block.
 *
 * @Block(
 *   id = "custom_block",
 *   admin_label = @Translation("Custom Block"),
 *
 * )
 */
class Custom extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {
  // do something
    return array(
      '#title' => 'Title',
      '#description' => 'Description'
    );
  }
}

Now clear cache and go to Structure -> Block layout. Find your block and place it in the region you want.

Next step is to create Twig file and render variables. In your themes folder open the theme that you use e.g. wstheme and open folder templates/block. Now, create a file block--custom.html.twig.

Render variables to Twig HTML:

{#
/**
 * @file
 * Profile custom block.
 */
#}
 <div class="custom--block">
    <h1>{{ title }}</h1>
    <p>{{ description }}</p>
 </div>

Good luck!

dougan6402
dougan6402 我认为命名约定是:'block__custom_block'= ['template'=>'block - custom-block']
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问