ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\UI\Implementation\Render\AbstractComponentRenderer Class Reference

Base class for all component renderers. More...

+ Inheritance diagram for ILIAS\UI\Implementation\Render\AbstractComponentRenderer:
+ Collaboration diagram for ILIAS\UI\Implementation\Render\AbstractComponentRenderer:

Public Member Functions

 __construct (private FactoryInternal $ui_factory, private TemplateFactory $tpl_factory, private Language $lng, private JavaScriptBinding $js_binding, private ImagePathResolver $image_path_resolver, private DataFactory $data_factory, private HelpTextRetriever $help_text_retriever, private UploadLimitResolver $upload_limit_resolver,)
 
 registerResources (ResourceRegistry $registry)
 Announce resources this renderer requires. More...
 
 txt (string $id)
 Get a text from the language file. More...
 
 toJS ($key)
 Add language var to client side (il.Language) More...
 
 getLangKey ()
 Get current language key. More...
 
 getImagePathResolver ()
 
 getHelpText (Help\Purpose $purpose, Help\Topic ... $topics)
 
 getComponentCanonicalNameAttribute (Component $component)
 
- Public Member Functions inherited from ILIAS\UI\Implementation\Render\ComponentRenderer
 render (Component $component, Renderer $default_renderer)
 Render the component if possible and delegate additional rendering to the default_renderer. More...
 
 registerResources (ResourceRegistry $registry)
 Announce resources this renderer requires. More...
 
- Public Member Functions inherited from ILIAS\UI\HelpTextRetriever
 getHelpText (Help\Purpose $purpose, Help\Topic ... $topics)
 Try to find according help texts for the purpose an topics. More...
 

Protected Member Functions

 getUIFactory ()
 Get a UI factory. More...
 
 getDataFactory ()
 
 getUploadLimitResolver ()
 
 getJavascriptBinding ()
 
 getTemplate (string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
 Get template of component this renderer is made for. More...
 
 getTemplatePath (string $name)
 Get the path to the template of this component. More...
 
 bindJavaScript (JavaScriptBindable $component)
 Bind the component to JavaScript. More...
 
 createId ()
 Get a fresh unique id. More...
 
 cannotHandleComponent (Component $component)
 This method MUST be called by derived component renderers, if. More...
 
 getTooltipRenderer ()
 
 convertSpecialCharacters (string $value)
 

Protected Attributes

TooltipRenderer $tooltip_renderer = null
 

Private Member Functions

 getTemplateRaw (string $path, bool $purge_unfilled_vars, bool $purge_unused_blocks)
 Get a template from any path. More...
 
 bindOnloadCode (JavaScriptBindable $component)
 Bind the JavaScript onload-code. More...
 
 addTriggererOnLoadCode (Triggerer $triggerer)
 Add onload-code for triggerer. More...
 
 getMyComponent ()
 

Static Private Attributes

static array $component_storage
 

Detailed Description

Base class for all component renderers.

Offers some convenience methods for renderes, users only needs to implement ComponentRenderer::render. Assumes that there is no special resource the component requires.

Definition at line 43 of file AbstractComponentRenderer.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::__construct ( private FactoryInternal  $ui_factory,
private TemplateFactory  $tpl_factory,
private Language  $lng,
private JavaScriptBinding  $js_binding,
private ImagePathResolver  $image_path_resolver,
private DataFactory  $data_factory,
private HelpTextRetriever  $help_text_retriever,
private UploadLimitResolver  $upload_limit_resolver 
)
final

Definition at line 47 of file AbstractComponentRenderer.php.

56 {
57 }

Member Function Documentation

◆ addTriggererOnLoadCode()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::addTriggererOnLoadCode ( Triggerer  $triggerer)
private

Add onload-code for triggerer.

Definition at line 204 of file AbstractComponentRenderer.php.

205 {
206 $triggered_signals = $triggerer->getTriggeredSignals();
207 if (count($triggered_signals) == 0) {
208 return $triggerer;
209 }
210 return $triggerer->withAdditionalOnLoadCode(function ($id) use ($triggered_signals): string {
211 $code = "";
212 foreach ($triggered_signals as $triggered_signal) {
213 $signal = $triggered_signal->getSignal();
214 $event = $triggered_signal->getEvent();
215 $options = json_encode($signal->getOptions());
216 //Note this switch is necessary since $(#...).on('load', ...) could be fired before the binding of the event.
217 //Same seems true fro ready, see: #27456
218 if ($event == 'load' || $event == 'ready') {
219 $code .=
220 "$(document).trigger('$signal',
221 {
222 'id' : '$signal', 'event' : '$event',
223 'triggerer' : $('#$id'),
224 'options' : JSON.parse('$options')
225 }
226 );";
227 } else {
228 $code .=
229 "$('#$id').on('$event', function(event) {
230 $(this).trigger('$signal',
231 {
232 'id' : '$signal', 'event' : '$event',
233 'triggerer' : $(this),
234 'options' : JSON.parse('$options')
235 }
236 );
237 return false;
238 });";
239 }
240 }
241 return $code;
242 });
243 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
Interface to be extended by components that have the possibility to bind to Javascript.
withAdditionalOnLoadCode(Closure $binder)
Add some onload-code to the component instead of replacing the existing one.
getTriggeredSignals()
Get all triggered signals of this component.

References $id, ILIAS\UI\Component\Triggerer\getTriggeredSignals(), and ILIAS\UI\Component\JavaScriptBindable\withAdditionalOnLoadCode().

Referenced by ILIAS\UI\Implementation\Render\AbstractComponentRenderer\bindJavaScript().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bindJavaScript()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::bindJavaScript ( JavaScriptBindable  $component)
finalprotected

Bind the component to JavaScript.

ATTENTION: If this returns an id, the returned id has to be included as id-attribute into the HTML of your component.

Definition at line 154 of file AbstractComponentRenderer.php.

154 : ?string
155 {
156 if ($component instanceof Triggerer) {
157 $component = $this->addTriggererOnLoadCode($component);
158 }
159 return $this->bindOnloadCode($component);
160 }
addTriggererOnLoadCode(Triggerer $triggerer)
Add onload-code for triggerer.
bindOnloadCode(JavaScriptBindable $component)
Bind the JavaScript onload-code.

References ILIAS\UI\Implementation\Render\AbstractComponentRenderer\addTriggererOnLoadCode(), and ILIAS\UI\Implementation\Render\AbstractComponentRenderer\bindOnloadCode().

Referenced by ILIAS\UI\Implementation\Component\Dropzone\File\Renderer\bindAndApplyJavaScript(), ILIAS\UI\Implementation\Component\Button\Renderer\maybeRenderId(), ILIAS\UI\Implementation\Component\Symbol\Glyph\GlyphNonAbstractRendererWithJS\render(), ILIAS\UI\Implementation\Component\Card\Renderer\render(), ILIAS\UI\Implementation\Component\Image\Renderer\render(), ILIAS\UI\Implementation\Component\Popover\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Glyph\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\render(), ILIAS\UI\Implementation\Component\Tree\Renderer\render(), ILIAS\UI\Implementation\Component\Modal\Renderer\renderAsync(), ILIAS\UI\Implementation\Component\Player\Renderer\renderAudio(), ILIAS\UI\Implementation\Component\Legacy\Renderer\renderContent(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderFieldSelection(), ILIAS\UI\Implementation\Component\Button\Renderer\renderMonth(), ILIAS\UI\Implementation\Component\Progress\Renderer\renderProgressBar(), ILIAS\UI\Implementation\Component\Prompt\Renderer\renderPrompt(), ILIAS\UI\Implementation\Component\Item\Renderer\renderShy(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderSortation(), ILIAS\UI\Implementation\Component\Input\Container\ViewControl\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Toast\Renderer\renderToast(), and ILIAS\UI\Implementation\Component\Input\Field\Renderer\wrapInFormContext().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bindOnloadCode()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::bindOnloadCode ( JavaScriptBindable  $component)
private

Bind the JavaScript onload-code.

Definition at line 182 of file AbstractComponentRenderer.php.

182 : ?string
183 {
184 $binder = $component->getOnLoadCode();
185 if ($binder === null) {
186 return null;
187 }
188
189 $id = $this->js_binding->createId();
190 $on_load_code = $binder($id);
191 if (!is_string($on_load_code)) {
192 throw new LogicException(
193 "Expected JavaScript binder to return string" .
194 " (used component: " . get_class($component) . ")"
195 );
196 }
197 $this->js_binding->addOnLoadCode($on_load_code);
198 return $id;
199 }
getOnLoadCode()
Get the currently bound on load code.

References $id, and ILIAS\UI\Component\JavaScriptBindable\getOnLoadCode().

Referenced by ILIAS\UI\Implementation\Render\AbstractComponentRenderer\bindJavaScript().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cannotHandleComponent()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::cannotHandleComponent ( Component  $component)
finalprotected

This method MUST be called by derived component renderers, if.

See also
ComponentRenderer::render() cannot handle the provided component.

Definition at line 249 of file AbstractComponentRenderer.php.

249 : never
250 {
251 throw new LogicException(
252 sprintf(
253 "%s could not render component %s",
254 static::class,
255 get_class($component)
256 )
257 );
258 }

Referenced by ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\render(), ILIAS\UI\Implementation\Component\Panel\Listing\Renderer\render(), ILIAS\UI\Implementation\Component\Panel\Secondary\Renderer\render(), ILIAS\UI\Implementation\Component\Item\Renderer\render(), ILIAS\UI\Implementation\Component\Listing\CharacteristicValue\Renderer\render(), ILIAS\UI\Implementation\Component\Progress\Renderer\render(), ILIAS\UI\Implementation\Component\Progress\State\Bar\Renderer\render(), ILIAS\UI\Implementation\Component\Dropzone\File\Renderer\render(), ILIAS\UI\Implementation\Component\Breadcrumbs\Renderer\render(), ILIAS\UI\Implementation\Component\Button\Renderer\render(), ILIAS\UI\Implementation\Component\Card\Renderer\render(), ILIAS\UI\Implementation\Component\Chart\Bar\Renderer\render(), ILIAS\UI\Implementation\Component\Chart\ProgressMeter\Renderer\render(), ILIAS\UI\Implementation\Component\Chart\Renderer\render(), ILIAS\UI\Implementation\Component\Counter\Renderer\render(), ILIAS\UI\Implementation\Component\Deck\Renderer\render(), ILIAS\UI\Implementation\Component\Divider\Renderer\render(), ILIAS\UI\Implementation\Component\Dropdown\Renderer\render(), ILIAS\UI\Implementation\Component\Entity\Renderer\render(), ILIAS\UI\Implementation\Component\Image\Renderer\render(), ILIAS\UI\Implementation\Component\Input\Container\Filter\Renderer\render(), ILIAS\UI\Implementation\Component\Input\Container\Form\FormWithoutSubmitButtonsContextRenderer\render(), ILIAS\UI\Implementation\Component\Input\Container\Form\Renderer\render(), ILIAS\UI\Implementation\Component\Input\Container\ViewControl\Renderer\render(), ILIAS\UI\Implementation\Component\Input\Field\FilterContextRenderer\render(), ILIAS\UI\Implementation\Component\Input\Field\Renderer\render(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\render(), ILIAS\UI\Implementation\Component\Launcher\Renderer\render(), ILIAS\UI\Implementation\Component\Layout\Alignment\Horizontal\Renderer\render(), ILIAS\UI\Implementation\Component\Layout\Alignment\Renderer\render(), ILIAS\UI\Implementation\Component\Layout\Page\Renderer\render(), ILIAS\UI\Implementation\Component\Legacy\Renderer\render(), ILIAS\UI\Implementation\Component\Link\Renderer\render(), ILIAS\UI\Implementation\Component\Listing\Entity\Renderer\render(), ILIAS\UI\Implementation\Component\Listing\Renderer\render(), ILIAS\UI\Implementation\Component\Listing\Workflow\Renderer\render(), ILIAS\UI\Implementation\Component\MainControls\Renderer\render(), ILIAS\UI\Implementation\Component\MainControls\Slate\Renderer\render(), ILIAS\UI\Implementation\Component\Menu\FieldContextRenderer\render(), ILIAS\UI\Implementation\Component\Menu\Renderer\render(), ILIAS\UI\Implementation\Component\MessageBox\PromptContextRenderer\render(), ILIAS\UI\Implementation\Component\MessageBox\Renderer\render(), ILIAS\UI\Implementation\Component\Modal\Renderer\render(), ILIAS\UI\Implementation\Component\Navigation\Sequence\Renderer\render(), ILIAS\UI\Implementation\Component\Panel\Renderer\render(), ILIAS\UI\Implementation\Component\Player\Renderer\render(), ILIAS\UI\Implementation\Component\Popover\Renderer\render(), ILIAS\UI\Implementation\Component\Prompt\Renderer\render(), ILIAS\UI\Implementation\Component\Prompt\State\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Glyph\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\render(), ILIAS\UI\Implementation\Component\Table\Renderer\render(), ILIAS\UI\Implementation\Component\Toast\Renderer\render(), ILIAS\UI\Implementation\Component\Tree\Renderer\render(), and ILIAS\UI\Implementation\Component\ViewControl\Renderer\render().

+ Here is the caller graph for this function:

◆ convertSpecialCharacters()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::convertSpecialCharacters ( string  $value)
protected

Definition at line 307 of file AbstractComponentRenderer.php.

307 : string
308 {
309 return htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'utf-8');
310 }

Referenced by ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\addNodeCharacteristics(), ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\render(), and ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\renderLabel().

+ Here is the caller graph for this function:

◆ createId()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::createId ( )
finalprotected

Get a fresh unique id.

ATTENTION: This does not take care about any usage scenario of the provided id. If you want to use it to bind JS-code to a component, you most probably would want to use bindJavaScript instead, which returns an id that is used to bind js to a component.

However, there are cases (e.g radio-input) where an id is required even if there is no javascript involved (e.g. to connect a label with an option), this is where this method could come in handy.

Definition at line 174 of file AbstractComponentRenderer.php.

174 : string
175 {
176 return $this->js_binding->createId();
177 }

Referenced by ILIAS\UI\Implementation\Component\Card\Renderer\render(), ILIAS\UI\Implementation\Component\Button\Renderer\renderButton(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderFieldSelection(), ILIAS\UI\Implementation\Component\Dropdown\Renderer\renderId(), ILIAS\UI\Implementation\Component\Progress\Renderer\renderProgressBar(), ILIAS\UI\Implementation\Component\Button\Renderer\renderToggle(), and ILIAS\UI\Implementation\Component\Input\Field\Renderer\wrapInFormContext().

+ Here is the caller graph for this function:

◆ getComponentCanonicalNameAttribute()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getComponentCanonicalNameAttribute ( Component  $component)

Definition at line 312 of file AbstractComponentRenderer.php.

312 : string
313 {
314 return str_replace(' ', '-', strtolower($component->getCanonicalName()));
315 }
getCanonicalName()
Get the canonical name of the component.

References ILIAS\UI\Component\Component\getCanonicalName().

+ Here is the call graph for this function:

◆ getDataFactory()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getDataFactory ( )
finalprotected

Definition at line 77 of file AbstractComponentRenderer.php.

77 : DataFactory
78 {
79 return $this->data_factory;
80 }

◆ getHelpText()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getHelpText ( Help\Purpose  $purpose,
Help\Topic ...  $topics 
)

Definition at line 286 of file AbstractComponentRenderer.php.

286 : array
287 {
288 return $this->help_text_retriever->getHelpText($purpose, ...$topics);
289 }

References ILIAS\GlobalScreen\Scope\$topics.

◆ getImagePathResolver()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getImagePathResolver ( )

Definition at line 281 of file AbstractComponentRenderer.php.

282 {
283 return $this->image_path_resolver;
284 }
Some Components need to resolve pathes to image-files.

Referenced by ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\getStandardIconPath().

+ Here is the caller graph for this function:

◆ getJavascriptBinding()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getJavascriptBinding ( )
finalprotected

Definition at line 112 of file AbstractComponentRenderer.php.

113 {
114 return $this->js_binding;
115 }
Provides methods to interface with javascript.

Referenced by ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderFieldSelection().

+ Here is the caller graph for this function:

◆ getLangKey()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getLangKey ( )

Get current language key.

Definition at line 107 of file AbstractComponentRenderer.php.

107 : string
108 {
109 return $this->lng->getLangKey();
110 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getMyComponent()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getMyComponent ( )
private
Returns
mixed

Definition at line 263 of file AbstractComponentRenderer.php.

264 {
265 $class = get_class($this);
266 if (isset(self::$component_storage[$class])) {
267 return self::$component_storage[$class];
268 }
269 $matches = array();
270 // Extract component
271 $re = "%ILIAS\\\\UI\\\\Implementation\\\\Component\\\\(\\w+)\\\\(\\w+)%";
272 preg_match($re, $class, $matches);
273 if (preg_match($re, $class, $matches) !== 1) {
274 throw new LogicException("The Renderer needs to be located in ILIAS\\UI\\Implementation\\Component\\*.");
275 }
276 self::$component_storage[$class] = $matches[1];
277
278 return self::$component_storage[$class];
279 }

Referenced by ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplatePath().

+ Here is the caller graph for this function:

◆ getTemplate()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getTemplate ( string  $name,
bool  $purge_unfilled_vars,
bool  $purge_unused_blocks 
)
finalprotected

Get template of component this renderer is made for.

Serves as a wrapper around instantiation of ilTemplate, exposes a smaller interface.

Exceptions
InvalidArgumentExceptionif there is no such template

Definition at line 125 of file AbstractComponentRenderer.php.

125 : Template
126 {
127 $path = $this->getTemplatePath($name);
128 return $this->getTemplateRaw($path, $purge_unfilled_vars, $purge_unused_blocks);
129 }
getTemplatePath(string $name)
Get the path to the template of this component.
getTemplateRaw(string $path, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get a template from any path.
$path
Definition: ltiservices.php:30

References $path, ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplatePath(), and ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplateRaw().

Referenced by ILIAS\UI\Implementation\Component\Symbol\Glyph\GlyphNonAbstractRenderer\_getTemplate(), ILIAS\UI\Implementation\Component\Symbol\Glyph\Renderer\getInnerGlyphHTML(), ILIAS\UI\Implementation\Component\Listing\CharacteristicValue\Renderer\getReportTemplate(), ILIAS\UI\Implementation\Component\Breadcrumbs\Renderer\render(), ILIAS\UI\Implementation\Component\Card\Renderer\render(), ILIAS\UI\Implementation\Component\Chart\Renderer\render(), ILIAS\UI\Implementation\Component\Counter\Renderer\render(), ILIAS\UI\Implementation\Component\Deck\Renderer\render(), ILIAS\UI\Implementation\Component\Image\Renderer\render(), ILIAS\UI\Implementation\Component\MessageBox\PromptContextRenderer\render(), ILIAS\UI\Implementation\Component\MessageBox\Renderer\render(), ILIAS\UI\Implementation\Component\Popover\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Glyph\Renderer\render(), ILIAS\UI\Implementation\Component\Symbol\Icon\Renderer\render(), ILIAS\UI\Implementation\Component\Tree\Renderer\render(), ILIAS\UI\Implementation\Component\Listing\Workflow\Renderer\render_linear(), ILIAS\UI\Implementation\Component\Input\Field\FilterContextRenderer\renderAddField(), ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\renderAsyncNode(), ILIAS\UI\Implementation\Component\Player\Renderer\renderAudio(), ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\renderBranchNode(), ILIAS\UI\Implementation\Component\Button\Renderer\renderButton(), ILIAS\UI\Implementation\Component\Button\Renderer\renderClose(), ILIAS\UI\Implementation\Component\Toast\Renderer\renderContainer(), ILIAS\UI\Implementation\Component\Legacy\Renderer\renderContent(), ILIAS\UI\Implementation\Component\Divider\Renderer\renderDividerHorizontal(), ILIAS\UI\Implementation\Component\Divider\Renderer\renderDividerVertical(), ILIAS\UI\Implementation\Component\Dropdown\Renderer\renderDropdown(), ILIAS\UI\Implementation\Component\Entity\Renderer\renderEntity(), ILIAS\UI\Implementation\Component\Listing\Entity\Renderer\renderEntityListing(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderFieldSelection(), ILIAS\UI\Implementation\Component\Chart\ProgressMeter\Renderer\renderFixedSize(), ILIAS\UI\Implementation\Component\Item\Renderer\renderGroup(), ILIAS\UI\Implementation\Component\Launcher\Renderer\renderInline(), ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\renderLeafNode(), ILIAS\UI\Implementation\Component\Panel\Secondary\Renderer\renderLegacy(), ILIAS\UI\Implementation\Component\Panel\Secondary\Renderer\renderListing(), ILIAS\UI\Implementation\Component\Chart\ProgressMeter\Renderer\renderMini(), ILIAS\UI\Implementation\Component\Button\Renderer\renderMinimize(), ILIAS\UI\Implementation\Component\ViewControl\Renderer\renderMode(), ILIAS\UI\Implementation\Component\Button\Renderer\renderMonth(), ILIAS\UI\Implementation\Component\Progress\Renderer\renderProgressBar(), ILIAS\UI\Implementation\Component\Progress\State\Bar\Renderer\renderProgressBarState(), ILIAS\UI\Implementation\Component\Prompt\Renderer\renderPrompt(), ILIAS\UI\Implementation\Component\Panel\Renderer\renderReport(), ILIAS\UI\Implementation\Component\Item\Renderer\renderShy(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderSortation(), ILIAS\UI\Implementation\Component\Panel\Listing\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Chart\ProgressMeter\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Panel\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Input\Container\Form\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Item\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Dropzone\File\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Input\Container\ViewControl\Renderer\renderStandard(), ILIAS\UI\Implementation\Component\Prompt\State\Renderer\renderState(), ILIAS\UI\Implementation\Component\Panel\Renderer\renderSub(), ILIAS\UI\Implementation\Component\Toast\Renderer\renderToast(), ILIAS\UI\Implementation\Component\Button\Renderer\renderToggle(), and ILIAS\UI\Implementation\Component\Dropzone\File\Renderer\renderWrapper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTemplatePath()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getTemplatePath ( string  $name)
protected

Get the path to the template of this component.

Definition at line 134 of file AbstractComponentRenderer.php.

134 : string
135 {
136 $component = $this->getMyComponent();
137 return "components/ILIAS/UI/src/templates/default/$component/$name";
138 }

References ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getMyComponent().

Referenced by ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTemplateRaw()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getTemplateRaw ( string  $path,
bool  $purge_unfilled_vars,
bool  $purge_unused_blocks 
)
private

Get a template from any path.

Definition at line 143 of file AbstractComponentRenderer.php.

143 : Template
144 {
145 return $this->tpl_factory->getTemplate($path, $purge_unfilled_vars, $purge_unused_blocks);
146 }

References $path.

Referenced by ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplate(), and ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTooltipRenderer().

+ Here is the caller graph for this function:

◆ getTooltipRenderer()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getTooltipRenderer ( )
protected

Definition at line 296 of file AbstractComponentRenderer.php.

297 {
298 if ($this->tooltip_renderer === null) {
299 $this->tooltip_renderer = new TooltipRenderer(
300 $this,
301 fn($path, $f1, $f2) => $this->getTemplateRaw($path, $f1, $f2)
302 );
303 }
305 }
This class is supposed to unify rendering of tooltips over all components and should also be usable b...

References $path, ILIAS\UI\Implementation\Render\AbstractComponentRenderer\$tooltip_renderer, and ILIAS\UI\Implementation\Render\AbstractComponentRenderer\getTemplateRaw().

Referenced by ILIAS\UI\Implementation\Component\Button\Renderer\renderButton(), and ILIAS\UI\Implementation\Component\Button\Renderer\renderToggle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUIFactory()

◆ getUploadLimitResolver()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::getUploadLimitResolver ( )
finalprotected

Definition at line 82 of file AbstractComponentRenderer.php.

83 {
84 return $this->upload_limit_resolver;
85 }

◆ registerResources()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::registerResources ( ResourceRegistry  $registry)

Announce resources this renderer requires.

Implements ILIAS\UI\Implementation\Render\ComponentRenderer.

Reimplemented in ILIAS\UI\Implementation\Component\Button\Renderer, ILIAS\UI\Implementation\Component\Chart\Bar\Renderer, ILIAS\UI\Implementation\Component\Counter\Renderer, ILIAS\UI\Implementation\Component\Dropdown\Renderer, ILIAS\UI\Implementation\Component\Dropzone\File\Renderer, ILIAS\UI\Implementation\Component\Image\Renderer, ILIAS\UI\Implementation\Component\Input\Field\FilterContextRenderer, ILIAS\UI\Implementation\Component\Input\Field\Renderer, ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer, ILIAS\UI\Implementation\Component\Item\Renderer, ILIAS\UI\Implementation\Component\Layout\Page\Renderer, ILIAS\UI\Implementation\Component\Legacy\Renderer, ILIAS\UI\Implementation\Component\MainControls\Renderer, ILIAS\UI\Implementation\Component\Menu\Renderer, ILIAS\UI\Implementation\Component\Modal\Renderer, ILIAS\UI\Implementation\Component\Popover\Renderer, ILIAS\UI\Implementation\Component\Progress\Renderer, ILIAS\UI\Implementation\Component\Prompt\Renderer, ILIAS\UI\Implementation\Component\Table\Renderer, ILIAS\UI\Implementation\Component\Toast\Renderer, ILIAS\UI\Implementation\Component\Tree\Renderer, and ILIAS\UI\Implementation\Component\ViewControl\Renderer.

Definition at line 62 of file AbstractComponentRenderer.php.

62 : void
63 {
64 $registry->register('assets/js/core.js');
65 }
register(string $name)
Add a dependency.

References ILIAS\UI\Implementation\Render\ResourceRegistry\register().

+ Here is the call graph for this function:

◆ toJS()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::toJS (   $key)
final

Add language var to client side (il.Language)

Parameters
mixed$key

Definition at line 99 of file AbstractComponentRenderer.php.

99 : void
100 {
101 $this->lng->toJS($key);
102 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ txt()

ILIAS\UI\Implementation\Render\AbstractComponentRenderer::txt ( string  $id)
final

Get a text from the language file.

Definition at line 90 of file AbstractComponentRenderer.php.

90 : string
91 {
92 return $this->lng->txt($id);
93 }

References ILIAS\Repository\lng().

Referenced by ILIAS\UI\Implementation\Component\Input\Field\Node\Renderer\addNodeLabels(), ILIAS\UI\Implementation\Component\Input\Container\Form\Renderer\maybeAddError(), ILIAS\UI\Implementation\Component\Input\Container\Form\Renderer\maybeAddRequired(), ILIAS\UI\Implementation\Component\Breadcrumbs\Renderer\render(), ILIAS\UI\Implementation\Component\Chart\Renderer\render(), ILIAS\UI\Implementation\Component\MessageBox\PromptContextRenderer\render(), ILIAS\UI\Implementation\Component\MessageBox\Renderer\render(), ILIAS\UI\Implementation\Component\Player\Renderer\renderAudio(), ILIAS\UI\Implementation\Component\Button\Renderer\renderClose(), ILIAS\UI\Implementation\Component\Dropdown\Renderer\renderDropdown(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderFieldSelection(), ILIAS\UI\Implementation\Component\Symbol\Glyph\ButtonContextRenderer\renderLabel(), ILIAS\UI\Implementation\Component\Symbol\Glyph\Renderer\renderLabel(), ILIAS\UI\Implementation\Component\Button\Renderer\renderMinimize(), ILIAS\UI\Implementation\Component\ViewControl\Renderer\renderMode(), ILIAS\UI\Implementation\Component\Table\Renderer\renderPresentationTable(), ILIAS\UI\Implementation\Component\Prompt\Renderer\renderPrompt(), ILIAS\UI\Implementation\Component\Input\ViewControl\Renderer\renderSortation(), ILIAS\UI\Implementation\Component\Prompt\State\Renderer\renderState(), and ILIAS\UI\Implementation\Component\Button\Renderer\renderToggle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $component_storage

array ILIAS\UI\Implementation\Render\AbstractComponentRenderer::$component_storage
staticprivate

Definition at line 45 of file AbstractComponentRenderer.php.

◆ $tooltip_renderer

TooltipRenderer ILIAS\UI\Implementation\Render\AbstractComponentRenderer::$tooltip_renderer = null
protected

The documentation for this class was generated from the following file: