Same name and namespace in other branches
- 8.x-1.x src/GalleryIdHelper.php \Drupal\colorbox\GalleryIdHelper 1 commentaire
Implementation of GalleryIdHelper.
@package Drupal\colorbox
Hierarchy
- class \Drupal\colorbox\GalleryIdHelper
Expanded class hierarchy of GalleryIdHelper
1 string reference to 'GalleryIdHelper'
1 service uses GalleryIdHelper
Fichier
-
src/
GalleryIdHelper.php, line 16
Namespace
Drupal\colorboxView source
class GalleryIdHelper {
/**
* The Gallery Token.
*
* @var null
*/
protected $galleryToken = NULL;
/**
* The Configuration Factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $configFactory;
/**
* The Token.
*
* @var \Drupal\Core\Utility\Token
*/
protected $token;
/**
* GalleryIdHelper constructor.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
* The Configuration Factory.
* @param \Drupal\Core\Utility\Token $token
* The Token.
*/
public function __construct(ConfigFactoryInterface $configFactory, Token $token) {
$this->configFactory = $configFactory;
$this->token = $token;
}
/**
* Generate ID.
*
* @param \Drupal\Core\Entity\ContentEntityInterface $entity
* The Entity.
* @param \Drupal\Core\Field\FieldItemInterface $item
* The Item.
* @param array $settings
* The Settings.
*
* @return string
* Return string.
*/
public function generateId(ContentEntityInterface $entity, FieldItemInterface $item, array $settings) {
$entity_bundle = $entity->bundle();
$entity_type = $entity->getEntityTypeId();
$config = $this->configFactory
->get('colorbox.settings');
// Build the gallery id.
$id = $entity->id();
$entity_id = !empty($id) ? $entity_bundle . '-' . $id : 'entity-id';
$field_name = $item->getParent()
->getName();
switch ($settings['colorbox_gallery']) {
case 'post':
$gallery_id = 'gallery-' . $entity_id;
break;
case 'page':
$gallery_id = 'gallery-all';
break;
case 'field_post':
$gallery_id = 'gallery-' . $entity_id . '-' . $field_name;
break;
case 'field_page':
$gallery_id = 'gallery-' . $field_name;
break;
case 'custom':
$gallery_id = $this->token
->replace($settings['colorbox_gallery_custom'], [
$entity_type => $entity,
'file' => $item,
], [
'clear' => TRUE,
]);
break;
default:
$gallery_id = '';
}
// If gallery id is not empty add unique per-request token to avoid.
// images being added manually to galleries.
if (!empty($gallery_id) && $config->get('advanced.unique_token')) {
// Check if gallery token has already been set, we need to reuse.
// the token for the whole request.
if (is_null($this->galleryToken)) {
// We use a short token since randomness is not critical.
$this->galleryToken = Crypt::randomBytesBase64(8);
}
$gallery_id = $gallery_id . '-' . $this->galleryToken;
}
return $gallery_id;
}
}
Members
Titre Trier par ordre décroissant | Modifiers | Object type | Résumé |
---|---|---|---|
GalleryIdHelper::$configFactory | protected | property | The Configuration Factory. |
GalleryIdHelper::$galleryToken | protected | property | The Gallery Token. |
GalleryIdHelper::$token | protected | property | The Token. |
GalleryIdHelper::generateId | public | function | Generate ID. |
GalleryIdHelper::__construct | public | function | GalleryIdHelper constructor. |