ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\Questions\Legacy\Administration\ViewConfiguration Class Reference
+ Collaboration diagram for ILIAS\Questions\Legacy\Administration\ViewConfiguration:

Public Member Functions

 __construct (private readonly Language $lng, private readonly Refinery $refinery, private readonly UIFactory $ui_factory, RequestWrapper $query_wrapper, URLBuilder $url_builder, private readonly \ilToolbarGUI $toolbar)
 
 isAsync ()
 
 getCurrentConfiguration ()
 
 getURLBuilderWithPreservedConfigurationParameter (?URLBuilder $url_builder=null)
 
 initializeToolbar ()
 

Private Member Functions

 buildToolbarButton (string $identifier)
 
 buildButtonLabel (string $identifier, bool $enabled)
 

Private Attributes

const array PARAMETER_NAMESPACE = ['q', 'vc']
 
const string CONFIGURATION_TOKEN_STRING = 'c'
 
readonly URLBuilder $url_builder
 
readonly URLBuilderToken $configuration_token
 
readonly array $current_configuration
 

Detailed Description

Definition at line 36 of file ViewConfiguration.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::__construct ( private readonly Language  $lng,
private readonly Refinery  $refinery,
private readonly UIFactory  $ui_factory,
RequestWrapper  $query_wrapper,
URLBuilder  $url_builder,
private readonly \ilToolbarGUI  $toolbar 
)

Definition at line 46 of file ViewConfiguration.php.

53 {
54 [
58 self::PARAMETER_NAMESPACE,
59 self::CONFIGURATION_TOKEN_STRING
60 );
61
62 $this->current_configuration = $query_wrapper->retrieve(
63 $this->configuration_token->getName(),
64 $this->refinery->custom()->transformation(
65 function (mixed $values): array {
67 DefaultView::getIdentifier()
68 ];
69 if (!is_array($values)) {
71 }
72
73 $available_capabilities = [
74 AsyncView::getIdentifier(),
75 DefaultView::getIdentifier(),
76 TextFeedback::getIdentifier(),
77 SuggestedLearningContent::getIdentifier(),
78 MarkingAllowingPartialPoints::getIdentifier()
79 ];
80
81 return array_reduce(
82 $values,
83 function (array $c, string $v) use ($available_capabilities): array {
84 if ($v === AsyncView::getIdentifier()
85 || $v === DefaultView::getIdentifier()) {
86 $c = array_filter(
87 $c,
88 fn(string $v): bool => $v !== DefaultView::getIdentifier()
89 && $v !== AsyncView::getIdentifier()
90 );
91 }
92
93 if (in_array($v, $available_capabilities)
94 && !in_array($v, $c)) {
95 $c[] = $v;
96 }
97
98 return $c;
99 },
101 );
102 }
103 )
104 );
105 }
acquireParameter(array $namespace, string $name, ?string $initial_value=null)
Add a new parameter with a namespace and get its token for subsequent changes.
Definition: URLBuilder.php:119
retrieve(string $key, Transformation $transformation)

References Vendor\Package\$c, ILIAS\Questions\Legacy\Administration\ViewConfiguration\$configuration_token, ILIAS\Questions\Legacy\Administration\ViewConfiguration\$current_configuration, ILIAS\Questions\Legacy\Administration\ViewConfiguration\$url_builder, ILIAS\UI\URLBuilder\acquireParameter(), and ILIAS\HTTP\Wrapper\RequestWrapper\retrieve().

+ Here is the call graph for this function:

Member Function Documentation

◆ buildButtonLabel()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::buildButtonLabel ( string  $identifier,
bool  $enabled 
)
private

Definition at line 207 of file ViewConfiguration.php.

210 : string {
211 $identifier_lng_string = strtolower($identifier);
212
213 return $enabled
214 ? $this->lng->txt("disable_{$identifier_lng_string}")
215 : $this->lng->txt("enable_{$identifier_lng_string}");
216 }

◆ buildToolbarButton()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::buildToolbarButton ( string  $identifier)
private

Definition at line 187 of file ViewConfiguration.php.

189 : StandardButton {
190 $capability_activated = in_array($identifier, $this->current_configuration);
191 $filtered_configuration = array_filter(
192 $this->current_configuration,
193 fn(string $v): bool => $v !== $identifier
194 );
195
196 return $this->ui_factory->button()->standard(
197 $this->buildButtonLabel($identifier, $capability_activated),
198 $this->url_builder->withParameter(
199 $this->configuration_token,
200 $capability_activated
201 ? $filtered_configuration
202 : [...$filtered_configuration, $identifier]
203 )->buildURI()->__toString()
204 );
205 }

◆ getCurrentConfiguration()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::getCurrentConfiguration ( )

◆ getURLBuilderWithPreservedConfigurationParameter()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::getURLBuilderWithPreservedConfigurationParameter ( ?URLBuilder  $url_builder = null)

Definition at line 120 of file ViewConfiguration.php.

122 : URLBuilder {
123 if ($url_builder !== null) {
124 [
128 self::PARAMETER_NAMESPACE,
129 self::CONFIGURATION_TOKEN_STRING
130 );
131 } else {
134 }
135
138 $this->current_configuration
139 );
140 }
withParameter(URLBuilderToken $token, string|array $value)
Change an acquired parameter's value if the supplied token is valid.
Definition: URLBuilder.php:166

References ILIAS\Questions\Legacy\Administration\ViewConfiguration\$configuration_token, ILIAS\Questions\Legacy\Administration\ViewConfiguration\$url_builder, and ILIAS\UI\URLBuilder\acquireParameter().

+ Here is the call graph for this function:

◆ initializeToolbar()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::initializeToolbar ( )

Definition at line 142 of file ViewConfiguration.php.

142 : void
143 {
144 $configuration_without_view = array_filter(
145 $this->current_configuration,
146 fn(string $v): bool => $v !== DefaultView::getIdentifier() && $v !== AsyncView::getIdentifier()
147 );
148 $this->toolbar->addComponent(
149 $this->ui_factory->viewControl()->mode(
150 [
151 $this->lng->txt('default_view') => $this->url_builder->withParameter(
152 $this->configuration_token,
153 [...$configuration_without_view, DefaultView::getIdentifier()]
154 )->buildURI()->__toString(),
155 $this->lng->txt('async_view') => $this->url_builder->withParameter(
156 $this->configuration_token,
157 [...$configuration_without_view, AsyncView::getIdentifier()]
158 )->buildURI()->__toString()
159 ],
160 $this->lng->txt('select_view')
161 )->withActive(
162 in_array(DefaultView::getIdentifier(), $this->current_configuration)
163 ? $this->lng->txt('default_view')
164 : $this->lng->txt('async_view')
165 ),
166 );
167
168 $this->toolbar->addComponent(
169 $this->buildToolbarButton(
170 MarkingAllowingPartialPoints::getIdentifier()
171 )
172 );
173
174 $this->toolbar->addComponent(
175 $this->buildToolbarButton(
176 TextFeedback::getIdentifier()
177 )
178 );
179
180 $this->toolbar->addComponent(
181 $this->buildToolbarButton(
182 SuggestedLearningContent::getIdentifier()
183 )
184 );
185 }

References ILIAS\Repository\lng(), and ILIAS\Repository\toolbar().

+ Here is the call graph for this function:

◆ isAsync()

ILIAS\Questions\Legacy\Administration\ViewConfiguration::isAsync ( )

Definition at line 107 of file ViewConfiguration.php.

107 : bool
108 {
109 return in_array(
110 AsyncView::getIdentifier(),
111 $this->current_configuration
112 );
113 }

Field Documentation

◆ $configuration_token

readonly URLBuilderToken ILIAS\Questions\Legacy\Administration\ViewConfiguration::$configuration_token
private

◆ $current_configuration

readonly array ILIAS\Questions\Legacy\Administration\ViewConfiguration::$current_configuration
private

◆ $url_builder

readonly URLBuilder ILIAS\Questions\Legacy\Administration\ViewConfiguration::$url_builder
private

◆ CONFIGURATION_TOKEN_STRING

const string ILIAS\Questions\Legacy\Administration\ViewConfiguration::CONFIGURATION_TOKEN_STRING = 'c'
private

Definition at line 39 of file ViewConfiguration.php.

◆ PARAMETER_NAMESPACE

const array ILIAS\Questions\Legacy\Administration\ViewConfiguration::PARAMETER_NAMESPACE = ['q', 'vc']
private

Definition at line 38 of file ViewConfiguration.php.


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