‪TYPO3CMS  ‪main
DistributionController.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 
20 use Psr\Http\Message\ResponseInterface;
23 use TYPO3\CMS\Core\Imaging\IconSize;
24 use TYPO3\CMS\Core\Package\PackageManager;
27 
34 {
35  public function ‪__construct(
36  protected readonly PackageManager $packageManager,
37  protected readonly ‪PageRenderer $pageRenderer,
38  protected readonly ‪IconFactory $iconFactory
39  ) {}
40 
44  public function ‪showAction(‪Extension $extension): ResponseInterface
45  {
46  $extensionKey = $extension->‪getExtensionKey();
47  // Check if extension/package is installed
48  $active = $this->packageManager->isPackageActive($extensionKey);
49  ‪$view = $this->‪initializeModuleTemplate($this->request);
51  ‪$view->assign('distributionActive', $active);
52  ‪$view->assign('extension', $extension);
53  $this->pageRenderer->loadJavaScriptModule('@typo3/extensionmanager/distribution-image.js');
54  return ‪$view->renderResponse('Distribution/Show');
55  }
56 
61  {
62  $buttonBar = ‪$view->getDocHeaderComponent()->getButtonBar();
63  $uri = $this->uriBuilder->reset()->uriFor('distributions', [], 'List');
64  $title = $this->‪translate('extConfTemplate.backToList');
65  $icon = $this->iconFactory->getIcon('actions-view-go-back', IconSize::SMALL);
66  $button = $buttonBar->makeLinkButton()
67  ->setHref($uri)
68  ->setTitle($title)
69  ->setShowLabelText(true)
70  ->setIcon($icon);
71  $buttonBar->addButton($button);
72  return ‪$view;
73  }
74 }
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension
Definition: Extension.php:30
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\$view
‪ViewInterface $view
Definition: ActionController.php:82
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController\translate
‪translate(string $key, ?array $arguments=null)
Definition: AbstractController.php:51
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\Extensionmanager\Controller
Definition: AbstractController.php:18
‪TYPO3\CMS\Extensionmanager\Controller\DistributionController\showAction
‪showAction(Extension $extension)
Definition: DistributionController.php:44
‪TYPO3\CMS\Extensionmanager\Controller\DistributionController
Definition: DistributionController.php:34
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:46
‪TYPO3\CMS\Extensionmanager\Controller\DistributionController\__construct
‪__construct(protected readonly PackageManager $packageManager, protected readonly PageRenderer $pageRenderer, protected readonly IconFactory $iconFactory)
Definition: DistributionController.php:35
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController\initializeModuleTemplate
‪initializeModuleTemplate(RequestInterface $request)
Definition: AbstractController.php:76
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:44
‪TYPO3\CMS\Extensionmanager\Controller\AbstractController
Definition: AbstractController.php:32
‪TYPO3\CMS\Extensionmanager\Domain\Model\Extension\getExtensionKey
‪getExtensionKey()
Definition: Extension.php:176
‪TYPO3\CMS\Extensionmanager\Controller\DistributionController\registerDocHeaderButtons
‪registerDocHeaderButtons(ModuleTemplate $view)
Definition: DistributionController.php:60