ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
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\Response\Factory\cannot(), ILIAS\StaticURL\Request\Request\getAdditionalParameters(), ILIAS\StaticURL\Request\Request\getReferenceId(), ILIAS\Repository\int(), ILIAS\StaticURL\Response\Factory\loginFirst(), and null.

37  : Response
38  {
39  global $DIC;
40 
41  $ctrl = $DIC->ctrl();
42  $access = $DIC->access();
43  $uri = null;
44  $blog_domain = $DIC->blog()->internal()->domain();
45 
46  $id = $request->getReferenceId()?->toInt() ?? 0;
47  $additional_params = $request->getAdditionalParameters() ?? [];
48 
49  $wsp = count($additional_params) > 0 &&
50  $additional_params[count($additional_params) - 1] === "wsp";
51  $posting_id = 0;
52  if (is_numeric($additional_params[0] ?? "")) {
53  $posting_id = (int) $additional_params[0];
54  }
55  $edit = false;
56  if ($posting_id > 0 && ($additional_params[1] ?? "" === "edit")) {
57  $edit = true;
58  }
59  if ($posting_id > 0) {
60  $ctrl->setParameterByClass(\ilBlogPostingGUI::class, "blpg", $posting_id);
61  }
62 
63  if ($wsp) {
64  $ctrl->setParameterByClass(\ilObjBlogGUI::class, "wsp_id", $id);
65  if ($posting_id > 0) {
66  if ($edit) {
67  $uri = $ctrl->getLinkTargetByClass([
68  \ilDashboardGUI::class,
69  \ilPersonalWorkspaceGUI::class,
70  \ilObjBlogGUI::class,
71  \ilBlogPostingGUI::class,
72  ], "edit");
73  } else {
74  $uri = $ctrl->getLinkTargetByClass([
75  \ilSharedResourceGUI::class,
76  \ilObjBlogGUI::class,
77  \ilBlogPostingGUI::class,
78  ], "previewFullscreen");
79  }
80  } else {
81  $uri = $ctrl->getLinkTargetByClass([
82  \ilSharedResourceGUI::class,
83  \ilObjBlogGUI::class
84  ], "preview");
85  }
86  } else {
87  $ctrl->setParameterByClass(\ilRepositoryGUI::class, "ref_id", $id);
88  if ($posting_id > 0) {
89  if ($edit && $access->checkAccess("write", "", $id)) {
90  $uri = $ctrl->getLinkTargetByClass([
91  \ilRepositoryGUI::class,
92  \ilObjBlogGUI::class,
93  \ilBlogPostingGUI::class,
94  ], "edit");
95  } elseif ($access->checkAccess("read", "", $id)) {
96  $uri = $ctrl->getLinkTargetByClass([
97  \ilRepositoryGUI::class,
98  \ilObjBlogGUI::class,
99  \ilBlogPostingGUI::class,
100  ], "previewFullscreen");
101  }
102  } else {
103  if ($access->checkAccess("read", "", $id)) {
104  $uri = $ctrl->getLinkTargetByClass([
105  \ilRepositoryGUI::class,
106  \ilObjBlogGUI::class
107  ], "preview");
108  }
109  }
110 
111  if ($uri === "" &&
112  $access->checkAccess("visible", "", $id)) {
113  $uri = $ctrl->getLinkTargetByClass([
114  \ilRepositoryGUI::class,
115  \ilObjBlogGUI::class
116  ], "infoScreen");
117  }
118  }
119  if (is_null($uri)) {
120  if ($blog_domain->user()->isAnonymous() || $blog_domain->user()->getId() == 0) {
121  return $response_factory->loginFirst();
122  } else {
123  return $response_factory->cannot();
124  }
125  }
126  return $response_factory->can($uri);
127  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
global $DIC
Definition: shib_login.php:26
$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: