Рейтинг:1

Как вызвать пользовательскую операцию в представлениях

флаг kz

У меня есть представление, в котором перечислены некоторые узлы. У каждого экземпляра узла есть логическое значение «Спам», которое по умолчанию равно FALSE.

В представлении есть столбец «Операции», где должна быть ссылка с анкорным текстом «Пометить как спам». Когда пользователь нажимает на эту ссылку, значение логического поля Спам для этого узла становится «ИСТИНА».

Я нашел этот учебник: https://www.drupal.org/docs/7/creating-custom-modules/howtos/how-to-add-a-column-with-dynamically-generated-action-buttons - но это для Drupal 7.

Однако что мне нужно сделать, чтобы указать пользовательскую операцию (с кликабельной ссылкой или кнопкой) в столбце «Операции», созданном представлениями?

miststudent2011 avatar
флаг fr
Может быть, вы можете попробовать вот так https://drupal.stackexchange.com/questions/295329/custom-action-plugin-with-configurationform
sonfd avatar
флаг in
Это не "действия", это "операции". Действия будут использоваться для массовых операций просмотра.
Free Radical avatar
флаг kz
@sonfd Большое спасибо за исправление. Я отредактировал вопрос, чтобы использовать правильную терминологию.
Рейтинг:1
флаг in

Это "операции". Это поле просмотра контролируется EntityOperations поле.

Довольно легко добавить новую операцию для объекта, реализуя hook_entity_operation.

используйте Drupal\Core\Entity\EntityInterface;
используйте Drupal\Core\Url;

/**
 * Реализует hook_entity_operation().
 */
функция mymodule_entity_operation(\Drupal\Core\Entity\EntityInterface $entity) {
  $операции = [];
  if ($entity->getEntityTypeId() == 'узел' && someOtherCondition($entity)) {
    $operations['flag_as_spam'] = [
      'title' => t('Пометить как спам'),
      // Замените маршрут, который вы создали, чтобы установить значение узла.
      'url' => Url::fromRoute('entity.node.canonical', ['node' => $entity->id()]),
      'вес' => 50,
    ];
  }
  вернуть $операции;
}

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

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