我做了一个简单的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
有什么解决方案吗?谢谢!
答案 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实例。