gradient_server-1.0.x-dev/modules/source/src/Controller/AddFeed.php

modules/source/src/Controller/AddFeed.php
<?php

namespace Drupal\source\Controller;

use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Entity\EntityFormBuilder;
use Drupal\feeds\Entity\FeedType;
use Drupal\feeds\Entity\Feed;
use Drupal\source\Entity\Source;
use Drupal\Core\StringTranslation\TranslatableMarkup;

/**
 * The AddFeed route controller.
 */
class AddFeed extends ControllerBase {

  /**
   * The entity form builder service.
   *
   * @var \Drupal\Core\Entity\EntityFormBuilder
   */
  protected $builder;

  /**
   * Constructs a controller object.
   *
   * @param \Drupal\Core\Entity\EntityFormBuilder $entity_form_builder
   *   The entity form builder service.
   */
  public function __construct(EntityFormBuilder $entity_form_builder) {
    $this->builder = $entity_form_builder;
  }

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

  /**
   * Creates the bySource form for the feed.
   */
  public function bySource(FeedType $feed_type, Source $source) {
    $feed = Feed::create([
      'type' => $feed_type->id(),
      'source_entity' => $source,
    ]);
    $form = $this->builder->getForm($feed, 'default');

    $form['source_entity']['#attributes']['class'][] = 'visually-hidden';
    return $form;
  }

  /**
   * Title callback for the bySource route.
   */
  public function bySourceTitle(FeedType $feed_type, Source $source) {
    return new TranslatableMarkup('Add a new <strong>@type</strong> to source <strong>@source</strong>', [
      '@type' => $feed_type->label(),
      '@source' => $source->label(),
    ]);
  }

}

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

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