ILIAS  trunk Revision v11.0_alpha-1871-gde1fee8db3d
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\PermanentLink\StaticURLHandler Class Reference
+ Inheritance diagram for ILIAS\PermanentLink\StaticURLHandler:
+ Collaboration diagram for ILIAS\PermanentLink\StaticURLHandler:

Public Member Functions

 getNamespace ()
 
 handle (Request $request, Context $context, Factory $response_factory)
 
- Public Member Functions inherited from ILIAS\StaticURL\Handler\BaseHandler
 __construct ()
 
 canHandle (Request $request)
 
- Public Member Functions inherited from ILIAS\StaticURL\Handler\Handler
 __construct ()
 
 canHandle (Request $request)
 

Detailed Description

Definition at line 30 of file StaticUrlHandler.php.

Member Function Documentation

◆ getNamespace()

ILIAS\PermanentLink\StaticURLHandler::getNamespace ( )

Implements ILIAS\StaticURL\Handler\Handler.

Definition at line 32 of file StaticUrlHandler.php.

32  : string
33  {
34  return 'blog';
35  }

◆ handle()

ILIAS\PermanentLink\StaticURLHandler::handle ( Request  $request,
Context  $context,
Factory  $response_factory 
)

Implements ILIAS\StaticURL\Handler\Handler.

Definition at line 37 of file StaticUrlHandler.php.

References $DIC, $id, ILIAS\StaticURL\Response\Factory\can(), ILIAS\StaticURL\Request\Request\getAdditionalParameters(), ILIAS\StaticURL\Request\Request\getReferenceId(), and ILIAS\Repository\int().

37  : Response
38  {
39  global $DIC;
40 
41  $ctrl = $DIC->ctrl();
42  $access = $DIC->access();
43  $uri = "";
44 
45  $id = $request->getReferenceId()?->toInt() ?? 0;
46  $additional_params = $request->getAdditionalParameters() ?? [];
47 
48  $wsp = count($additional_params) > 0 &&
49  $additional_params[count($additional_params) - 1] === "_wsp";
50  $posting_id = 0;
51  if (is_numeric($additional_params[0] ?? "")) {
52  $posting_id = (int) $additional_params[0];
53  }
54  $edit = false;
55  if ($posting_id > 0 && ($additional_params[1] ?? "" === "edit")) {
56  $edit = true;
57  }
58  if ($posting_id > 0) {
59  $ctrl->setParameterByClass(\ilBlogPostingGUI::class, "blpg", $posting_id);
60  }
61 
62  if ($wsp) {
63  $ctrl->setParameterByClass(\ilObjBlogGUI::class, "wsp_id", $id);
64  if ($posting_id > 0) {
65  if ($edit) {
66  $uri = $ctrl->getLinkTargetByClass([
67  \ilDashboardGUI::class,
68  \ilPersonalWorkspaceGUI::class,
69  \ilObjBlogGUI::class,
70  \ilBlogPostingGUI::class,
71  ], "edit");
72  } else {
73  $uri = $ctrl->getLinkTargetByClass([
74  \ilSharedResourceGUI::class,
75  \ilObjBlogGUI::class,
76  \ilBlogPostingGUI::class,
77  ], "previewFullscreen");
78  }
79  } else {
80  $uri = $ctrl->getLinkTargetByClass([
81  \ilSharedResourceGUI::class,
82  \ilObjBlogGUI::class
83  ], "preview");
84  }
85  } else {
86  $ctrl->setParameterByClass(\ilRepositoryGUI::class, "ref_id", $id);
87  if ($posting_id > 0) {
88  if ($edit && $access->checkAccess("write", "", $id)) {
89  $uri = $ctrl->getLinkTargetByClass([
90  \ilRepositoryGUI::class,
91  \ilObjBlogGUI::class,
92  \ilBlogPostingGUI::class,
93  ], "edit");
94  } elseif ($access->checkAccess("read", "", $id)) {
95  $uri = $ctrl->getLinkTargetByClass([
96  \ilRepositoryGUI::class,
97  \ilObjBlogGUI::class,
98  \ilBlogPostingGUI::class,
99  ], "previewFullscreen");
100  }
101  } else {
102  if ($access->checkAccess("read", "", $id)) {
103  $uri = $ctrl->getLinkTargetByClass([
104  \ilRepositoryGUI::class,
105  \ilObjBlogGUI::class
106  ], "preview");
107  }
108  }
109 
110  if ($uri === "" &&
111  $access->checkAccess("visible", "", $id)) {
112  $uri = $ctrl->getLinkTargetByClass([
113  \ilRepositoryGUI::class,
114  \ilObjBlogGUI::class
115  ], "infoScreen");
116  }
117  }
118  return $response_factory->can($uri);
119  }
global $DIC
Definition: shib_login.php:22
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ Here is the call graph for this function:

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