class StatusProperties in Select 2 8
Additional callbacks to render the status properties.
Hierarchy
- class \Drupal\select2_publish\Element\StatusProperties implements TrustedCallbackInterface
Expanded class hierarchy of StatusProperties
1 file declares its use of StatusProperties
- select2_publish.module in modules/
select2_publish/ select2_publish.module - This is the select2_publish module.
File
- modules/
select2_publish/ src/ Element/ StatusProperties.php, line 11
Namespace
Drupal\select2_publish\ElementView source
class StatusProperties implements TrustedCallbackInterface {
/**
* {@inheritdoc}
*/
public static function trustedCallbacks() {
return [
'preRender',
];
}
/**
* Attach status properties to the render element.
*
* @param array $element
* The select2 render element.
*
* @return mixed
* The select2 render element.
*
* @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
* @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
*/
public static function preRender(array $element) {
if ($element['#target_type']) {
$entity_manager = \Drupal::entityTypeManager();
$entity_definition = $entity_manager
->getDefinition($element['#target_type']);
if (!$entity_definition
->entityClassImplements(EntityPublishedInterface::class)) {
return $element;
}
$entity_storage = $entity_manager
->getStorage($element['#target_type']);
/** @var \Drupal\Core\Entity\EntityPublishedInterface $entity */
foreach ($entity_storage
->loadMultiple(array_keys($element['#options'])) as $id => $entity) {
$element['#options_attributes'][$id]['data-published'] = $entity
->isPublished() ? 'true' : 'false';
}
$default_status = 'true';
if ($element['#autocreate']) {
/** @var \Drupal\Core\Entity\EntityPublishedInterface $entity */
$entity = $entity_storage
->create([
$entity_definition
->getKey('bundle') => $element['#autocreate']['bundle'],
]);
$default_status = $entity
->isPublished() ? 'true' : 'false';
}
$element['#attached']['library'][] = 'select2_publish/select2.publish';
$element['#attributes']['data-select2-publish-default'] = $default_status;
}
return $element;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
StatusProperties:: |
public static | function | Attach status properties to the render element. | |
StatusProperties:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
|
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |