Mercurial > hg > isophonics-drupal-site
comparison core/modules/contextual/src/Element/ContextualLinksPlaceholder.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\contextual\Element; | |
4 | |
5 use Drupal\Core\Template\Attribute; | |
6 use Drupal\Core\Render\Element\RenderElement; | |
7 use Drupal\Component\Utility\SafeMarkup; | |
8 | |
9 /** | |
10 * Provides a contextual_links_placeholder element. | |
11 * | |
12 * @RenderElement("contextual_links_placeholder") | |
13 */ | |
14 class ContextualLinksPlaceholder extends RenderElement { | |
15 | |
16 /** | |
17 * {@inheritdoc} | |
18 */ | |
19 public function getInfo() { | |
20 $class = get_class($this); | |
21 return [ | |
22 '#pre_render' => [ | |
23 [$class, 'preRenderPlaceholder'], | |
24 ], | |
25 '#id' => NULL, | |
26 ]; | |
27 } | |
28 | |
29 /** | |
30 * Pre-render callback: Renders a contextual links placeholder into #markup. | |
31 * | |
32 * Renders an empty (hence invisible) placeholder div with a data-attribute | |
33 * that contains an identifier ("contextual id"), which allows the JavaScript | |
34 * of the drupal.contextual-links library to dynamically render contextual | |
35 * links. | |
36 * | |
37 * @param array $element | |
38 * A structured array with #id containing a "contextual id". | |
39 * | |
40 * @return array | |
41 * The passed-in element with a contextual link placeholder in '#markup'. | |
42 * | |
43 * @see _contextual_links_to_id() | |
44 */ | |
45 public static function preRenderPlaceholder(array $element) { | |
46 $element['#markup'] = SafeMarkup::format('<div@attributes></div>', ['@attributes' => new Attribute(['data-contextual-id' => $element['#id']])]); | |
47 | |
48 return $element; | |
49 } | |
50 | |
51 } |