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

时间:2018-09-22 06:19:58

标签: php drupal drupal-8

我对Drupal并不陌生,开始学习Drupal8,谁能给我一个在Drupal8自定义块中使用自定义树枝模板的示例。

1 个答案:

答案 0 :(得分:1)

请遵循以下步骤:

如果没有自定义.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 /并创建文件,例如Custom.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>

祝你好运!