‪TYPO3CMS  ‪main
FolderLinkHandler.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
25 
32 {
37  protected ‪$baseUrn = 't3://folder';
38 
43  protected ‪$resourceFactory;
44 
48  public function ‪asString(array $parameters): string
49  {
50  if (!($parameters['folder'] ?? null) instanceof ‪Folder) {
51  return '';
52  }
53  // the magic with prepending slash if it is missing will not work on windows
54  return $this->baseUrn . '?storage=' . $parameters['folder']->getStorage()->getUid() .
55  '&identifier=' . urlencode('/' . ltrim($parameters['folder']->getIdentifier(), '/'));
56  }
57 
63  public function ‪resolveHandlerData(array $data): array
64  {
65  $combinedIdentifier = ($data['storage'] ?? '0') . ':' . $data['identifier'];
66  try {
67  $folder = $this->‪getResourceFactory()->getFolderObjectFromCombinedIdentifier($combinedIdentifier);
69  $folder = null;
70  }
71  return ['folder' => $folder];
72  }
73 
77  protected function ‪getResourceFactory(): ‪ResourceFactory
78  {
79  if (!$this->resourceFactory) {
80  $this->resourceFactory = GeneralUtility::makeInstance(ResourceFactory::class);
81  }
83  }
84 }
‪TYPO3\CMS\Core\Resource\Exception\InsufficientFolderAccessPermissionsException
Definition: InsufficientFolderAccessPermissionsException.php:23
‪TYPO3\CMS\Core\Resource\Folder
Definition: Folder.php:38
‪TYPO3\CMS\Core\Resource\ResourceFactory
Definition: ResourceFactory.php:42
‪TYPO3\CMS\Core\Resource\Exception\FolderDoesNotExistException
Definition: FolderDoesNotExistException.php:21
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52