ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\StaticURL\Request\LegacyRequestBuilder Class Reference
+ Inheritance diagram for ILIAS\StaticURL\Request\LegacyRequestBuilder:
+ Collaboration diagram for ILIAS\StaticURL\Request\LegacyRequestBuilder:

Public Member Functions

 buildRequest (Services $http, Factory $refinery, array $handlers)
 

Detailed Description

Member Function Documentation

◆ buildRequest()

ILIAS\StaticURL\Request\LegacyRequestBuilder::buildRequest ( Services  $http,
Factory  $refinery,
array  $handlers 
)

Implements ILIAS\StaticURL\Request\RequestBuilder.

Definition at line 34 of file LegacyRequestBuilder.php.

References $path, $ref_id, ILIAS\StaticURL\Builder\StandardURIBuilder\LONG, ILIAS\StaticURL\Handler\LegacyGotoHandler\NAMESPACE, null, ILIAS\HTTP\Services\request(), ILIAS\StaticURL\Builder\StandardURIBuilder\SHORT, ILIAS\StaticURL\Handler\LegacyGotoHandler\TARGET, ILIAS\Refinery\Factory\to(), and ILIAS\HTTP\Services\wrapper().

34  : ?Request
35  {
36  // try to get target from query
37  $target = $http->wrapper()->query()->has("target")
38  ? $http->wrapper()->query()->retrieve(
39  "target",
40  $refinery->to()->string()
41  )
42  : null;
43  if ($target !== null) {
44  $target_parts = explode('_', (string) $target);
45  if (isset($target_parts[0]) && array_key_exists($target_parts[0], $handlers)) {
46  return null;
47  }
48 
49  return new Request(
51  null,
52  [LegacyGotoHandler::TARGET => $target]
53  );
54  }
55 
56  // try build target from path (since URL has been rewritten to goto/...)
57  $path = $http->request()->getUri()->getPath();
58  // get everything after /goto.php/ ot /go/
59  if (str_contains($path, StandardURIBuilder::LONG)) {
61  }
62 
63  if (str_contains($path, StandardURIBuilder::SHORT)) {
65  }
67  $target_parts = explode('/', $path);
68  if (isset($target_parts[0]) && array_key_exists($target_parts[0], $handlers)) {
69  return null;
70  }
71  $ref_id = null;
72  if (isset($target_parts[1]) && is_numeric($target_parts[1])) {
73  $ref_id = new ReferenceId((int) $target_parts[1]);
74  $target = $target_parts[2] ?? '';
75  } else {
76  $target = $target_parts[1] ?? '';
77  }
78 
79  return new Request(
81  $ref_id,
82  [LegacyGotoHandler::TARGET => str_replace('/', '_', $path)]
83  );
84  }
$http
Definition: deliver.php:30
$path
Definition: ltiservices.php:29
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$ref_id
Definition: ltiauth.php:65
+ Here is the call graph for this function:

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