class Loader in Bamboo Twig 8.5
Same name and namespace in other branches
- 8.2 bamboo_twig_loader/src/TwigExtension/Loader.php \Drupal\bamboo_twig_loader\TwigExtension\Loader
- 8.3 bamboo_twig_loader/src/TwigExtension/Loader.php \Drupal\bamboo_twig_loader\TwigExtension\Loader
- 8.4 bamboo_twig_loader/src/TwigExtension/Loader.php \Drupal\bamboo_twig_loader\TwigExtension\Loader
Provides some loaders as Twig Extensions.
Hierarchy
- class \Drupal\bamboo_twig\TwigExtension\TwigExtensionBase extends \Drupal\bamboo_twig\TwigExtension\Twig_Extension uses \Symfony\Component\DependencyInjection\ContainerAwareTrait
- class \Drupal\bamboo_twig_loader\TwigExtension\Loader
Expanded class hierarchy of Loader
1 string reference to 'Loader'
- bamboo_twig_loader.services.yml in bamboo_twig_loader/
bamboo_twig_loader.services.yml - bamboo_twig_loader/bamboo_twig_loader.services.yml
1 service uses Loader
File
- bamboo_twig_loader/
src/ TwigExtension/ Loader.php, line 11
Namespace
Drupal\bamboo_twig_loader\TwigExtensionView source
class Loader extends TwigExtensionBase {
/**
* {@inheritdoc}
*/
public function getFunctions() {
return [
new TwigFunction('bamboo_load_entity', [
$this,
'loadEntity',
]),
new TwigFunction('bamboo_load_field', [
$this,
'loadField',
]),
new TwigFunction('bamboo_load_currentuser', [
$this,
'loadCurrentUser',
]),
new TwigFunction('bamboo_load_image', [
$this,
'loadImage',
]),
];
}
/**
* Unique identifier for this Twig extension.
*/
public function getName() {
return 'bamboo_twig_loader.twig.loader';
}
/**
* Returns an entity object in the current context language.
*
* Keep in mind languages loading priorities:
* 1. Get the entity in the current page lang,
* 2. When not found, try to fetch the entity in the default site lang,
* 3. When not found in 2 previous attempts, fetch the original entity lang.
*
* @param string $entity_type
* The entity type.
* @param mixed $id
* (optional) The ID of the entity to load.
* @param string $langcode
* (optional) For which language the entity should be rendered, defaults to
* the current content language.
*
* @return null|Drupal\Core\Entity\EntityInterface
* An entity object for the entity or NULL if the entity does not exist.
*/
public function loadEntity($entity_type, $id = NULL, $langcode = NULL) {
$entityRepository = $this
->getEntityRepository();
$entity = $id ? $this
->getEntityTypeManager()
->getStorage($entity_type)
->load($id) : $this
->getCurrentRouteMatch()
->getParameter($entity_type);
if (!$entity) {
return NULL;
}
// Get the entity in the current context language.
return $entityRepository
->getTranslationFromContext($entity, $langcode);
}
/**
* Returns the field object for a single entity field.
*
* @param string $field_name
* The field name.
* @param string $entity_type
* The entity type.
* @param mixed $id
* (optional) The ID of the entity to render.
* @param string $langcode
* (optional) Language code to load translation.
*
* @return null|Drupal\Core\Field\FieldItemListInterface
* A field object for the entity or NULL if the value does not exist.
*/
public function loadField($field_name, $entity_type, $id = NULL, $langcode = NULL) {
// Load the entity view using the current content language.
if (!$langcode) {
$langcode = $this
->getLanguageManager()
->getCurrentLanguage()
->getId();
}
$entity = $this
->loadEntity($entity_type, $id, $langcode);
if (!$entity) {
return NULL;
}
// Ensure the entity has the requested field.
if (!$entity
->hasField($field_name)) {
return NULL;
}
// Do not continue if the field is empty.
if ($entity
->get($field_name)
->isEmpty()) {
return NULL;
}
if (isset($entity->{$field_name})) {
return $entity->{$field_name};
}
return NULL;
}
/**
* Return the current user object.
*
* @return \Drupal\user\Entity\User|null
* The current user object or NULL when anonymous.
*/
public function loadCurrentUser() {
$currentUser = $this
->getCurrentUser();
if ($currentUser
->isAnonymous()) {
return NULL;
}
return $this
->getUserStorage()
->load($currentUser
->id());
}
/**
* Load a ImageInterface object for an original image path or URI.
*
* @param string $path
* The path or URI to the original image.
*
* @return \Drupal\Core\Image\ImageInterface
* An Image object.
*/
public function loadImage($path) {
return $this
->getImageFactory()
->get($path);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Loader:: |
public | function | ||
Loader:: |
public | function |
Unique identifier for this Twig extension. Overrides TwigExtensionBase:: |
|
Loader:: |
public | function | Return the current user object. | |
Loader:: |
public | function | Returns an entity object in the current context language. | |
Loader:: |
public | function | Returns the field object for a single entity field. | |
Loader:: |
public | function | Load a ImageInterface object for an original image path or URI. | |
TwigExtensionBase:: |
protected | function | Return the block storage. | |
TwigExtensionBase:: |
protected | function | Provides an interface for a configuration object factory. | |
TwigExtensionBase:: |
protected | function | Return the current route match. | |
TwigExtensionBase:: |
protected | function | Lazy loading for the Drupal current user account proxy. | |
TwigExtensionBase:: |
protected | function | Provides a service to handle various date related functionality. | |
TwigExtensionBase:: |
protected | function | Lazy loading for the Drupal entity repository. | |
TwigExtensionBase:: |
protected | function | Lazy loading for the Drupal entity type manager. | |
TwigExtensionBase:: |
protected | function | Return a singleton mime type to file extension guesser. | |
TwigExtensionBase:: |
protected | function | Return the factory for image objects. | |
TwigExtensionBase:: |
protected | function | Return the file storage. | |
TwigExtensionBase:: |
protected | function | Provides helpers to operate on files and stream wrappers. | |
TwigExtensionBase:: |
protected | function | Provides an interface for form building and processing. | |
TwigExtensionBase:: |
protected | function | Return the factory for image objects. | |
TwigExtensionBase:: |
protected | function | Provides an interface defining an image style. | |
TwigExtensionBase:: |
protected | function | Returns the language manager service. | |
TwigExtensionBase:: |
protected | function | Interface for loading, transforming and rendering menu link trees. | |
TwigExtensionBase:: |
protected | function | Manages discovery and instantiation of block plugins. | |
TwigExtensionBase:: |
protected | function | Read only settings singleton. | |
TwigExtensionBase:: |
protected | function | The state storage service. | |
TwigExtensionBase:: |
protected | function | Provides a StreamWrapper manager. | |
TwigExtensionBase:: |
protected | function | Return the token service. | |
TwigExtensionBase:: |
protected | function | Return the user storage. |