Создайте плагин пользовательской области


Я хочу добавить плагин для представлений, чтобы предоставить некоторые пользовательские функции в нижнем колонтитуле представления.

Во-первых, я создал следующее в 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;
}

С добавлением этого я могу увидеть плагин, доступный для выбора, в области под экраном администратора "Просмотры". Однако, когда я устанавливаю флажок для этого и нажимаю Применить, кнопка текст меняется на "Добавить и настроить нижний колонтитул", но он не переходит к следующему шагу процесса.

У меня это случалось при написании пользовательских блочных плагинов; система не позволяет мне размещать блок, когда с плагином что-то не так. Есть какие-нибудь мысли относительно того, что у меня здесь не так?

Author: kiamlaluno, 2016-06-07

2 answers

В имени файла моего плагина была опечатка. :-/

 1
Author: akalata, 2016-06-08 15:33:44

Похоже, вам нужно объявить плагин в файле views.schema.yml (в данном случае в файле config/schema/my_module.views.schema.yml относительно корневого каталога вашего модуля):

views.area.my_plugin:
  type: views_area
  label: 'My Plugin'
 0
Author: djevans, 2016-06-08 10:31:00