ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 ()
 
 getNamespace ()
 
 canHandle (Request $request)
 
 handle (Request $request, Context $context, Factory $response_factory)
 

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.

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 $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 if ($wsp) {
62 $ctrl->setParameterByClass(\ilObjBlogGUI::class, "wsp_id", $id);
63 if ($posting_id > 0) {
64 if ($edit) {
65 $uri = $ctrl->getLinkTargetByClass([
66 \ilDashboardGUI::class,
67 \ilPersonalWorkspaceGUI::class,
68 \ilObjBlogGUI::class,
69 \ilBlogPostingGUI::class,
70 ], "edit");
71 } else {
72 $uri = $ctrl->getLinkTargetByClass([
73 \ilSharedResourceGUI::class,
74 \ilObjBlogGUI::class,
75 \ilBlogPostingGUI::class,
76 ], "previewFullscreen");
77 }
78 } else {
79 $uri = $ctrl->getLinkTargetByClass([
80 \ilSharedResourceGUI::class,
81 \ilObjBlogGUI::class
82 ], "preview");
83 }
84 } else {
85 $ctrl->setParameterByClass(\ilRepositoryGUI::class, "ref_id", $id);
86 if ($posting_id > 0) {
87 if ($edit && $access->checkAccess("write", "", $id)) {
88 $uri = $ctrl->getLinkTargetByClass([
89 \ilRepositoryGUI::class,
90 \ilObjBlogGUI::class,
91 \ilBlogPostingGUI::class,
92 ], "edit");
93 } elseif ($access->checkAccess("read", "", $id)) {
94 $uri = $ctrl->getLinkTargetByClass([
95 \ilRepositoryGUI::class,
96 \ilObjBlogGUI::class,
97 \ilBlogPostingGUI::class,
98 ], "previewFullscreen");
99 }
100 } else {
101 if ($access->checkAccess("read", "", $id)) {
102 $uri = $ctrl->getLinkTargetByClass([
103 \ilRepositoryGUI::class,
104 \ilObjBlogGUI::class
105 ], "preview");
106 }
107 }
108
109 if ($uri === "" &&
110 $access->checkAccess("visible", "", $id)) {
111 $uri = $ctrl->getLinkTargetByClass([
112 \ilRepositoryGUI::class,
113 \ilObjBlogGUI::class
114 ], "infoScreen");
115 }
116 }
117 if (is_null($uri)) {
118 if ($blog_domain->user()->isAnonymous() || $blog_domain->user()->getId() == 0) {
119 return $response_factory->loginFirst();
120 } else {
121 return $response_factory->cannot();
122 }
123 }
124 return $response_factory->can($uri);
125 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
global $DIC
Definition: shib_login.php:26

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(), and ILIAS\StaticURL\Response\Factory\loginFirst().

+ Here is the call graph for this function:

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