a12s-1.0.0-beta7/modules/page_context/src/Controller/PageContextFormController.php

modules/page_context/src/Controller/PageContextFormController.php
<?php

namespace Drupal\a12s_page_context\Controller;

use Drupal\a12s_page_context\PageContextManagerInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Render\Markup;
use Drupal\Core\Url;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Defines a controller for "Page Context Form" entities.
 */
class PageContextFormController extends ControllerBase {

  /**
   * Construct a new PageContextFormController instance.
   *
   * @param \Drupal\a12s_page_context\PageContextManagerInterface $pageContextManager
   *   The Page Context Form manager.
   */
  public function __construct(protected PageContextManagerInterface $pageContextManager) {}

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container): static {
    return new static(
      $container->get('a12s_page_context.manager')
    );
  }

  /**
   * Provides the listing page for any entity type.
   *
   * @return array
   *   A render array as expected by
   *   \Drupal\Core\Render\RendererInterface::render().
   */
  public function pathsOverview(): array {
    $table = [
      '#theme' => 'table',
      '#header' => [
        $this->t('Key'),
        $this->t('Paths'),
        $this->t('Negate condition'),
        $this->t('Actions'),
      ],
      '#empty' => $this->t('There is currently no paths with custom values.'),
    ];

    foreach ($this->pageContextManager->getPaths() as $value) {
      $row = [];
      $row[] = $value['key'];
      $row[] = Markup::create(!empty($value['settings']['pages']) ? preg_replace('/[\r\n]+/', '<br />', $value['settings']['pages']) : '');
      $row[] = !empty($value['settings']['negate']) ? $this->t('Yes') : $this->t('No');
      $row[] = [
        'data' => [
          '#type' => 'dropbutton',
          '#dropbutton_type' => 'small',
          '#links' => [
            'edit' => [
              'title' => $this->t('Edit'),
              'url' => Url::fromRoute('entity.a12s_page_context_form.path_edit_form', [
                'path_key' => $value['key'],
              ]),
            ],
            'delete' => [
              'title' => $this->t('Delete'),
              'url' => Url::fromRoute('entity.a12s_page_context_form.path_delete_form', [
                'path_key' => $value['key'],
              ]),
            ],
          ],
        ],

      ];
      $table['#rows'][] = $row;
    }

    return $table;
  }

}

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

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