Pathauto and dependencies
This commit is contained in:
parent
4b1a293d57
commit
24ffcb956b
257 changed files with 29510 additions and 0 deletions
82
web/modules/contrib/token/src/TokenEntityMapper.php
Normal file
82
web/modules/contrib/token/src/TokenEntityMapper.php
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\token;
|
||||
|
||||
use Drupal\Core\Entity\EntityTypeManagerInterface;
|
||||
use Drupal\Core\Extension\ModuleHandlerInterface;
|
||||
|
||||
/**
|
||||
* Service to provide mappings between entity and token types.
|
||||
*
|
||||
* Why do we need this? Because when the token API was moved to core we did not
|
||||
* reuse the entity type as the base name for taxonomy terms and vocabulary
|
||||
* tokens.
|
||||
*/
|
||||
class TokenEntityMapper implements TokenEntityMapperInterface {
|
||||
|
||||
/**
|
||||
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
|
||||
*/
|
||||
protected $entityTypeManager;
|
||||
|
||||
/**
|
||||
* @var \Drupal\Core\Extension\ModuleHandlerInterface
|
||||
*/
|
||||
protected $moduleHandler;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $entityMappings;
|
||||
|
||||
public function __construct(EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler) {
|
||||
$this->entityTypeManager = $entity_type_manager;
|
||||
$this->moduleHandler = $module_handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getEntityTypeMappings() {
|
||||
if (empty($this->entityMappings)) {
|
||||
foreach ($this->entityTypeManager->getDefinitions() as $entity_type => $info) {
|
||||
$this->entityMappings[$entity_type] = $info->get('token_type') ?: $entity_type;
|
||||
}
|
||||
// Allow modules to alter the mapping array.
|
||||
$this->moduleHandler->alter('token_entity_mapping', $this->entityMappings);
|
||||
}
|
||||
|
||||
return $this->entityMappings;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
function getEntityTypeForTokenType($token_type, $fallback = FALSE) {
|
||||
if (empty($this->entityMappings)) {
|
||||
$this->getEntityTypeMappings();
|
||||
}
|
||||
|
||||
$return = array_search($token_type, $this->entityMappings);
|
||||
return $return !== FALSE ? $return : ($fallback ? $token_type : FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
function getTokenTypeForEntityType($entity_type, $fallback = FALSE) {
|
||||
if (empty($this->entityMappings)) {
|
||||
$this->getEntityTypeMappings();
|
||||
}
|
||||
|
||||
return isset($this->entityMappings[$entity_type]) ? $this->entityMappings[$entity_type] : ($fallback ? $entity_type : FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function resetInfo() {
|
||||
$this->entityMappings = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in a new issue