ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.ilKSDocumentationGotoLink.php
Go to the documentation of this file.
1 <?php
18 declare(strict_types=1);
19 
26 
31 {
32  public function getNamespace(): string
33  {
34  return 'stys';
35  }
36 
37  public function handle(Request $request, Context $context, Factory $response_factory): Response
38  {
39  return $response_factory->can(
40  $this->generateRedirectURL(
41  $context->ctrl(),
42  $request->getReferenceId()?->toInt() ?? 0,
43  $request->getAdditionalParameters()[0] ?? '',
44  $request->getAdditionalParameters()[1] ?? '',
45  $request->getAdditionalParameters()[2] ?? ''
46  )
47  );
48  }
49 
50  public function generateGotoLink(string $node_id, string $skin_id, string $style_id): string
51  {
52  return implode('/', [$node_id, $skin_id, $style_id]);
53  }
54 
55  public function generateRedirectURL(
56  ilCtrl $ctrl,
57  int $ref_id,
58  string $node_id,
59  string $skin_id,
60  string $style_id,
61  ): string {
62  $ctrl->setParameterByClass(ilSystemStyleDocumentationGUI::class, 'skin_id', $skin_id);
63  $ctrl->setParameterByClass(
64  ilSystemStyleDocumentationGUI::class,
65  'style_id',
66  $style_id
67  );
68  $ctrl->setParameterByClass(ilSystemStyleDocumentationGUI::class, 'node_id', $node_id);
69  $ctrl->setParameterByClass(ilSystemStyleDocumentationGUI::class, 'ref_id', $ref_id);
70 
71  $cmd_classes = [
72  ilAdministrationGUI::class,
73  ilObjStyleSettingsGUI::class,
74  ilSystemStyleMainGUI::class,
75  ilSystemStyleDocumentationGUI::class
76  ];
77 
78  $ctrl->setTargetScript('ilias.php');
79 
80  return $ctrl->getLinkTargetByClass($cmd_classes, 'entries');
81  }
82 
86  public function redirectWithGotoLink(string $ref_id, array $params, ilCtrl $ctrl): void
87  {
88  $ref_id = (int) $ref_id;
89  $node_id = $params[2] ?? '';
90  $skin_id = $params[3] ?? '';
91  $style_id = $params[4] ?? '';
92 
93  $ctrl->redirectToURL(
94  $this->generateRedirectURL(
95  $ctrl,
96  $ref_id,
97  $node_id,
98  $skin_id,
99  $style_id
100  )
101  );
102  }
103 }
$context
Definition: webdav.php:31
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:31
setParameterByClass(string $a_class, string $a_parameter, $a_value)
$ref_id
Definition: ltiauth.php:65
setTargetScript(string $a_target_script)
redirectToURL(string $target_url)
getLinkTargetByClass( $a_class, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false, bool $has_xml_style=false)