19 declare(strict_types=1);
45 $tpl = $this->
getTemplate(
'tpl.popover.html',
true,
true);
46 $tpl->setVariable(
'FORCE_RENDERING',
'');
56 'title' => $this->
escape($component->getTitle()),
57 'placement' => $component->getPosition(),
59 'template' => str_replace(array_keys($replacement), array_values($replacement), $tpl->get()),
62 if ($component->isFixedPosition()) {
63 $options[
'style'] =
"fixed";
66 $is_async = $component->getAsyncContentUrl();
68 $options[
'type'] =
'async';
69 $options[
'url'] = $component->getAsyncContentUrl();
72 $show = $component->getShowSignal();
73 $replace = $component->getReplaceContentSignal();
75 $component = $component->withAdditionalOnLoadCode(
function (
$id) use ($options, $show, $replace, $is_async) {
77 $options[
"url"] =
"#$id";
79 $options = json_encode($options);
82 "$(document).on('$show', function(event, signalData) { 83 il.UI.popover.showFromSignal(signalData, JSON.parse('$options')); 85 "$(document).on('$replace', function(event, signalData) { 86 il.UI.popover.replaceContentFromSignal('$show', signalData); 92 if ($component->getAsyncContentUrl()) {
110 parent::registerResources($registry);
111 $registry->
register(
'assets/js/jquery.webui-popover.min.js');
112 $registry->
register(
'assets/js/popover.js');
120 $tpl = $this->
getTemplate(
'tpl.standard-popover-content.html',
true,
true);
121 $tpl->setVariable(
'ID', $id);
122 $tpl->setVariable(
'CONTENT', $default_renderer->render($popover->getContent()));
132 $tpl = $this->
getTemplate(
'tpl.listing-popover-content.html',
true,
true);
133 $tpl->setVariable(
'ID', $id);
134 foreach ($popover->getItems() as $item) {
135 $tpl->setCurrentBlock(
'item');
136 $tpl->setVariable(
'ITEM', $default_renderer->render($item));
137 $tpl->parseCurrentBlock();
143 protected function escape(
string $str): string
145 return strip_tags(htmlentities($str, ENT_QUOTES,
'UTF-8'));
Registry for resources required by rendered output like Javascript or CSS.
render(Component\Component $component, RendererInterface $default_renderer)
getTemplate(string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get template of component this renderer is made for.
renderListingPopover(Component\Popover\Listing $popover, RendererInterface $default_renderer, string $id)
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
renderStandardPopover(Component\Popover\Standard $popover, RendererInterface $default_renderer, string $id)
register(string $name)
Add a dependency.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
registerResources(ResourceRegistry $registry)
Announce resources this renderer requires.
Base class for all component renderers.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.