Определите data-options @ из файла конфигурации плагина - PullRequest
0 голосов
/ 24 июня 2019

Я сделал простой плагин 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 голосов
/ 25 июня 2019

Проблема в том, что, поскольку ваша функция 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, необходимый для получения конфигурации.

...