从插件配置文件定义 data-options@

Define data-options@ from plugin config file

我做了一个简单的Grav插件来添加一些用户信息! 我想在 template.html.twig

上制作新蓝图

这是一个插件配置 yaml 文件:

enabled: false
authors:
  -
    name: Author 1
    desc: Description 1
  -
    name: Author 2
    desc: Description 2
    custom_file:

这是蓝图:

header.author:
   type: select
   label: Author
   classes: fancy
   data-options@: '\Grav\Plugin\AuthorsPlugin::getAuthors'

我在插件 php 文件中有这个:

public static function getAuthors() {

    $author_name = $this->grav['config']->get('plugins.authors.name');

}

我收到错误: 不在对象上下文中时使用 $this

有什么解决办法吗?谢谢!

问题在于,由于您的函数是 static,因此您的 class 尚未初始化(没有 $this$this->grav,它们在构造函数中设置时创建 class).

的实例

虽然没有看到整个 class,但希望这足以引导您朝着正确的方向前进...

在 php 文件的顶部导入 Grav class 如果尚未导入,

use Grav\Common\Grav;

然后修改您的函数以调用 Grav::instance() 而不是 $this->grav:

$author_name = Grav::instance()['config']->get('plugins.authors.name');

instance() 函数会创建您获取配置所需的 Grav 实例。