whitelabel-8.x-2.x-dev/src/ContextProvider/CurrentWhiteLabelContext.php
src/ContextProvider/CurrentWhiteLabelContext.php
<?php
namespace Drupal\whitelabel\ContextProvider;
use Drupal\Core\Plugin\Context\Context;
use Drupal\Core\Plugin\Context\ContextProviderInterface;
use Drupal\Core\Plugin\Context\EntityContext;
use Drupal\Core\Plugin\Context\EntityContextDefinition;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\whitelabel\WhiteLabelProviderInterface;
/**
* Sets the current white label as a context.
*/
class CurrentWhiteLabelContext implements ContextProviderInterface {
use StringTranslationTrait;
/**
* The current white label.
*
* @var \Drupal\whitelabel\WhiteLabelProviderInterface
*/
protected $whiteLabelProvider;
/**
* CurrentWhiteLabelContext constructor.
*
* @param \Drupal\whitelabel\WhiteLabelProviderInterface $white_label_provider
* The white label provider.
*/
public function __construct(WhiteLabelProviderInterface $white_label_provider) {
$this->whiteLabelProvider = $white_label_provider;
}
/**
* {@inheritdoc}
*/
public function getRuntimeContexts(array $unqualified_context_ids) {
$result = [];
$context_definition = EntityContextDefinition::create('whitelabel')->setRequired(FALSE);
$white_label = $this->whiteLabelProvider->getWhiteLabel();
$context = new Context($context_definition, $white_label);
if ($white_label) {
$context->addCacheableDependency($white_label);
}
$result['whitelabel'] = $context;
return $result;
}
/**
* {@inheritdoc}
*/
public function getAvailableContexts() {
$context = EntityContext::fromEntityTypeId('whitelabel', $this->t('Active white label'));
return ['whitelabel' => $context];
}
}
