ILIAS  trunk Revision v12.0_alpha-1329-g1094ddb0c33
ILIAS\UI\Implementation\Render\FSLoader Class Reference

Loads renderers for components from the file system. More...

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

Public Member Functions

 __construct (private RendererFactory $default_renderer_factory, private RendererFactory $button_renderer_factory, private RendererFactory $field_renderer_factory, private RendererFactory $message_box_renderer_factory, private RendererFactory $form_renderer_factory, private RendererFactory $menu_renderer_factory,)
 
 getRendererFor (Component $component, array $contexts)
 @inheritdocs More...
 
 getRendererFactoryFor (Component $component)
 @inheritdocs More...
 
 getRendererFor (Component $component, array $contexts)
 Get a renderer for a certain Component class. More...
 
 getRendererFactoryFor (Component $component)
 Get a factory for a renderer for a certain component class. More...
 

Detailed Description

Loads renderers for components from the file system.

To introduce a component that may react on the context of the rendering, you need to:

  • create a new implementation of RendererFactory in the implementation folder of that component
  • introduce it as a dependency of this loader (and load at ilInitialisation::initUIFramework)
  • make a special case for the components the new factory may create renderers for in FSLoader::getRendererFactoryFor

Definition at line 43 of file FSLoader.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\UI\Implementation\Render\FSLoader::__construct ( private RendererFactory  $default_renderer_factory,
private RendererFactory  $button_renderer_factory,
private RendererFactory  $field_renderer_factory,
private RendererFactory  $message_box_renderer_factory,
private RendererFactory  $form_renderer_factory,
private RendererFactory  $menu_renderer_factory 
)

Definition at line 47 of file FSLoader.php.

54 {
55 }

Member Function Documentation

◆ getRendererFactoryFor()

ILIAS\UI\Implementation\Render\FSLoader::getRendererFactoryFor ( Component  $component)

@inheritdocs

Implements ILIAS\UI\Implementation\Render\Loader.

Definition at line 70 of file FSLoader.php.

71 {
72 if ($component instanceof FormInput) {
73 return $this->field_renderer_factory;
74 }
75 if ($component instanceof MessageBox) {
76 return $this->message_box_renderer_factory;
77 }
78 if ($component instanceof Form) {
79 return $this->form_renderer_factory;
80 }
81 if ($component instanceof Menu) {
82 return $this->menu_renderer_factory;
83 }
84 if ($component instanceof Button) {
85 return $this->button_renderer_factory;
86 }
87 return $this->default_renderer_factory;
88 }
This is the interface that components should use if they want to load specific renderers.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Bulky.php:21

Referenced by ILIAS\UI\Implementation\Render\FSLoader\getRendererFor().

+ Here is the caller graph for this function:

◆ getRendererFor()

ILIAS\UI\Implementation\Render\FSLoader::getRendererFor ( Component  $component,
array  $contexts 
)

@inheritdocs

Implements ILIAS\UI\Implementation\Render\Loader.

Definition at line 60 of file FSLoader.php.

60 : ComponentRenderer
61 {
62 $context_names = $this->getContextNames($contexts);
63 $factory = $this->getRendererFactoryFor($component);
64 return $factory->getRendererInContext($component, $context_names);
65 }
getRendererFactoryFor(Component $component)
@inheritdocs
Definition: FSLoader.php:70

References ILIAS\UI\Implementation\Render\FSLoader\getRendererFactoryFor().

+ Here is the call graph for this function:

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