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

时间:2019-06-24 15:25:24

标签: php grav

我做了一个简单的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

有什么解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于,由于您的函数是static,所以您的类尚未初始化(没有$this$this->grav在创建类实例时在构造函数中设置的) )。

不希望看到整个班级,这足以引导您朝着正确的方向……

如果尚未将Grav类导入php文件的顶部,

use Grav\Common\Grav;

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

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

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