duanbianweng5353 2018-09-22 06:19
浏览 163

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

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条回答 默认 最新

  • dongque3797 2018-09-22 14:04
    关注

    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!

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题