Рейтинг:0

Плагин не найден/ошибка недействительного плагина при создании пользовательского действия VBO

флаг in

Я создаю пользовательское действие VBO и постоянно вижу следующую ошибку:

Drupal\Component\Plugin\Exception\PluginNotFoundException: плагин "publish_TR_action" не существует.Действительные идентификаторы плагинов для Drupal\Core\Action\ActionManager: node_export_action, comment_unpublish_by_keyword_action, entity_delete_action:comment, node_assign_owner_action, node_unpromote_action, node_promote_action, node_make_sticky_action, node_unpublish_by_keyword_action, node_make_unsticky_action, bulk_node_export, user_add..........role_action

в папке модуля у меня есть следующий файл: /web/modules/custom\mymod/config/install/system.action.publish_comment_action.yml

   код языка: en
статус: правда
зависимости:
  модуль:
    - комментарий
идентификатор: publish_TR_action
label: 'Опубликовать комментарий и создать T&R'
тип: ""
плагин: publish_TR_action
конфигурация: { }

Затем я создал класс действий в папке /src/plugin: web/modules/custom/mymod/src/Plugin/Action/PublishTRAction.php

   <?php

пространство имен Drupal\mymod\Plugin\Action;

используйте Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase;
используйте Drupal\Core\Session\AccountInterface;
использовать Drupal\Core\StringTranslation\StringTranslationTrait;

/**
 * создать пользовательское действие
 *
 * @Действие(
 * идентификатор = "node_export_action",
 * label = @Translation("Экспорт контента"),
 * тип = "узел"
 * )
 */

класс PublishTRAction расширяет ViewsBulkOperationsActionBase {

  использовать StringTranslationTrait;

  /**
   * {@inheritdoc}
   */
  выполнение публичной функции ($entity = NULL) {
    // Делаем какую-то обработку..

    // Ничего не возвращайте для сообщения о завершении по умолчанию, в противном случае возвращайте переводимую разметку.
    return $this->t('Некоторый результат');
  }

  /**
   * {@inheritdoc}
   */
  доступ к общедоступной функции ($ объект, AccountInterface $ учетная запись = NULL, $ return_as_object = FALSE) {
    если ($object->getEntityType() === 'узел') {
      $access = $object->access('обновление', $account, TRUE)
        ->andIf($object->status->access('edit', $account, TRUE));
      вернуть $return_as_object ? $доступ : $доступ->разрешено();
    }

    // Другие типы сущностей могут иметь другие
    // доступ к методам и свойствам.
    вернуть ИСТИНА;
  }

}

Я удалил модуль, и при повторной установке я вижу вышеуказанную ошибку. Любая помощь??! Я использую Друпал 9.

No Sssweat avatar
флаг ua
В вашем php файле вы объявляете `"id = node_export_action"`, вместо этого должно быть `"id = publish_TR_action"`.
Rick avatar
флаг us
работал!!! Спасибо! Вы можете добавить это как ответ, пожалуйста?!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.