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

TYPO3.CMS/Releases/7.6/Breaking

From TYPO3Wiki
Jump to: navigation, search

Contents

Breaking: #24449 - Use move placeholders as default in workspaces

Description

The ctrl section of each TCA table has the property "versioningWS" which might be set to "1" (enabled) or to "2" which enables "move placeholders" functionality.

The "move placeholders" are now active by default, removing the possibility to have a "simple workspace" concept which does not consider sorting records inside a workspace.

Impact

All checks in TYPO3 consider all TCA tables that have workspaces enabled ("versioningWS") to be move-placeholder-aware. All TCA tables that only have non-moveable-records in workspace now need the DB table field "t3ver_moveid" to be added.

All existing TCA configurations with "versioningWS" can now simply be set to TRUE instead of "2".

Affected Installations

Any installation with third-party extensions that use workspace functionality but do not have move-placeholder-enabled records.

Migration

Make all TCA tables "move-placeholders" aware by adding the necessary database field "t3ver_moveid".

Breaking: #62812 - Resolve URLs to "Link to external URL"-pages directly

Description

The behaviour of pages with the type "Link to External URL" has changed for menus. Those pages link now directly to the provided url instead of linking the internal page with a redirect afterwards.

Breaking: #63406 - Respect rootLevel configuration in extbase queries

Description

The rootLevel of a table can be configured to 0, 1 or -1 in TCA, to define where records of a table can be found in the system:

  • 0: In the page tree only
  • 1: Only on the root page (pid 0)
  • -1: Both, on the root page and in the page tree

Currently only 0 and 1 are respected by the Typo3DbQueryParser when building the pageId statement. This means that a rootLevel of -1 does not get any pageId statement at all and therefore ignores any storagePid configuration for extbase plugins.

Impact

Custom records that have a configuration like this $GLOBALS['TCA']['tx_myext_domain_model_record']['ctrl']['rootLevel'] = -1 and are used in extbase plugins might have trouble finding the records if plugin.tx_myext.persistence.storagePid is not configured properly.

Affected Installations

Third party code using $GLOBALS['TCA']['tx_myext_domain_model_record']['ctrl']['rootLevel'] = -1 with records within the page tree and without a proper storagePid configuration.

Migration

Set plugin.tx_myext.persistence.storagePid to the page ids you want to find records from. 0 does not need to be included as it is added to the statement automatically.

Breaking: #66369 - Removed ElementBrowser related classes

Description

The following classes have been removed without replacement

* TYPO3CMSCoreElementBrowserElementBrowserHookInterface
  • TYPO3CMSRecordlistBrowserElementBrowser
  • TYPO3CMSRtehtmlareaBrowseLinks
  • TYPO3CMSRtehtmlareaFolderTree
  • TYPO3CMSRtehtmlareaPageTree

Impact

Any code still using the aforementioned classes will cause a fatal error.

Affected Installations

Any code still using the aforementioned classes.

Migration

Use the new API for adding element browsers or link handlers.

Breaking: #69227 - Strings for like are not properly escaped

Description

The following constants have been removed:

  • \TYPO3\CMS\IndexedSearch\Controller\SearchFormController::WILDCARD_LEFT
  • \TYPO3\CMS\IndexedSearch\Controller\SearchFormController::WILDCARD_RIGHT
  • \TYPO3\CMS\IndexedSearch\Domain\Repository\IndexSearchRepository::WILDCARD_LEFT
  • \TYPO3\CMS\IndexedSearch\Domain\Repository\IndexSearchRepository::WILDCARD_RIGHT

Impact

The mentioned constants don't exist anymore.

Affected Installations

Third party code using the mentioned constants.

Migration

Use the new constants:

  • \TYPO3\CMS\IndexedSearch\Utility\LikeWildcard::LEFT
  • \TYPO3\CMS\IndexedSearch\Utility\LikeWildcard::RIGHT

Breaking: #69916 - Hook ajaxSaveCode of t3editor changed

Description

The $ajaxObj parameter has been replaced by PSR-7-compliant $request and $response objects.

Impact

Using the $ajaxObj parameter will result in a fatal error.

Affected Installations

All 3rd party extensions using the $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/t3editor/classes/class.tx_t3editor.php']['ajaxSaveCode'] hook are affected.

Migration

Make use of ServerRequestInterface and ResponseInterface, see typo3/sysext/t3editor/Classes/Hook/FileEditHook.php for reference.

Breaking: #69916 - Registered AJAX handlers replaced by routes

Description

AJAX handlers registered in the core by ExtensionManagementUtility::registerAjaxHandler() have been replaced by AJAX routes, which are registered inside any extension under Configuration/Backend/AjaxRoutes.php.

The routes registered in AjaxRoutes.php are available via JavaScript via TYPO3.settings.ajaxUrls[routeIdentifier].

Impact

Calling removed AJAX identifiers will result in an error. Please see the table below for migration.

Affected Installations

All 3rd party extensions using one of the removed handlers is affected.

Migration

Please see the table to get the new AJAX identifier.

EXT:backend

Old identifier New identifier New AJAX ID
SC_alt_db_navframe::expandCollapse sc_alt_db_navframe_expandtoggle /ajax/sc-alt-db-navframe/expandtoggle
SC_alt_file_navframe::expandCollapse sc_alt_file_navframe_expandtoggle /ajax/sc-alt-file-navframe/expandtoggle
TYPO3_tcefile::process file_process /ajax/file/process
TYPO3_tcefile::fileExists file_exists /ajax/file/exists
t3lib_TCEforms_inline::createNewRecord record_inline_create /ajax/inline/create
t3lib_TCEforms_inline::getRecordDetails record_inline_details /ajax/inline/record-details
t3lib_TCEforms_inline::synchronizeLocalizeRecords record_inline_synchronizelocalize /ajax/inline/synchronizelocalize
t3lib_TCEforms_inline::setExpandedCollapsedState record_inline_expandcollapse /ajax/inline/expandcollapse
t3lib_TCEforms_suggest::searchRecord record_suggest /ajax/wizard/suggest/search
ShortcutMenu::getShortcutEditForm shortcut_editform /ajax/shortcut/editform
ShortcutMenu::saveShortcut shortcut_saveform /ajax/shortcut/saveform
ShortcutMenu::render shortcut_list /ajax/shortcut/list
ShortcutMenu::delete shortcut_remove /ajax/shortcut/remove
ShortcutMenu::create shortcut_create /ajax/shortcut/create
SystemInformationMenu::load systeminformation_render /ajax/system-information/render
ModuleMenu::reload modulemenu /ajax/module-menu
BackendLogin::login login /ajax/login
BackendLogin::logout logout /ajax/logout
BackendLogin::refreshLogin login_refresh /ajax/login/refresh
BackendLogin::isTimedOut login_timedout /ajax/login/timedout
ExtDirect::getAPI ext_direct_api /ajax/ext-direct/api
ExtDirect::route ext_direct_route /ajax/ext-direct/route
DocumentTemplate::getFlashMessages flashmessages_render /ajax/flashmessages/render
ContextMenu::load contextmenu /ajax/context-menu
DataHandler::process record_process /ajax/record/process
UserSettings::process usersettings_process /ajax/user-settings/process
ImageManipulationWizard::getHtmlForImageManipulationWizard wizard_image_manipulation /ajax/wizard/image-manipulation
LiveSearch livesearch /ajax/livesearch
OnlineMedia::add online_media_create /ajax/online-media/create

EXT:beuser

Old identifier New identifier New AJAX ID
PermissionAjaxController::dispatch user_access_permissions /users/access/permissions

EXT:context_help

Old identifier New identifier New AJAX ID
ContextHelpAjaxController::dispatch context_help /context-help

EXT:opendocs

Old identifier New identifier New AJAX ID
TxOpendocs::renderMenu opendocs_menu /opendocs/menu
TxOpendocs::closeDocument opendocs_close /opendocs/close

EXT:recycler

Old identifier New identifier New AJAX ID
RecyclerAjaxController::dispatch recycler /recycler

EXT:rsaauth

Old identifier New identifier New AJAX ID
BackendLogin::getRsaPublicKey rsa_publickey /rsa/publickey
RsaEncryption::getRsaPublicKey rsa_publickey /rsa/publickey

EXT:rtehtmlarea

Old identifier New identifier New AJAX ID
rtehtmlarea::spellchecker rtehtmlarea_spellchecker /rte/spellchecker

EXT:t3editor

Old identifier New identifier New AJAX ID
T3Editor::saveCode t3editor_save /t3editor/save
T3Editor::getPlugins t3editor_get_plugins /t3editor/get-plugins
T3Editor_TSrefLoader::getTypes t3editor_tsref /t3editor/tsref
T3Editor_TSrefLoader::getDescription t3editor_tsref /t3editor/tsref
CodeCompletion::loadTemplates t3editor_codecompletion_loadtemplates /t3editor/codecompletion/load-templates
  • T3Editor_TSrefLoader::getTypes and T3Editor_TSrefLoader::getDescription have been combined. The separation is done by the new parameter fetch being either "types" or "description".

EXT:taskcenter

Old identifier New identifier New AJAX ID
Taskcenter::saveCollapseState taskcenter_collapse /taskcenter/collapse
Taskcenter::saveSortingState taskcenter_sort /taskcenter/sort

EXT:workspaces

Old identifier New identifier New AJAX ID
Workspaces::setWorkspace workspace_switch /workspaces/switch

Breaking: #69916 - Removed BackendLogin::getRsaPublicKey AJAX handler

Description

The deprecated AJAX handler BackendLogin::getRsaPublicKey has been removed in favor of rsa_publickey. As getRsaPublicKey was the only method in this class, the file typo3/sysext/rsaauth/Classes/Backend/AjaxLoginHandler.php has been removed without substitution.

Impact

Calling the removed handler will result in an error.

Affected Installations

All 3rd party extensions using the removed handler are affected.

Migration

Use the AJAX handler rsa_publickey instead of BackendLogin::getRsaPublicKey.

Breaking: #70033 - TCA icon options have been removed

Description

The TCA configurations noIconsBelowSelect, foreign_table_loadIcons and suppress_icons for select fields with the render type selectSingle have been removed.

Impact

The old TCA settings noIconsBelowSelect, foreign_table_loadIcons and suppress_icons are ignored and deprecation log entries will be triggered. A migration handles the update of the settings.

Affected Installations

All installations with extensions that configure the icon table visibility of TCA select fields with one of the old settings.

Migration

Extension authors need to use the new option showIconTable to define the visibility of the icon table for their select fields.

Breaking: #70055 - Override New Content Element Wizard via page TSconfig

Description

In the past it was possible to override the "New Content Element Wizard" via custom scripts when using page TSconfig via mod.web_list.newContentWiz.overrideWithExtension = myextension to define an extension, which then needed a file placed under mod1/db_new_content_el.php. The script was then called with certain parameters instead of the wizard.

The new way of handling entry-points and custom scripts is now built via modules and routes. The former option mod.web_list.newContentWiz.overrideWithExtension has been removed and a new option mod.newContentElementWizard.override has been introduced instead. Instead of setting the option to a certain extension key, a custom module or route has to be specified.

Example:

mod.newContentElementWizard.override = my_custom_module

Impact

Using the old TSconfig option mod.web_list.newContentWiz.overrideWithExtension has no effect anymore and will fallback to the regular new content element wizard provided by the TYPO3 Core.

Affected Installations

Any installation using this option with extensions providing custom New Content Element Wizards, e.g. templavoila.

Migration

The extension providing the script must be changed to register a route or module and set the TSconfig option to the route identifier, instead of a raw PHP script. Any usages in TSconfig need to be adapted to use the new TSconfig option.

Breaking: #70132 - FormEngine custom functions

Description

Due to the refactoring of the backend FormEngine code the "low end" extension API to manipulate data has changed. Affected are especially the type=user TCA element, any userFunc configured in TCA as well as the itemsProcFunc to manipulate single items in select, group and other types.

In general data given to those custom functions has changed and extensions that rely on this data may fail. For instance, if a itemsProcFunc was defined for a field within a flex form, the row array argument contained the full parent database row in the past. This is no longer the case and the parent database row is now transferred as flexParentDatabaseRow. In other cases data previously handed over to custom functions may no longer be available at all.

Impact

Custom functions receive less or different options than before and may stop working.

Affected Installations

Extensions using the TCA with type=user fields, extensions using TCA with userFunc and extensions using itemsProcFunc.

Migration

Developers using this API have to debug the data given to custom functions and adapt accordingly.

If the data given is not sufficient it is possible to register own element classes with the NodeFactory or to manipulate data by adding a custom FormDataProvider. While the current API will be mostly stable throughout further TYPO3 CMS 7 LTS patch releases, it may however happen that the given API and data breaks again with the development of the TYPO3 CMS 8 path to make the FormEngine code more powerful and reliable in the end.

Breaking: #70229 - BE-lockSSL = 3 option removed

Description

The global option $TYPO3_CONF_VARS[BE][lockSSL] allows to lock the backend usage to be worked completely over SSL. Setting this option to "3" allowed to have only the backend login transmitted via SSL, but the rest forced to work via plain HTTP. Option "3" has been removed in favor of having a full SSL session for all communication between the server and the client / browser.

Impact

Installations having lockSSL set to "3" will now behave just as it would be lockSSL=1.

Affected Installations

Any installation that has $TYPO3_CONF_VARS[BE][lockSSL] set to 3, only having SSL for the Backend login page.

Migration

It is recommended to set the $TYPO3_CONF_VARS[BE][lockSSL] option to 1 or 2, depending on the environment and the possibilities of having SSL available.

Breaking: #70444 - EXT:form - Form attributes are not rendered in FE

Description

The TypoScript configuration of EXT:form has been streamlined. Useless attributes for the specific form elements have been removed. Additionally, missing attributes have been added. Furthermore, the array notation of htmlAttributes and htmlAttributesUsedByTheViewHelperDirectly has changed. The whole cleanup was done to provide a solid configuration for the LTS version.

Impact

The removed attributes will not be available anymore out of the box for the specific form element. Custom TypoScript which copied, referenced or removed certain attribute configurations will not work anymore.

Affected Installations

Any installation that relies on the structure of htmlAttributes and htmlAttributesUsedByTheViewHelperDirectly. Since the whole configuration has not been documented yet and the functionality has been introduced with 7.5 the possibility that a lot of installations customize the configuration is very low.

Migration

Affected installations have to re-add the missing attributes manually and adopt the new array notation.

Breaking: #70503 - EXT:form - Remove breakOnError option from wizard

Description

The validation option breakOnError is not supported anymore. The option has been removed completely.

Impact

The validation process cannot be interrupted anymore, i.e. the whole form will be validated and all error messages will be shown.

Affected Installations

Any installation that implements the breakOnError functionality.

Migration

The function has been removed without any substitution. Therefore there is no migration possible. The attribute can be manually removed from the form configuration. The wizard ignores the existence of breakOnError. Since TYPO3 7.5 it is possible to utilize HTML5 attributes to validate form elements on the fly. This could be used to emulate the behaviour.

Breaking: #70574 - Form Wizard Save Handling Changed

Description

The ExtJS wizard of EXT:form in the backend has been using an old "module" to load and to save the data from the wizard, but has been misusing this functionality as AJAX responses. All AJAX requests for the wizard are now built with AJAX Routes and PSR-7-based Request/Response objects.

All obsolete WizardView PHP classes have been removed without substitution:

* TYPO3CMSFormViewWizardAbstractWizardView
  • TYPO3CMSFormViewWizardLoadWizardView
  • TYPO3CMSFormViewWizardSaveWizardView

Impact

Using these now non-existent PHP classes will result in fatal errors or wrong results when calling them directly.

Affected Installations

Any installations with extensions that hook into the wizard views of EXT:form.

Migration

Use the AJAX routes available via TYPO3.settings.ajaxUrls['formwizard_load'] and TYPO3.settings.ajaxUrls['formwizard_save'].

Breaking: #70578 - JumpURL functionality removed from the TYPO3 Core

Description

The handling and generation of so-called Jump URLs has been moved into its own extension called "jumpurl" and is now available in the TYPO3 Extension Repository (TER), and available via composer as the package name "friendsoftypo3/jumpurl".

Impact

If the functionality was used in an installation before (e.g. with Direct Mail or via TypoScript), this functionality is not working anymore.

Affected Installations

All installations where Jump URLs were used.

Migration

Download and install the extension "jumpurl" from the TER.

Breaking: #71110 - TYPO3-specific Upload Limit removed

Description

TYPO3 has a specific upload limit setting, that is set to 10MB by default, to manually limit down the PHP-specific setting max_upload_limit. If not configured properly the PHP limit was lower than the TYPO3-specific limit.

The TYPO3 setting $TYPO3_CONF_VARS['BE']['maxFileSize'] has been removed and the PHP-internal limit is now the upper barrier.

Impact

Setting the option mentioned above has no effect anymore. The PHP limit is used instead.

The TCA setting max_size for fe_users.image has been removed, allowing editors to upload images with a size up to the PHP-specific limit.

Affected Installations

Extensions that use $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'] as default for the TCA setting max_size need adjustment, if the PHP-specific upload limit is higher than $TYPO3_CONF_VARS['BE']['maxFileSize'].

Migration

Explicitly set a value for max_size or drop those lines from your TCA configuration.