【问题标题】:Using custom twig template in Drupal8 custom block在 Drupal8 自定义块中使用自定义树枝模板
【发布时间】:2018-09-22 06:19:58
【问题描述】:

我是 Drupal 的新手,开始学习 Drupal8,谁能给我一个在 Drupal8 自定义块中使用自定义树枝模板的示例。

【问题讨论】:

    标签: php drupal drupal-8


    【解决方案1】:

    按照以下步骤操作:

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

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

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

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

    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'
        );
      }
    }
    

    现在清除缓存并转到结构 -> 块布局。找到您的块并将其放置在您想要的区域中。

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

    将变量渲染到 Twig HTML:

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

    祝你好运!

    【讨论】:

    • 我认为命名约定是:'block__custom_block' = ['template' =&gt; 'block--custom-block']
    猜你喜欢
    • 2016-10-05
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多