Project

General

Profile

Feature #12584

Updated by Marc Egger almost 3 years ago

h3. Functional Spec: 

 * If in any Report or Form there is an occurrence of `id=alias` and the T3 version is higher than 9, then QFQ shows an exception with the following content: 
 ** link to automatically replace all the occurrences for which a suggested id was found with `id=number` 
 ** link to reload and skip this check and exception forever 
 ** Detailed list of each occurrence together with the suggested replacement id 
 *** If no suggested id was found for an alias then this is marked prominently in the error message  

 * If one of  
 *** *Question A*: should we only allow automatic replacement once the following are true then QFQ never shows this maintainer has manually fixed all occurrences where no suggested id was found? 
 **** Once the automatic replacement was performed the exception again: 
 ** The search found is not shown again, so the maintainer has no occurrence of any of way to quickly find the patterns 
 ** still broken links 

 * Once all occurrences where replaced or the "skip check forever" link was clicked QFQ never shows this exception again. 

 h3. 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 

 * patterns which will be replaced 
 ** @href="?id={{pageAlias:T}}@ 
 ** @href='?id={{pageAlias:T}}@ 
 ** @href="?id=<alias>&@ 
 ** @href='?id=<alias>&@ 
 ** @href="?id=<alias>"@ 
 ** @href='?id=<alias>'@ 

 * 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. 
 *** Depending on decision on "Question A" above, the replacement link is disabled in the exception 

 * Occurrences containing @{{pageAlias:T}}@ will be replaced by @{{pageId:T}}@ 

 * *Question B* : 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 
 ** 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... 

 * 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 

Back