我正在尝试在drupal 8中编写一个自定义块模块,这将允许我使用块布局屏幕将此块放入我的drupal页面。
我对drupal很新 - 所以这是一个非常“hello world”项目(最初)来弄清楚它是如何工作的。为此,我一直在关注youtube视频说明以及阅读我在网上可以找到的任何doco [以及几本书],但是[无效]。
我做了什么,在modules文件夹中创建了一个目录“walker”,我在其中创建了Walker.info.yml,如下所示:
name: Walker
description: A filewalker
core: 8.x
package: Custom
type: module
在同一目录中,我创建了Walker.module,如下所示:
<?php
/**
* @file
* Code for the walker module.
*/
然后我创建了一个目录:
模块/助行器/ 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块在块布局屏幕中出现 not 作为选项我可以放在其中一个区块中。
谁能看到我做错了什么?我现在已经四处乱逛几个小时了。
另请注意,我已进入drupal8 / admin / config / development / performance屏幕并单击“清除所有缓存”按钮
感谢大家的帮助,
David Buddrige: - )
答案 0 :(得分:0)
检查您定义的模块插件是否已安装。如果未安装模块,请转到站点的扩展页面以搜索模块名称并启用它。如果您使用的是drush,则只需通过以下方式启用它即可:
drush en moduleName
之后,我想您将在块布局部分的块中获得块名称。