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()}.",
);
}
}
