reviewer-1.2.x-dev/tests/modules/reviewer_test/src/Plugin/reviewer/Task/TestFieldLabelNotHiddenTask.php
tests/modules/reviewer_test/src/Plugin/reviewer/Task/TestFieldLabelNotHiddenTask.php
<?php
declare(strict_types=1);
namespace Drupal\reviewer_test\Plugin\reviewer\Task;
use Drupal\reviewer\Attribute\Task;
use Drupal\reviewer\Reviewer\Result\ResultInterface;
use Drupal\reviewer\Reviewer\Task\FixableInterface;
/**
* Task for testing the Reviewer UI.
*/
#[Task(id: 'field_label_not_hidden_test_task')]
final class TestFieldLabelNotHiddenTask extends TestBaseTask implements FixableInterface {
/**
* {@inheritdoc}
*/
public function check(): ResultInterface {
$results = $this->createCollection();
foreach ($this->getDisplays() as $display) {
foreach ($display->getComponents() as $field => $settings) {
if (isset($settings['label'])) {
$results->add($this->createCheckResult(
$settings['label'] === 'hidden',
"Field label for $field in view mode {$display->getMode()} is hidden.",
"Field label for $field in view mode {$display->getMode()} is not hidden.",
"{$display->getMode()}.$field",
));
}
}
}
return $results;
}
/**
* {@inheritdoc}
*/
public function fix(): ResultInterface {
foreach ($this->getDisplays() as $display) {
$updated = FALSE;
foreach ($display->getComponents() as $field => $settings) {
if (
isset($settings['label'])
&& $settings['label'] !== 'hidden'
) {
$settings['label'] = 'hidden';
$display->setComponent($field, $settings);
$updated = TRUE;
}
}
if ($updated) {
$display->save();
}
}
return $this->createFixResult(
$this->check()->getStatus(),
"Fixed all non-hidden field labels.",
"Failed to fix non-hidden field labels.",
);
}
}
