Repository URL to install this package:
|
Version:
1.3.3 ▾
|
<?php
namespace Drupal\custom_forms_states\Controller;
use Drupal\Core\Entity\Controller\EntityController;
use Drupal\Core\Entity\EntityRepositoryInterface;
use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Render\RendererInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Routing\UrlGeneratorInterface;
use Drupal\Core\StringTranslation\TranslationInterface;
use Drupal\custom_forms\CustomFormItem;
use Drupal\custom_forms\CustomFormItemFactory;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Class TitleController
*
* @package Drupal\custom_forms_states\Controller
*/
class TitleController extends EntityController {
/**
* The factory in charge of CRUD operations for custom form items.
*
* @var \Drupal\custom_forms\CustomFormItemFactory
*/
protected $itemFactory;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('entity_type.manager'),
$container->get('entity_type.bundle.info'),
$container->get('entity.repository'),
$container->get('renderer'),
$container->get('string_translation'),
$container->get('url_generator'),
$container->get('custom_forms.factory.item')
);
}
/**
* {@inheritdoc}
*/
public function __construct(
EntityTypeManagerInterface $entity_type_manager,
EntityTypeBundleInfoInterface $entity_type_bundle_info,
EntityRepositoryInterface $entity_repository,
RendererInterface $renderer,
TranslationInterface $string_translation,
UrlGeneratorInterface $url_generator,
CustomFormItemFactory $item_factory
) {
parent::__construct($entity_type_manager, $entity_type_bundle_info, $entity_repository, $renderer, $string_translation, $url_generator);
$this->itemFactory = $item_factory;
}
/**
* Provides a generic states title callback.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $route_match
* The route match.
*
* @return string
* The title for the entity fields page.
*/
public function itemStatesTitle(RouteMatchInterface $route_match) {
if ($id = $route_match->getParameter('item')) {
/** @var \Drupal\custom_forms\CustomFormItem $field */
$field = $this->itemFactory->loadItem($id);
return $this->t('States for %entity-label', ['%entity-label' => $field->getSetting('label')]);
}
}
}