Создайте плагин пользовательской области
Я хочу добавить плагин для представлений, чтобы предоставить некоторые пользовательские функции в нижнем колонтитуле представления.
Во-первых, я создал следующее в my_module/src/Plugin/views/area/MyPlugin.php
:
namespace Drupal\my_module\Plugin\views\area;
use Drupal\views\Plugin\views\area\AreaPluginBase;
/**
* Defines a views area plugin.
*
* @ingroup views_area_handlers
*
* @ViewsArea("my_plugin")
*/
class MyPlugin extends AreaPluginBase {
/**
* {@inheritdoc}
*/
public function render($empty = FALSE) {
if (!$empty || !empty($this->options['empty'])) {
return array(
'#markup' => 'test footer content',
);
}
return array();
}
}
Когда это не сработало само по себе, я понял, что мне нужно объявить плагин в my_module.views.inc
:
/**
* Implements hook_views_data().
*/
function my_module_views_data() {
$data['views']['my_plugin'] = array(
'title' => t('My Plugin'),
'help' => t('My plugin description.'),
'area' => array(
'id' => 'my_plugin',
),
);
return $data;
}
С добавлением этого я могу увидеть плагин, доступный для выбора, в области под экраном администратора "Просмотры". Однако, когда я устанавливаю флажок для этого и нажимаю Применить, кнопка текст меняется на "Добавить и настроить нижний колонтитул", но он не переходит к следующему шагу процесса.
У меня это случалось при написании пользовательских блочных плагинов; система не позволяет мне размещать блок, когда с плагином что-то не так. Есть какие-нибудь мысли относительно того, что у меня здесь не так?
2 answers
В имени файла моего плагина была опечатка. :-/
Похоже, вам нужно объявить плагин в файле views.schema.yml
(в данном случае в файле config/schema/my_module.views.schema.yml
относительно корневого каталога вашего модуля):
views.area.my_plugin:
type: views_area
label: 'My Plugin'