reviewer-1.2.x-dev/modules/reviewer_test_kit/src/Plugin/reviewer/Task/Entity/Display/FieldsDisabledTaskBase.php

modules/reviewer_test_kit/src/Plugin/reviewer/Task/Entity/Display/FieldsDisabledTaskBase.php
<?php

declare(strict_types=1);

namespace Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display;

use Drupal\reviewer\Reviewer\Result\ResultInterface;
use Drupal\reviewer\Reviewer\Task\FixableInterface;

/**
 * Internal task for checking if fields on entity display forms are disabled.
 *
 * @internal
 *   This class is internal and the methods within may change at any time. Use
 *   \Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\Form\FormFieldsDisabledTaskBase
 *   or
 *   \Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\View\ViewFieldsDisabledTaskBase
 *   to check if fields are disabled on specific entity displays instead.
 *
 * @see \Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\Form\FormFieldsDisabledTaskBase
 * @see \Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\View\ViewFieldsDisabledTaskBase
 */
abstract class FieldsDisabledTaskBase extends DisplayFieldsTaskBase implements FixableInterface {

  /**
   * {@inheritdoc}
   */
  public function check(): ResultInterface {
    $this->checkValidProperties();

    $results = $this->createCollection();
    foreach ($this->displays() as $display) {
      /** @var string[] $hidden_fields */
      $hidden_fields = $display->get('hidden');

      foreach ($this->fieldsToCheck($display) as $field) {
        $results->add($this->createCheckResult(
          isset($hidden_fields[$field]),
          "Field $field is disabled.",
          "Field $field is not disabled.",
          "{$display->getMode()}.$field",
        ));
      }
    }

    return $results;
  }

  /**
   * {@inheritdoc}
   */
  public function fix(): ResultInterface {
    foreach ($this->displays() as $display) {
      /** @var string[] $hidden_fields */
      $hidden_fields = $display->get('hidden');

      foreach ($this->fieldsToCheck($display) as $field) {
        if (!isset($hidden_fields[$field])) {
          $display->removeComponent($field);
        }
      }

      $display->save();
    }

    return $this->createFixResult(
      $this->check()->getStatus(),
      "Disabled fields for {$this->entityTypeFullId()}.",
      "Unable to disable fields for {$this->entityTypeFullId()}.",
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc