【问题标题】:Can't get custom block module to appear in "Place blocks" screen in Drupal 8无法让自定义块模块出现在 Drupal 8 的“放置块”屏幕中
【发布时间】: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 屏幕并单击了“清除所有缓存”按钮

感谢大家的帮助,

大卫·布德里奇 :-)

【问题讨论】:

    标签: drupal-modules drupal-8


    【解决方案1】:

    检查您定义阻止插件的模块是否安装。如果未安装该模块,请转到站点的扩展页面搜索您的模块名称并启用它。如果您使用的是 drush,那么您可以简单地通过

    drush 模块名称

    在那之后,我想你会在你的块布局部分的块中获得块名称。

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      相关资源
      最近更新 更多