commerce_product_bundles-8.x-1.0/src/Controller/ProductBundleVariationController.php
src/Controller/ProductBundleVariationController.php
<?php
namespace Drupal\commerce_product_bundles\Controller;
use Drupal\Core\Entity\EntityRepositoryInterface;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\StringTranslation\TranslationInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Provides title callbacks for Product Bundle Variation routes.
*
* Code was taken and modified from:
* @see \Drupal\commerce_product\Controller\ProductVariationController
*/
class ProductBundleVariationController implements ContainerInjectionInterface {
use StringTranslationTrait;
/**
* The entity repository.
*
* @var \Drupal\Core\Entity\EntityRepositoryInterface
*/
protected $entityRepository;
/**
* ProductBundleVariationController constructor.
*
* @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
*/
public function __construct(EntityRepositoryInterface $entity_repository, TranslationInterface $string_translation) {
$this->entityRepository = $entity_repository;
$this->stringTranslation = $string_translation;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('entity.repository'),
$container->get('string_translation')
);
}
/**
* Provides the add title callback for Product Bundle Variations.
*
* @return string
* The title for the Product Bundle Variation add page.
*/
public function addTitle() {
return $this->t('Add bundle variation');
}
/**
* Provides the edit title callback for Product Bundle Variations.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $route_match
* The route match.
*
* @return string
* The title for the Product Bundle Variation edit page.
*/
public function editTitle(RouteMatchInterface $route_match) {
$product_bundle_variation = $route_match->getParameter('commerce_bundle_variation');
$product_bundle_variation = $this->entityRepository->getTranslationFromContext($product_bundle_variation);
return $this->t('Edit %label', ['%label' => $product_bundle_variation->label()]);
}
/**
* Provides the delete title callback for Product Bundle Variations.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $route_match
* The route match.
*
* @return string
* The title for the Product Bundle Variation delete page.
*/
public function deleteTitle(RouteMatchInterface $route_match) {
$product_bundle_variation = $route_match->getParameter('commerce_bundle_variation');
$product_bundle_variation = $this->entityRepository->getTranslationFromContext($product_bundle_variation);
return $this->t('Delete %label', ['%label' => $product_bundle_variation->label()]);
}
/**
* Provides the collection title callback for Product Bundle Variations.
*
* @return string
* The title for the Product Bundle Variation collection.
*/
public function collectionTitle() {
// Note that ProductVariationListBuilder::getForm() overrides the page
// title. The title defined here is used only for the breadcrumb.
return $this->t('Bundle Variations');
}
}
