Project

General

Profile

Feature #71247

Updated by Simon Schaufelberger about 6 years ago

I have written my own slot for the extension manager after installation of an extension like this: 

 ext_localconf.php 
 <pre> 
 /** @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher */ 
 $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class); 
 $signalSlotDispatcher->connect( 
	 'TYPO3\CMS\Extensionmanager\Utility\InstallUtility', 
	 'afterExtensionInstall', 
	 'Vendor\Website\Utility\InstallUtility', 
	 'addFlashMessageAfterExtensionInstall' 
 ); 
 </pre> 

 ext:website/Classes/Utility/InstallUtility.php 
 <pre> 
 <?php 
 namespace Vendor\Website\Utility; 

 use TYPO3\CMS\Core\Messaging\AbstractMessage; 
 use TYPO3\CMS\Core\Messaging\FlashMessage; 
 use TYPO3\CMS\Core\Messaging\FlashMessageService; 
 use TYPO3\CMS\Core\SingletonInterface; 
 use TYPO3\CMS\Core\Utility\GeneralUtility; 

 /** 
  * Extension Manager Install Utility 
  */ 
 class InstallUtility implements SingletonInterface { 

	 /** 
	  * @var FlashMessageService 
	  */ 
	 protected $flashMessageService; 

	 /** 
	  * @param FlashMessageService $flashMessageService 
	  */ 
	 public function injectFlashMessageService(FlashMessageService $flashMessageService) { 
		 $this->flashMessageService = $flashMessageService; 
	 } 

	 /** 
	  * @param $extensionKey 
	  * @throws \TYPO3\CMS\Core\Exception 
	  */ 
	 public function addFlashMessageAfterExtensionInstall($extensionKey) { 
		 $flashMessageQueue = $this->flashMessageService->getMessageQueueByIdentifier('extbase.flashmessages.tx_extensionmanager_tools_extensionmanagerextensionmanager'); 

		 $messageBody = 'extension installed: '.$extensionKey; 
		
		 /* @var FlashMessage $flashMessage */ 
		 $flashMessage = GeneralUtility::makeInstance( 
			 FlashMessage::class, $messageBody, '', AbstractMessage::OK, TRUE 
		 ); 
		 $flashMessageQueue->enqueue($flashMessage); 
	 } 
 } 
 </pre> 

 I would love to add some HTML in the $messageBody but that gets htmlspechialchared. 

 Inspired by sgalinski's TypoScript Plugin for PhpStorm it would like likt so show an message like this: 

 <pre> 
 Thank you for using xxx plugin from xxx Simon Schaufelberger 

 You are using version 1.x now. 

 You can get the latest information about this release on our website(link). 
 If you think you found a bug, please report it in our issue tracker(link). 
 Also don't hesitate to inform us about new feature wishes(link). 
 </pre> 

 I would like to add a screenshot from phpstorm but I can't. Once the message is hidden, you cannot show it anymore even with down- and upgrade. 

 *Possible solution* 
 Fetch information from TER (sponsor links, documentation link, issue tracker) or make it possible to set it in an extension somehow maybe in ext_emconf.php

Back