Project

General

Profile

Actions

Feature #12584

closed

Feature #12440: Typo3 V10 upgrade (durchfuehren und testen)

T3 v10 migration script: replace alias-patterns (v11)

Added by Marc Egger almost 3 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Carsten Rose
Target version:
Start date:
25.05.2021
Due date:
% Done:

100%

Estimated time:
Discuss:
Prio Planung:
No
Vote:

Description

ALTE VERSION von Spezifikation! neue Version im Kommentar

Functional Spec:

  • If in any Report or Form there is an occurrence of an "id=alias" pattern (see bellow) and the T3 version is higher than 9, then QFQ shows an exception with the following content:
    • link to automatically apply all suggested replacements
    • link to reload and skip this check and exception forever
    • Detailed list of each occurrence together with the suggested replacement
    • If no suggested id was found for an alias then this is marked prominently in the error message together with the location of the occurrence
  • patterns where <alias> will be replaced by id
    • href="?id=<alias>&
    • href='?id=<alias>&
    • href="?id=<alias>"
    • href='?id=<alias>'
  • patterns where {{pageAlias:T}} will be replaced by {{pageId:T}}
    • href="?id={{pageAlias:T}}
    • href='?id={{pageAlias:T}}
  • If one of the following are true then QFQ never shows this exception again:
    • The search found no occurrence of any of the above patterns
    • "skip check forever" link was clicked
  • Question A : should all occurrences of {{pageAlias:T}} be replaced by {{pageId:T}} everywhere even when there is no "href"?
    • The page alias will not have any meaning or won't even exist for Typo3 v10 upwards
    • alternatively we could introduce a new variable {{pagePath:T}}. But I don't know how easy it will be to compute that path reliably and I would rather not ask Typo3 to do it...

Technical Spec:

  • the following columns are checked for occurrences of `id=alias`
    • tt_content.bodytext
    • Form.title
    • Form.parameter
    • Form.parameterLanguageA/B/C/D
    • FormElement.label
    • FormElement.note
    • FormElement.value
    • FormElement.sql1
    • FormElement.parameter
    • FormElement.parameterLanguageA/B/C/D
  • The page id for patterns containing <alias> will be found the following way
    • search <alias> in column pages.slug
      • when migrating from alias to slug underscore "_" was replaced by minus "-" by Typo3 automatically, so search again with "_" replaced in <alias>
    • if not found, search in column pages.zzz_deleted_alias if that column exists
    • if not found mark <alias> prominently as not found in error message.
  • If the migration was performed or skipped then the flag skipAliasMigration is added to the comment of the Form table
    • The current comment looks like this: Version=21.5.0a&functionHash=dec0567ea030ed61fe7cee8dbba2a935&functionVersion=20.11.0
  • Variants to check if Typo3 version is higher than 9
    • The Typo3 version might be found in a Global variable?
    • if not, the symlink in the root folder could be parsed: typo3_src -> /var/www/typo3_src-8.7.32/
    • or the hacky way it is done in the password hashing function by checking if a certain Typo3 class exists
Actions

Also available in: Atom PDF