【发布时间】:2018-07-11 10:23:48
【问题描述】:
我正在尝试在 drupal 8 中编写一个自定义块模块,它允许我使用块布局屏幕将此块放置到我的 drupal 页面中。
我对 drupal 很陌生 - 所以这是一个非常“hello world”的项目(最初)来弄清楚它是如何工作的。为此,我一直在关注 youtube 视频说明以及阅读我在网上可以找到的任何 doco [以及几本书],但无济于事 [尚未]。
我所做的是在我创建 Walker.info.yml 的模块文件夹中创建了一个目录“walker”,如下所示:
name: Walker
description: A filewalker
core: 8.x
package: Custom
type: module
在同一个目录中,我创建了 Walker.module,如下所示:
<?php
/**
* @file
* Code for the walker module.
*/
然后我创建了一个目录:
模块/walker/src/插件/块/
并创建了一个名为 WalkerBlock.php 的文件,其内容如下:
<?php
/**
* @file
* Code for the walker block.
*/
namespace Drupal\walker\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a walker block
*
* @Block(
* id = "walker",
* admin_label = @Translation("The walker block"),
* category = @Translation("Blocks")
* )
*/
class WalkerBlock extends BlockBase
{
public function build()
{
return array('#markup' => 'Walker block');
}
}
如果我从 Drupal 根目录运行命令“find . -type f | grep Walker”,我会得到以下输出:
./modules/Walker/Walker.module
./modules/Walker/src/Plugin/Block/WalkerBlock.php
./modules/Walker/Walker.info.yml
然而,尽管我阅读的文档和视频表明这应该是我所需要的,但 Walker 块确实不作为选项出现在块布局屏幕中我可以放置在其中一个块区域中。
谁能看到我做错了什么?我已经转了几个小时了。
还要注意,我已经进入了 drupal8/admin/config/development/performance 屏幕并单击了“清除所有缓存”按钮
感谢大家的帮助,
大卫·布德里奇 :-)
【问题讨论】: