1<?php 2 3/* 4 * This file is part of the TYPO3 CMS project. 5 * 6 * It is free software; you can redistribute it and/or modify it under 7 * the terms of the GNU General Public License, either version 2 8 * of the License, or any later version. 9 * 10 * For the full copyright and license information, please read the 11 * LICENSE.txt file that was distributed with this source code. 12 * 13 * The TYPO3 project - inspiring people to share! 14 */ 15 16namespace TYPO3\CMS\Install\Updates; 17 18use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; 19 20/** 21 * Installs and downloads EXT:feedit if requested 22 * @internal This class is only meant to be used within EXT:install and is not part of the TYPO3 Core API. 23 */ 24class FeeditExtractionUpdate extends AbstractDownloadExtensionUpdate 25{ 26 /** 27 * @var \TYPO3\CMS\Install\Updates\ExtensionModel 28 */ 29 protected $extension; 30 31 /** 32 * @var \TYPO3\CMS\Install\Updates\Confirmation 33 */ 34 protected $confirmation; 35 36 public function __construct() 37 { 38 $this->extension = new ExtensionModel( 39 'feedit', 40 'Deprecated feedit extension', 41 '10.0.0', 42 'friendsoftypo3/feedit', 43 'Contains an old approach for content editing in a TYPO3 Frontend.' 44 ); 45 46 $this->confirmation = new Confirmation( 47 'Are you sure?', 48 'This extension is outdated and does not work very well. ' . $this->extension->getDescription(), 49 false 50 ); 51 } 52 53 /** 54 * Return a confirmation message instance 55 * 56 * @return \TYPO3\CMS\Install\Updates\Confirmation 57 */ 58 public function getConfirmation(): Confirmation 59 { 60 return $this->confirmation; 61 } 62 63 /** 64 * Return the identifier for this wizard 65 * This should be the same string as used in the ext_localconf class registration 66 * 67 * @return string 68 */ 69 public function getIdentifier(): string 70 { 71 return 'feeditExtension'; 72 } 73 74 /** 75 * Return the speaking name of this wizard 76 * 77 * @return string 78 */ 79 public function getTitle(): string 80 { 81 return 'Install outdated extension "feedit" from TER if editors used this extension in earlier core versions.'; 82 } 83 84 /** 85 * Return the description for this wizard 86 * 87 * @return string 88 */ 89 public function getDescription(): string 90 { 91 return 'The extension "feedit" allows editing content elements directly in the Frontend.'; 92 } 93 94 /** 95 * Is an update necessary? 96 * Is used to determine whether a wizard needs to be run. 97 * 98 * @return bool 99 */ 100 public function updateNecessary(): bool 101 { 102 return !ExtensionManagementUtility::isLoaded('feedit'); 103 } 104 105 /** 106 * Returns an array of class names of Prerequisite classes 107 * This way a wizard can define dependencies like "database up-to-date" or 108 * "reference index updated" 109 * 110 * @return string[] 111 */ 112 public function getPrerequisites(): array 113 { 114 return [ 115 DatabaseUpdatedPrerequisite::class, 116 ]; 117 } 118} 119