storagePid via Plugin FlexForm überschreiben

  • MorphexX MorphexX
    Padawan
    0 x
    46 Beiträge
    0 Hilfreiche Beiträge
    04. 05. 2012, 15:25

    Gude zusammen!
    Ich bin nun seit schon über eine Stunde auf der Suche nach einem sehr API-nahem Weg, um die storagePid aus der Persistenz-Konfiguration einer Extbase-Extension ohne großen Code-Wulst zu überschreiben.

    Ich möchte den StartingPoint bzw. die Angabe der storagePid/pages wie folgt aus dem Reiter "Behaviour" entfernen und dann im Plugin FlexForm anzeigen:

    1. $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature] = 'pages, recursive';

    1. <settings.startingpoint>
    2. <TCEforms>
    3. <exclude>1</exclude>
    4. <label>LLL:EXT:lang/locallang_general.xml:LGL.startingpoint</label>
    5. <config>
    6. <type>group</type>
    7. <internal_type>db</internal_type>
    8. <allowed>pages</allowed>
    9. <size>3</size>
    10. <maxitems>50</maxitems>
    11. <minitems>0</minitems>
    12. <show_thumbs>1</show_thumbs>
    13. <wizards>
    14. <suggest>
    15. <type>suggest</type>
    16. </suggest>
    17. </wizards>
    18. </config>
    19. </TCEforms>
    20. </settings.startingpoint>
    21.  
    22. <settings.recursive>
    23. <TCEforms>
    24. <exclude>1</exclude>
    25. <label>LLL:EXT:lang/locallang_general.xml:LGL.recursive</label>
    26. <config>
    27. <type>select</type>
    28. <items type="array">
    29. <numIndex index="1" type="array">
    30. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.0</numIndex>
    31. <numIndex index="1">0</numIndex>
    32. </numIndex>
    33. <numIndex index="2" type="array">
    34. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.1</numIndex>
    35. <numIndex index="1">1</numIndex>
    36. </numIndex>
    37. <numIndex index="3" type="array">
    38. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.2</numIndex>
    39. <numIndex index="1">2</numIndex>
    40. </numIndex>
    41. <numIndex index="4" type="array">
    42. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.3</numIndex>
    43. <numIndex index="1">3</numIndex>
    44. </numIndex>
    45. <numIndex index="5" type="array">
    46. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.4</numIndex>
    47. <numIndex index="1">4</numIndex>
    48. </numIndex>
    49. <numIndex index="6" type="array">
    50. <numIndex index="0">LLL:EXT:cms/locallang_ttc.xml:recursive.I.5</numIndex>
    51. <numIndex index="1">250</numIndex>
    52. </numIndex>
    53. </items>
    54. </config>
    55. </TCEforms>
    56. </settings.recursive>

    Ich entdeckte bereits in der Klasse [url=http://api.typo3.org/typo3v4/current/html/class_tx___extbase___configuration___frontend_configuration_manager.html#ae09f0fb2de53deb729bfa46f01c24e40]Tx_Extbase_Configuration_FrontendConfigurationManager[/url] die geschützte Methode overrideStoragePidIfStartingPointIsSet. Diese überschreibt den Wert in persistence.storagePid, wenn ein Startingpoint im Inhaltselement unter dem Reiter Behaviour gesetzt ist.

    Kennt jemand eine Möglichkeit, um diesen Wert durch das FlexForm value hinter settings.startingpoint überschreiben zu können?

    Mit

    1. $this->configurationManager->getConfiguration(
    2. Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK,
    3. 'extname',
    4. 'extname_pluginname'
    5. )

    komme ich problemlos an die vollstänfige Konfiguration des Plugin, weiß jedoch nicht - abgesehen von der offensichtlichen Methode this->configurationManager->setConfiguration - wie ich dem Königsweg der Ersetzung nahe komme.

    Ideen?

    Besten Dank im Voraus!

  • Hilfreichster Beitrag

  • bendyhh bendyhh
    Typ im Roten Hemd
    1 x
    2 Beiträge
    1 Hilfreiche Beiträge
    03. 08. 2012, 11:53 - Hilfreichster Beitrag

    Versuch mal in deiner Flexform setting.startingpoint mit persistence.storagePid zu ersetzen:

    1. <persistence.storagePid>
    2. <TCEforms>
    3. <exclude>1</exclude>
    4. <label>LLL:EXT:lang/locallang_general.xml:LGL.startingpoint</label>
    5. <config>
    6. <type>group</type>
    7. <internal_type>db</internal_type>
    8. <allowed>pages</allowed>
    9. <size>3</size>
    10. <maxitems>50</maxitems>
    11. <minitems>0</minitems>
    12. <show_thumbs>1</show_thumbs>
    13. <wizards>
    14. <suggest>
    15. <type>suggest</type>
    16. </suggest>
    17. </wizards>
    18. </config>
    19. </TCEforms>
    20. </persistence.storagePid>


  • 1
  • 0 x
    15 Beiträge
    0 Hilfreiche Beiträge
    06. 06. 2012, 23:47

    Hallo,

    Hattest Du damals eine Lösung gefunden ?

  • bendyhh bendyhh
    Typ im Roten Hemd
    1 x
    2 Beiträge
    1 Hilfreiche Beiträge
    03. 08. 2012, 11:53

    Versuch mal in deiner Flexform setting.startingpoint mit persistence.storagePid zu ersetzen:

    1. <persistence.storagePid>
    2. <TCEforms>
    3. <exclude>1</exclude>
    4. <label>LLL:EXT:lang/locallang_general.xml:LGL.startingpoint</label>
    5. <config>
    6. <type>group</type>
    7. <internal_type>db</internal_type>
    8. <allowed>pages</allowed>
    9. <size>3</size>
    10. <maxitems>50</maxitems>
    11. <minitems>0</minitems>
    12. <show_thumbs>1</show_thumbs>
    13. <wizards>
    14. <suggest>
    15. <type>suggest</type>
    16. </suggest>
    17. </wizards>
    18. </config>
    19. </TCEforms>
    20. </persistence.storagePid>

  • 1