Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

TYPO3.CMS/Releases/7.4/Breaking

From TYPO3Wiki
Jump to: navigation, search

Contents

Breaking: #39721 - Prototype.js and Scriptaculous removed

Description

The JavaScript libraries prototype.js and scriptaculous have been removed from the TYPO3 Core.

Impact

Any TYPO3 Extension that uses prototype.js or scriptaculous for usage in the Backend or Frontend will not work anymore.

The TypoScript properties page.javascriptLibs.Prototype and page.javascriptLibs.Scriptaculous.* have been removed and have no effect anymore, leading to not including prototype in websites where this TypoScript option is set. This might lead to broken websites when updating.

The shipped Fluid ViewHelper for backend modules does no longer have the according properties anymore and will throw a fatal error:

<f:be.container loadPrototype="false" loadScriptaculous="false" scriptaculousModule="someModule,someOtherModule">

Using the PageRenderer directly in any module, and calling one of the related methods will result in a fatal error.

PageRenderer->setPrototypePath()
PageRenderer->setScriptaculousPath()
PageRenderer->getPrototypePath()
PageRenderer->getScriptaculousPath()
PageRenderer->loadPrototype()
PageRenderer->loadScriptaculous()

Including the JavaScript files in a custom extension or custom frontend without using the API will lead to a 404 error when referencing one of the files.

Affected Installations

Instances that use prototype.js or scriptaculous in the Frontend.

Instances with third-party extensions that

require these libraries or set one of the options in the mentioned ViewHelper.

Instances that link to one of the JavaScript files directly.

Instances that use the PageRenderer API directly and use on of the methods above.

Migration

The preferred substitution is jQuery and RequireJS that are loaded by default in any TYPO3 Backend module, if any third-party code is needed based on prototype and/or scriptaculous. Alternatively, it is possible to ship a separate prototype.js and scriptaculous library in a third-party extension if no migration is possible with jQuery.

Breaking: #52705 - Default log configuration is changed

Description

FileWriter behavior has changed

The FileWriter of the logging Framework now appends a hash to its default log file which is used when no log file name is provided in the configuration.

The new default log file might now look like this (the hash depends on the current encryption key):

typo3temp/logs/typo3_7ac500bce5.log

Default configuration has changed

For security reasons we want the default log file of TYPO3 to contain a random hash to make guessing the file name harder.

Therefore the logFile configuration is removed for the default FileWriter configuration.

Additionally the "deprecated" FileWriter configuration is removed because it is not used by the core.

Impact

If the log file configuration is not overwritten the TYPO3 default log file will change from typo3temp/logs/typo3.log to typo3temp/logs/typo3_<hash>.log.

Installations with Extensions making use of the changed / removed log configurations might break.

Affected Installations

All instances that expect the default log file to be typo3temp/logs/typo3.log for some reason.

All instances that expect the logFile configuration to be present in the writerConfiguration for some reason.

All instances that use the "deprecated" log configuration in their Extensions.

All instances that use Extensions which extend the FileWriter and access the $defaultLogFile class property which is replaced by $defaultLogFileTemplate and the getDefaultLogFileName() method.

Migration

Adjust the log configuration according to your needs in your LocalConfiguration.php.

Adjust any Extension code affected by the changes if needed.

Breaking: #55759 - HTML in link titles not working anymore

Description

By introducing proper handling of double quotes in link titles (TypoLink fields) the processing of the link title is adjusted. Escaping will be done automatically now.

Impact

Existing link titles, which contain HTML escape sequences, will not be shown correctly anymore in Frontend.

Example: A link title Some &quot;special&quot; title will be output as Some &amp;quot;special&amp;quot; title

Affected Installations

Any installation using links with titles containing HTML escape sequences like &quot; or &gt;

Migration

Change the affected link titles to contain the plain characters, the correct encoding will be taken care of automatically.

Example: Some "special" title

If you need to encode a TypoLink manually in code, use the TypoLinkCodecService class, which provides a convenient way to encode a TypoLink from its fragments.

Breaking: #56133 - New BE user permission "Files: replace"

Description

A new feature was introduced to replace files in the file list. For this feature an new permission was introduce "Files: replace". This permission is now also checked when a BE user uploads a file with the same name.

Impact

BE users need the permission "Files: replace" before they are allowed to replace a file by uploading a file with the same name.

Affected Installations

All installations.

Migration

An upgrade wizard was added to set this permission for all BE users that already are allowed to write files as this was the old permissions check.

Breaking: #56951 - Remove unused methods in PagePositionMap

Description

Remove unused methods in PagePositionMap

Impact

A fatal error will be thrown if one of the removed methods is used. The removed methods are:

insertQuadLines JSimgFunc

Affected Installations

Installations that use one of the removed methods.

Migration

Use proper styling for a tree list.

Breaking: #63838 - Changed OpcodeCacheUtility being a service class

Description

The OpcodeCacheUtility has been migrated to a service class called OpcodeCacheService, all methods are not static anymore.

Impact

Calling OpcodeCacheUtility will throw a fatal error.

Affected Installations

All third-party extensions using the utility class will be affected.

Migration

Create an instance of OpcodeCacheService and call its method by the object operator ->.

Example:

GeneralUtility::makeInstance(OpcodeCacheService::class)->clearAllActive($cacheEntryPathAndFilename);

Breaking: #64200 - Custom [cObject].cache.* TypoScript evaluation

Description

The stdWrap.cache. property is now available as first-class function to all content objects. This skips the rendering even for content objects that evaluate stdWrap after rendering (e.g. COA).

Additionally, stdWrap support is added to key, lifetime and tags.

Impact

If you've previously used the cache. property in your custom cObject, this will now fail, because cache. is unset to avoid double caching.

stdWrap.cache continues to exist and can be used as before. However the top level stdWrap of certain cObjects (e.g. TEXT cObject) will not evaluate cache. as part of stdWrap, but before starting the rendering of the cObject. In conjunction the storing will happen after the stdWrap processing right before the content is returned.

Top level cache. will not evaluate the hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap_cacheStore'] any more.

Affected Installations

All installations with custom cObject implementations which make use of the cache. property.

Installations that purposely rely on the content object being evaluated before the cache is tried.

Installations that rely on the order of the cache. evaluation.

Installations that make use of the hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap_cacheStore'] on top level cache..

Migration

Rename your property or rely on the Core implementation.

If you need cache. being evaluated as part of stdWrap, please move it down one level by writing stdWrap.cache instead.

If you used the hook $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['stdWrap_cacheStore'], please use stdWrap and the available hooks inside stdWrap to achieve your goal.

Breaking: #64714 - Catch exceptions for inaccessible storages

Description

Changed \TYPO3\CMS\Core\Resource\Exception\ResourcePermissionsUnavailableException to extend from \TYPO3\CMS\Core\Resource\Exception instead of \RuntimeExtension

Impact

If a call to \TYPO3\CMS\Core\Resource\Driver\LocalDriver->getPermissions() throws an exception and your extension catches \RuntimeExtension it breaks on permission read errors.

Migration

To write a compatible extension you can do following in your catch block:

} catch(\RuntimeException $e) {
    // Do exception handling
} catch(\TYPO3\CMS\Core\Resource\Exception\ResourcePermissionsUnavailableException $e) {
    // Do same exception handling
}

Breaking: #65305 - DriverInterface has been extended

Description

The getFolderInFolder() and getFileInFolder() functions have been added to DriverInterface.

Impact

Any FAL driver extension will stop working due to the change in the interface.

Affected Installations

Any installation with a custom FAL driver, like WebDAV or Dropbox.

Migration

The functions getFolderInFolder() and getFileInFolder() must be added to the custom FAL driver. A non-hierarchical driver needs to throw a "not implemented" exception when calling these functions.

Breaking: #66602 - Check jumpUrl referer has been removed

Description

The following method has been removed:

TypoScriptFrontendController::checkJumpUrlReferer()

Impact

Calls to this method will result in a fatal error.

Affected Installations

Instances with third-party extensions calling this method.

Breaking: #67545 - PreFileAdd signal behaviour changed

Description

In order to check whether an uploaded file exists already before uploading or to determine user preferences about present files only when needed, the final name of the file is needed. As the final name can be altered by the PreFileAdd signal, which originally always received the temporary uploaded file path as parameter, the signal will now receive an empty string in $sourceFilePath.

Impact

All PreFileAdd slot methods that depend on the $sourceFilePath param must be adapted to handle the new empty string value.

Affected Installations

All extensions that use the PreFileAdd signal and depend on the $sourceFilePath param.

Breaking: #67546 - Cleanup Flash message rendering in FlashMessageQueue

Description

The rendering of flash messages has changed when using the view helper. Now the rendering output of \TYPO3\CMS\Core\Messaging\FlashMessageQueue::renderFlashMessages() is adapted to being exactly the same.

Impact

Extensions using the rendered output of \TYPO3\CMS\Core\Messaging\FlashMessageQueue::renderFlashMessages() and in addition using HTML tags in flash messages for styling purposes will get their HTML flash message output properly HTML encoded. Thus the HTML tags will be visible in the rendered flash message output.

Since \TYPO3\CMS\Backend\Template\DocumentTemplate also uses this rendering type, modules using this class will also be affected.

Affected Installations

All extensions that use modules with \TYPO3\CMS\Backend\Template\DocumentTemplate or are using \TYPO3\CMS\Core\Messaging\FlashMessageQueue::renderFlashMessages() directly.

Migration

Remove all HTML from flash messages.

Breaking: #67557 - Language file of Opendocs was moved

Description

The language file locallang_opendocs.xlf of EXT:opendocs has been moved to Resources/Private/locallang.xlf.

Impact

Inclusion of the file via $this->getLanguageService()->includeLLFile() or usage in <f:translate key="LLL:EXT:opendocs/locallang_opendocs.xlf:foobar" />. will fail.

Affected Installations

Every extension relying on the existence of locallang_opendocs.xlf will be affected.

Migration

Use Resources/Private/Language/locallang.xlf, if required.

Breaking: #67565 - Deprecated backend related methods removed

Description

The following deprecated methods have been removed:

DocumentTemplate::formWidthText()
PageLayoutView::getBackendLayoutConfiguration()
PageLayoutView::wordWrapper()

Impact

Calls to these methods will result in a fatal error.

Affected Installations

Instances with third-party extensions calling one of these methods.

Breaking: #67577 - rte_enabled and flag handling

Description

Content elements of type text and text with image contained a field "RTE enabled" that could be unchecked to disable the rich text editor. This field has been removed together with the TCA richtext flag handling.

Impact

The field is removed from database and the flag information is lost.

Affected Installations

All instances will no longer show the "RTE enabled" field below text and text with image content elements below the text field, the TCA flag is obsolete, see example below.

Migration

A typical rich text configuration in TCA looked like:

'content' => array(
    'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.text',
    'config' => array(
        'type' => 'text',
        'cols' => '48',
        'rows' => '5',
        'wizards' => array(
            'RTE' => array(
                ...
            )
        )
    ),
    'defaultExtras' => 'richtext:rte_transform[flag=otherField|mode=ts_css]',
),

With this configuration RTE was only rendered if otherField had the value 1. This flag is obsolete now:

'defaultExtras' => 'richtext:rte_transform[mode=ts_css]',

Breaking: #67646 - PHP library inclusion in frontend removed

Description

The PHP library inclusion into the TYPO3 Frontend has been removed without substitution. Previously it was used to include plain PHP scripts during the Frontend request.

The method PageGenerator::getIncFiles() has been removed.

Impact

The TypoScript options config.includeLibrary and config.includeLibs have no effect anymore. Any calls to PageGenerator::getIncFiles() will result in a fatal error.

Affected Installations

Any installation using the TypoScript options named above. Any third party code using the method named above.

Migration

Use hooks during the Frontend set up to execute custom PHP code.

Breaking: #67654 - Remove $GLOBALS[FILEICONS] functionality

Description

The global variable $GLOBALS['FILEICONS'] was in use for displaying icons before the sprite icons for files were introduced in TYPO3 v4.4.

The $FILEICONS has been removed completely as well as the function call BackendUtility::getFileIcon().

Impact

Any usage on $GLOBALS['FILEICONS'] will have no effect anymore.

Any calls on BackendUtility::getFileIcon() will result in a fatal error.

Affected Installations

Instances that populate or make use of $GLOBALS['FILEICONS'] or installations with extensions calling BackendUtility::getFileIcon() directly.

Migration

Use sprite icons via IconUtility::getSpriteIconForFile().

Breaking: #67749 - Force class auto loading for various hooks

Description

Some hook registrations now rely on class auto loading.

Impact

Hooks may not be called any longer if class auto loader can not find the class.

Affected Installations

Instances using

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tce']['formevals']
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['accessLevelCheck']

Migration

Make sure the hook classes are found with the casual auto loading mechanism that is also used for all other PHP classes. The hook registration can be simplified to an empty value, example:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tce']['formevals'][\TYPO3\CMS\Saltedpasswords\Evaluation\FrontendEvaluator::class] = '';

Breaking: #67753 - Drop "Show secondary options"

Description

When editing records, the checkbox at the bottom "Show secondary options (palettes)" has been dropped, palettes are now always shown and the collapse buttons are no longer rendered.

Impact

PageTSconfig

Setting options.enableShowPalettes has no effect anymore and can be removed from PageTSconfig.

TCA

Setting canNotCollapse in ctrl and palettes section are obsolete and can be dropped:

$GLOBALS['TCA']['aTable']['ctrl']['canNotCollapse'] = 1; // Obsolete
$GLOBALS['TCA']['aTable']['palettes']['aPaletteName']['canNotCollapse'] = 1; // Obsolete

PHP

The following method has been dropped. If an extension calls it, a PHP fatal error will be thrown. This was an internal method and external usage is unlikely:

\TYPO3\CMS\Backend\Controller\EditDocumentController->functionMenus()

The following properties have been dropped, calling those may trigger a PHP warning level error, external usage is unlikely:

\TYPO3\CMS\Backend\Controller\EditDocumentController->MOD_MENU
\TYPO3\CMS\Backend\Controller\EditDocumentController->MOD_SETTINGS
\TYPO3\CMS\Backend\Form\FormEngine->palettesCollapsed

Affected Installations

In the rare case that an extension uses one of the above methods or properties, a fatal PHP error may be triggered.

Migration

The above properties can be dropped, the PageTS and TCA settings have no effect anymore.

Breaking: #67792 - Class aliases of Indexed Search removed

Description

The class aliases of the Indexed Search extension are removed.

Impact

These class aliases are not available anymore:

  • tx_indexedsearch
  • Tx_IndexedSearch_Controller_SearchController

Affected Installations

Any third party code using the old class aliases.

Migration

Use the new class names:

  • \TYPO3\CMS\IndexedSearch\Controller\SearchFormController
  • \TYPO3\CMS\IndexedSearch\Controller\SearchController

Breaking: #67811 - Rte API

Description

The RTE implementation was based on the main classes \TYPO3\CMS\Backend\Rte\AbstractRte, \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaBase and \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaApi. These three main API were removed or changed method signatures and internal method calls.

The functionality to render RTE standalone and out of a context of FormEngine was dropped.

Impact

Main API changes

  • Method TYPO3\CMS\Backend\Utility\BackendUtility::RTEgetObj() is deprecated and no longer used. FormEngine now creates a RichTextElement with NodeFactory and makeInstance(), the created object is not a singleton but a prototype.
  • With the deprecation of RTEgetObj method transformContent from AbstractRte has been inlined to DataHandler.
  • Method isAvailable from AbstractRte has been dropped. Every valid browser and browser version for TYPO3 CMS 7 can render the default richtext editor. Custom checks may be implement via NodeResolverInterface in FormEngine.
  • Property RTE_errors in TYPO3\CMS\Core\Authentication\BackendUserAuthentication has been dropped along with the RTEgetObj() deprecation.

RTE registration

  • Different richtext implementations can no longer register in $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_reg']. Instead, registration must be done in FormEngine via NodeFactory API, the method drawRTE has been dropped.
  • Transformations are not available via AbstractRte anymore, hooks within RteHtmlParser can be used for custom transformations.

PHP classes

  • \TYPO3\CMS\Backend\Rte\AbstractRte has been dropped.
  • \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaBase has been dropped and its functionality was moved to \TYPO3\CMS\Rtehtmlarea\Form\Element\RichtextElement. All methods and properties except the main entry method render() used by FormEngine are protected.
  • \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaApi has been refactored. Method main() receives a configuration array instead of an instance of the parent object. Some methods were dropped and are no longer called.

RTE Plugin Configuration

  • Parameter $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['anExtensionKey']['plugins']['aPluginName']['addIconsToSkin'] was dropped, plugin property relativePathToSkin is no longer evaluated.
  • A couple of helper methods were added to RteHtmlAreaApi
  • This API may get further changes in the future.

Affected Installations

Extensions that extend one of the above mentioned extensions or API.

Migration

Adapt the code using these methods.

Breaking: #67815 - Remove tceforms.js because we don't need it anymore

Description

Since the value slider is based on bootstrap, the last code from tceforms.js is not needed anymore.

Impact

All instances which include sysext/backend/Resources/Public/JavaScript/tceforms.js will produce a 404 Not Found error.

Affected Installations

All instances which include sysext/backend/Resources/Public/JavaScript/tceforms.js.

Migration

Remove all references to the file.

Breaking: #67824 - typo3/ext folder removed

Description

The folder typo3/ext does not exist in the default core package anymore. The functionality to have global extensions in this directory is not touched.

Impact

In case global extensions are moved to this directory during deployment or rollout, the directory must be created before, now.

Affected Installations

Instances that use global extensions within typo3/ext.

Migration

Create directory typo3/ext before moving extensions into this folder.

Breaking: #67825 - Remove colorpicker options "dim" and "tableStyle"

Description

TCA colorpicker options "dim" and "tableStyle" have been removed.

Impact

The TCA options won't have any effect anymore.

Affected Installations

Any extension that has a colorpicker wizard configured in TCA and uses dim or tableStyle options is effected.

Migration

Both options can de safely removed.

Breaking: #67890 - Redesign FluidTemplateDataProcessorInterface to DataProcessorInterface

Description

The FluidTemplateDataProcessorInterface introduced with #66907 has been refactored to DataProcessorInterface.

This decouples it from the Fluid StandaloneView and makes the ContentObjectRenderer available in the process method so the different DataProcessor classes do no have to initiate it on their own. Instead of manipulating the $data property of the ContentObjectRenderer a new key/value store can be filled/manipulated by the different dataProcessor classes.

The new interface expects the following process() method:

/**
 * Process content object data
 *
 * @param ContentObjectRenderer $cObj The data of the content element or page
 * @param array $processorConfiguration The configuration of this processor
 * @param array $contentObjectConfiguration The configuration of Content Object
 * @param array $processedData Key/value store of processed data (e.g. to be passed to a Fluid View)
 * @return array the processed data as key/value store
 */
public function process(
    ContentObjectRenderer $cObj,
    array $contentObjectConfiguration,
    array $processorConfiguration,
    array $processedData
);

Impact

This will break all frontend rendering for TYPO3 7.3 installations that use FLUIDTEMPLATE .dataProcessing.

Affected Installations

All TYPO3 7.3 installations that already use the new FLUIDTEMPLATE .dataProcessing option.

Migration

Change the interface of all DataProcessor classes from FluidTemplateDataProcessorInterface to the new DataProcessorInterface and adjust the process() method to match the new parameters and make sure it returns the processed data as the processed data.

Breaking: #67946 - LowLevel Cleaner Scripts Removed

Description

The shell scripts for checking and cleaning a TYPO3 installation for its integrity have been removed from the Core. They were previously located under typo3/cleaner_check.sh and typo3/cleaner_fix.sh. The contents have been moved to the documentation for EXT:lowlevel in the respective README.rst.

Impact

Any regular system jobs that execute these scripts will exit with the script not found anymore.

Affected Installations

Any installation that uses the shell scripts above from the command line directly.

Migration

If such a list is needed, create the files manually again in your system (outside your document root). The code can be found inside EXT:lowlevel/README.rst.

Breaking: #67987 - Removed entry script handling

Description

Definition and handling of constants TYPO3_MOD_PATH and PATH_typo3_mod have been dropped. These constants were important for modules that were still not called through the mod.php _DISPATCH system that was introduced in TYPO3 CMS version 4.2. It is required to route modules through typo3/mod.php from now on in case the module relies on the definition of those constants.

The following old entry scripts were removed:

  • typo3/sysext/cms/layout/db_layout.php, use \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('web_layout') to link to the module
  • typo3/sysext/cms/layout/db_new_content_el.php, use \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('new_content_element') to link to the module

Impact

Path resolving may fail for scripts that rely on entry points different from typo3/mod.php Constants TYPO3_MOD_PATH and PATH_typo3_mod are not defined anymore and scripts may throw a PHP warning if they try to access these constants.

Affected Installations

Installations may fail if linking to modules that use an entry script with a conf.php file that do not use $MCONF['script'] = '_DISPATCH';. Those modules must be adapted to the mod.php entry point and may need adaption of further references that are defined relative to the entry script.

Searching for extensions with backend modules that define TYPO3_MOD_PATH is a good start to find unwanted usages.

Breaking: #68001 - Removed ExtJS Core and ExtJS Adapters

Description

The functionality of "ExtCore", which acts as a slim ExtJS base functionality similar to what libraries like underscore.js or jQuery do, but is just dated, has been completely removed from the TYPO3 Core.

The custom adapters which have previously been shipped with ExtJS to allow jQuery functionality to be used with ExtJS underneath have been removed without substitution. The adapters are not compatible with supported jQuery, prototype.js or YUI versions anymore and their usages have been slower than ExtJS's base library natively.

Impact

Using TypoScript options page.javascriptLibs.ExtCore = 1, page.javascriptLibs.ExtCore.debug = 1 and page.javascriptLibs.ExtJs.adapter have no effect anymore.

Using <f:be.container> ViewHelpers in a custom Backend module, setting the extJsAdapter, property will result in a fatal error.

Calling $pageRenderer->loadExtJS() with a custom third parameter will have no effect anymore.

Calling the methods loadExtCore(), enableExtCoreDebug(), getExtCorePath() and setExtCorePath() of PageRenderer will result in fatal errors.

Affected Installations

Instances that use ExtCore in the TYPO3 Frontend

Extensions that use <f:be.container> with an ExtJS Adapter

Extensions that use the PageRenderer object directly to load custom ExtJS or ExtCore.

Migration

Use alternatives for ExtCore or adapters in custom extensions.

Breaking: #68010 - T3Editor - Event callbacks for codecompletion have changed

Description

Due to the rewrite of T3Editor to jQuery, the event callbacks for codecompletion have changed.

Impact

Plugins for codecompletion written in Prototype will not work anymore.

Affected Installations

Every third-party extension providing a T3Editor plugin extending the codecompletion.

Migration

Port the plugin to an AMD module. The event callbacks are now part of the module object and not a standalone function anymore.

Example code:

CoolPlugin.afterKeyDown = function(currWordObj, compResult) {
    CoolPlugin.somethingFunky(currWordObj, compResult);
};

Breaking: #68010 - T3Editor - Plugin registration for codecompletion has changed

Description

Due to the rewrite of T3Editor to jQuery, the plugin registration for codecompletion has changed.

Impact

Plugins for codecompletion written in Prototype will not work anymore.

Affected Installations

Every third-party extension providing a T3Editor plugin extending the codecompletion.

Migration

Port the plugin to an AMD module. The plugin must have an init method with a configuration object as only parameter. Every parameter that was passed to the old Prototype function must be in that configuration object. Please see the example code below or consult EXT:t3editor/Resources/Public/JavaScript/Plugins/CodeCompletion/DescriptionPlugin.js.

Example code:

define('Awesome/Extension/Plugins/CodeCompletion/CoolPlugin', [
    'jquery',
    'TYPO3/CMS/T3editor/Plugins/CodeCompletion/TsRef',
    'TYPO3/CMS/T3editor/Plugins/CodeCompletion/TsParser'
], function ($, TsRef, TsParser) {
    var CoolPlugin = {
        codeCompleteBox: null,
        codemirror: null
    };

    CoolPlugin.init = function(configuration) {
        DescriptionPlugin.codeCompleteBox = configuration.codeCompleteBox;
        DescriptionPlugin.codemirror = configuration.codemirror;

        DescriptionPlugin.codeCompleteBox.parent().append($('&lt;div /&gt;', {class: 'foomatic}));
    };

    return CoolPlugin;
});

Breaking: #68020 - Dropped DisableBigButtons

Description

The TSconfig option mod.web_layout.disableBigButtons has been dropped, setting it to 0 has no effect anymore.

Impact

The option is ignored and instances using this will not get the buttons rendered in page module anymore.

These methods have been removed, but it is very unlikely an extension is affected:

  • TYPO3\CMS\Backend\View\PageLayoutView->linkRTEbutton()
  • TYPO3\CMS\Backend\View\PageLayoutView->isRTEforField()
  • TYPO3\CMS\Backend\View\PageLayoutView->getSpecConfForField()

Affected Installations

Instances that had User / Page TSconfig with this option may have a slightly different Web -> Page view.

Breaking: #68092 - TCA: Remove wizard hideParent and _HIDDENFIELD

Description

Wizards defined in TCA for display in FormEngine allowed to hide the "parent" field with the configuration options _HIDDENFIELD on main wizard level, and with the hideParent option for single wizards.

Both options have been dropped.

Impact

The configuration options have no effect anymore, the main field will show up.

Affected Installations

A search through the TER code showed not a single extension that used the above options. A 3rd party extension is affected if a TCA column configuration is used like:

'aField' => array(
    'config' => array(
        ...
        'wizards' => array(
            '_HIDDENFIELD' => TRUE,
            'aWizard' => array(
                'hideParent' => array(
                    ...
                ),
            ),
        ),
    ),
),

Migration

Wizards can not trigger that a main field is not rendered anymore. If this kind of functionality is needed, it is recommended to register an own renderType in the NodeFactory for this type of field instead to route the element rendering to an own class.

Breaking: #68116 - Drop RTE.userLinks functionality

Description

Drop RTE.userLinks functionality from the ElementBrowser. The option was broken since 6.0 and has been removed now.

Impact

The special option won't show up in the ElementBrowser anymore.

Affected Installations

All installations which use the option RTE.userLinks

Migration

Use the newly added Tabbing API to add your custom link selection tab.

Breaking: #68131 - Streamline error and exception handling

Description

It is not possible any more to change error and exception handling configuration in an ext_localconf.php of an extension.

Impact

Error or exception handling configuration overridden in ext_localonf.php files will not work any more.

Affected Installations

All installations with extension that set error or exception handling configuration in ext_localconf.php files.

Migration

Configure error and exception handling in LocalConfiguration.php or AdditionalConfiguration.php

Breaking: #68150 - $GLOBALS['CLIENT']

Description

The initialization of the $GLOBALS['CLIENT'] variable has been dropped.

Impact

Extensions that use $GLOBALS['CLIENT'] will cause a PHP notice or may not function properly any more.

Affected Installations

Installations with extensions that use $GLOBALS['CLIENT'] are affected.

Migration

Extensions can still use GeneralUtility::clientInfo() API to retrieve the same information.

Breaking: #68178 - Drop $GLOBALS['TYPO3_CONF_VARS']['SYS]['form_enctype']

Description

Setting $GLOBALS['TYPO3_CONF_VARS']['SYS]['form_enctype'] has been dropped without replacement.

Impact

Extensions that used this setting in forms may end up with an empty enctype attribute in HTML form fields.

Affected Installations

Extensions that rely on this variable being set.

Migration

Substitute the variable access with multipart/form-data.

Breaking: #68186 - Adjusted and removed methods in eID area

Description

eID scripts now use Request and Response objects to retrieve and output data.

Due to adjustments of the Core eID scripts a few methods have been adjusted.

ExtDirectEidController::routeAction is now protected and has a changed signature.

The following methods have been removed:

  • ExtDirectEidController::actionIsAllowed()
  • ExtDirectEidController::render()
  • EidUtility::isEidRequest()
  • EidUtility::getEidScriptPath()

Additionally calling an non-existent eID key will result in a fatal error.

Impact

All third party code using those methods will cause a fatal PHP error.

Affected Installations

All installations using third party code accessing one of the adjusted (or removed) methods.

Migration

No replacement for the mentioned methods is provided. Consider migrating your eID scripts to the new PSR-7 compliant model.

Breaking: #68193 - Drop removeLoginpagesWithContentHash from Indexer.php

Description

The method \TYPO3\CMS\IndexedSearch\Indexer::removeLoginpagesWithContentHash() was not used within the core since 6.0 and has been removed.

Impact

Calling \TYPO3\CMS\IndexedSearch\Indexer::removeLoginpagesWithContentHash() will throw a fatal error.

Affected Installations

All installations with third party code using the mentioned method.

Migration

No migration is available.

Breaking: #68206 - Remove usage of typolist and typohead in RTE

Description

The transformation for the tags typolist and typohead have been removed from the RTE. The option and method internalizeFontTags() from RteHtmlParser have been removed.

Impact

The tags are not processed anymore by the RteHtmlParser. Fonts are not internalized anymore.

Affected Installations

All installations using the custom tags typolist and typohead. All installations that use the method internalizeFontTags() will throw an fatal error.

Migration

Substitute the tags by a tag ulor header. Remove any usage of internalizeFontTags()`

Breaking: #68243 - Move not used FrontendDocumentTemplate

Description

Move unused FrontendDocumentTemplate to ext:compatibility6.

Impact

Installations still using FrontendDocumentTemplate require ext:compatibility6 to be installed.

Affected Installations

Installations still using FrontendDocumentTemplate.

Migration

Install ext:compatibility6 or adapt the code to not use the FrontendDocumentTemplate functionality.

Adapting the code is highly recommended.

Breaking: #68276 - Remove ExtJS Quicktips if possible

Description

The method PageRenderer::enableExtJSQuickTips(), which was used to enable ExtJS quicktips, has been removed. In some places like RTE or workspaces the Quicktips are still in use, but will be removed as soon as possible.

Impact

All calls to the PHP method PageRenderer::enableExtJSQuickTips() will throw a fatal error.

Affected Installations

Instances which make use of PageRenderer::enableExtJSQuickTips().

Migration

No migration, use bootstrap tooltips, which work out of the box as alternative. Simple add data-toggle="tooltip" and data-title="your tooltip" to any element you want.

Example

<a href="#" data-toggle="tooltip" data-title="My very nice title">My Link</a>

Breaking: #68321 - Move language and images in rtehtmlarea

Description

All language files and images have been moved.

Impact

Labels and images may be not displayed if TypoScript from the sample files is used.

Affected Installations

All installations that use the TypoScript settings from the provided sample files.

Migration

Adjust the path to language and image files according the sample TypoScript files provided by the extension.

Breaking: #67932 - felogin template has been changed for RSA encryption

Description

Due to the introduction of the new rsaauth API the felogin template has been changed.

A new HTML data-attribute had to be added to the password field in order to enable the RSA encryption Javascript code.

Impact

If rsaauth is enabled and the template is not updated, no login is possible.

Affected Installations

Any installation using a custom felogin template and having rsaauth enabled for frontend.

Migration

The template has to be adjusted and a ``data-rsa-encryption`` attribute has to be added to the password field in ````

The field definition in your template has to be updated to like this:

<input type="password" id="pass" name="pass" value="" data-rsa-encryption="" />