annotate vendor/chi-teck/drupal-code-generator/templates/d8/plugin/action.twig @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\{{ machine_name }}\Plugin\Action;
Chris@0 4
Chris@0 5 {% if configurable %}
Chris@0 6 use Drupal\Core\Action\ConfigurableActionBase;
Chris@0 7 use Drupal\Core\Form\FormStateInterface;
Chris@0 8 use Drupal\Core\Session\AccountInterface;
Chris@0 9 {% else %}
Chris@0 10 use Drupal\Core\Action\ActionBase;
Chris@0 11 use Drupal\Core\Session\AccountInterface;
Chris@0 12 {% endif %}
Chris@0 13
Chris@0 14 /**
Chris@0 15 * Provides a {{ plugin_label|article }} action.
Chris@0 16 *
Chris@0 17 * @Action(
Chris@0 18 * id = "{{ plugin_id }}",
Chris@0 19 * label = @Translation("{{ plugin_label }}"),
Chris@0 20 * type = "node",
Chris@0 21 * category = @Translation("{{ category }}")
Chris@0 22 * )
Chris@0 23 *
Chris@0 24 * @DCG
Chris@5 25 * For a simple updating entity fields consider extending FieldUpdateActionBase.
Chris@0 26 */
Chris@0 27 class {{ class }} extends {{ configurable ? 'ConfigurableActionBase' : 'ActionBase' }} {
Chris@0 28
Chris@0 29 {% if configurable %}
Chris@0 30 /**
Chris@0 31 * {@inheritdoc}
Chris@0 32 */
Chris@0 33 public function defaultConfiguration() {
Chris@0 34 return ['title' => ''];
Chris@0 35 }
Chris@0 36
Chris@0 37 /**
Chris@0 38 * {@inheritdoc}
Chris@0 39 */
Chris@0 40 public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
Chris@0 41 $form['title'] = [
Chris@5 42 '#title' => $this->t('New title'),
Chris@0 43 '#type' => 'textfield',
Chris@0 44 '#required' => TRUE,
Chris@0 45 '#default_value' => $this->configuration['title'],
Chris@0 46 ];
Chris@0 47 return $form;
Chris@0 48 }
Chris@0 49
Chris@0 50 /**
Chris@0 51 * {@inheritdoc}
Chris@0 52 */
Chris@0 53 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
Chris@0 54 $this->configuration['title'] = $form_state->getValue('title');
Chris@0 55 }
Chris@0 56
Chris@0 57 {% endif %}
Chris@0 58 /**
Chris@0 59 * {@inheritdoc}
Chris@0 60 */
Chris@0 61 public function access($node, AccountInterface $account = NULL, $return_as_object = FALSE) {
Chris@0 62 /** @var \Drupal\node\NodeInterface $node */
Chris@0 63 $access = $node->access('update', $account, TRUE)
Chris@0 64 ->andIf($node->title->access('edit', $account, TRUE));
Chris@0 65 return $return_as_object ? $access : $access->isAllowed();
Chris@0 66 }
Chris@0 67
Chris@0 68 /**
Chris@0 69 * {@inheritdoc}
Chris@0 70 */
Chris@0 71 public function execute($node = NULL) {
Chris@0 72 /** @var \Drupal\node\NodeInterface $node */
Chris@0 73 {% if configurable %}
Chris@0 74 $node->setTitle($this->configuration['title'])->save();
Chris@0 75 {% else %}
Chris@5 76 $node->setTitle($this->t('New title'))->save();
Chris@0 77 {% endif %}
Chris@0 78 }
Chris@0 79
Chris@0 80 }