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

}

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

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