Snippets für den Umstieg LTS 9 auf LTS 10

Annotation: @validate / @ignoreValidation

Mit LTS 10 hat sich die Syntax für @ignoreValidation im Controller bzw. @validate in einem Modell geändert. 

SIehe auch die aktuelle Doku


Im Controller:

* @ignorevalidation $newSpiel

nun anstatt eines Variablen Namens, den Namen des zu ignorierenden Objects als String

* @TYPO3\CMS\Extbase\Annotation\IgnoreValidation("newSpiel")


Beispiel:


/**
* action new
*
* @param Spiel $newSpiel
* @TYPO3\CMS\Extbase\Annotation\IgnoreValidation("newSpiel")
* @return void
*/
public function newAction(Spiel $newSpiel = NULL) {

 

Und um in der dazugehörenden  Create Action 

* @validate $newSpiel \JVE\JvBrettspiele\Validation\Validator\NewSpielValidator


nun im Head der Klasse und 

use TYPO3\CMS\Extbase\Annotation as Extbase;

 

* @Extbase\Validate(param="newSpiel", validator="JVE\JvBrettspiel\Domain\Validator\NewSpielValidator") 


Beispiel:


/**
* action create
*
* @param Spiel $newSpiel
* @Extbase\Validate(param="newSpiel" , validator="JVE\JvBrettspiel\Domain\Validator\NewSpielValidator")
* @return void
*/
public function createAction(Spiel $newSpiel = NULL) {

 

 

 

 

Im dazu passenden Datenmodel, z.b. den Namen auf "Nicht Leer" zu überprüfen nun anstatt, wie vom Extension Builder "annodazumal" erzeugt:
 

* @validate "NotEmpty"

nun

* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")


Beispiel:

/**
* name
*
* @var \string
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
*/
protected $name;

 

 

 

FAL - Image: Use IRRE relations in own flexform content element

Nach dem Umstieg von  LTS 9 auf LTS 10 , fehlte mir die Möglichkeit, in meinem "selbstgebauten" Content element Image Slider im backend neue BIlder hinzuzufügen. 

Im Config Abschnitt fehlten mit einige Punkte 
 

<settings.images type="array">
   <TCEforms type="array">
      <exclude>1</exclude>
      <label>LLL:EXT:jve_template/Resources/Private/Language/locallang_db.xlf:flexform.slider.sheet.images.title</label>
      <config>
         <type>inline</type>
         <maxitems>99</maxitems>
         <foreign_table>sys_file_reference</foreign_table>
         <!--<foreign_field>uid_foreign</foreign_field>-->
         <foreign_table_field>tablenames</foreign_table_field>
         <foreign_label>uid_local</foreign_label>
         <foreign_sortby>sorting_foreign</foreign_sortby>
         <foreign_selector>uid_local</foreign_selector>
         <foreign_selector_fieldTcaOverride type="array">
            <config>
               <appearance>
                  <elementBrowserType>file</elementBrowserType>
                  <elementBrowserAllowed>jpg,png,jpeg</elementBrowserAllowed>
               </appearance>
            </config>
         </foreign_selector_fieldTcaOverride>

         <foreign_types type="array">
            <numIndex index="2" type="array">
               <showitem>--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,--palette--;;filePalette</showitem>
            </numIndex>
         </foreign_types>

         <foreign_match_fields type="array">
            <fieldname>image</fieldname>
         </foreign_match_fields>
         <appearance type="array">
            <newRecordLinkAddTitle>1</newRecordLinkAddTitle>
            <useSortable>1</useSortable>
            <headerThumbnail>
               <field>uid_local</field>
               <height>64</height>
               <width>64</width>
            </headerThumbnail>
            <enabledControls>
               <info>1</info>
               <new>1</new>
               <dragdrop>1</dragdrop>
               <sort>1</sort>
               <hide>1</hide>
               <delete>1</delete>
               <localize>0</localize>
            </enabledControls>
            <createNewRelationLinkTitle>LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference</createNewRelationLinkTitle>

         </appearance>
         <overrideChildTca>
            <columns type="array">
               <uid_local type="array">
                  <config type="array">
                     <appearance type="array">
                        <elementBrowserType>file</elementBrowserType>
                        <elementBrowserAllowed>jpg,png,jpeg</elementBrowserAllowed>
                     </appearance>
                  </config>
               </uid_local>
            </columns>
            <types type="array">
               <numIndex index="2">
                  <showitem>--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,--palette--;;filePalette</showitem>
               </numIndex>

            </types>
         </overrideChildTca>
      </config>
   </TCEforms>
</settings.images>

 

TYPOSCRIPT Import syntax hat sich geändert

Auch wenn das kein "Breaking Change" war, da derzeit die alte Variante noch funktioniert, aber da bei mir der Import im Packend als Page TS in dem alten Format ohenhin nicht geklappt, hat, hab ich das geändert von:
 

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:jve_template...."> 

 

zu:

@import "/typo3conf/ext/jve_template/Configuration/TypoScript/www.jve.com/TSConfig/Rte/RTE-ckeditor.typoscript"

Extension Scanner nutzen

Im Backend nach kann man unter Update den Extension Scanner nutzen um eigene Extensions an die LTS 10 anzupassen 
Führt das zu "Fehlalarmen" kann man die so unterdrücken:

// @extensionScannerIgnoreLine
$foo->someFalsePositiveMatch('foo');


oder eine ganze PHP Klasse, z.b. wenn man z.b. für eine ältere TYPO3 Version noch seine eigene Kompatibilitätsklasse erstellt hat, die z.b. die Sys_language_uid zurück liefert.

 <?php

/**
* @extensionScannerIgnoreFile
*/
class CompatiblityOldVersions {
    static function getSysLanguage() {

      .... 
    }
}

 

 

TYPO3_Branch

Die Constanten TYPO3_Branch und TYPO3_Version werden in LTS 11 wegfallen. Am besten gleich in der LTS 10 umbauen zu :
also statt:

if(intval(TYPO3_branch) < 9) {

nun:

   /** @var Typo3Version $tt */
   $tt = GeneralUtility::makeInstance( \TYPO3\CMS\Core\Information\Typo3Version::class ) ;
   if( $tt->getMajorVersion()  < 9 ) {