无法让自定义块模块出现在Drupal 8的“放置块”屏幕中

时间:2018-02-01 06:51:01

标签: drupal-modules drupal-8

我正在尝试在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: - )

1 个答案:

答案 0 :(得分:0)

检查您定义的模块插件是否已安装。如果未安装模块,请转到站点的扩展页面以搜索模块名称并启用它。如果您使用的是drush,则只需通过以下方式启用它即可:

  

drush en moduleName

之后,我想您将在块布局部分的块中获得块名称。