1
votes

Being my TYPO3 extension called "my_content", I wanna create a plugin that lists a bunch of personas.

web/typo3conf/ext/my_content/Configuration/TSconfig/ContentElements/persona.tsconfig:

mod.wizards.newContentElement.wizardItems.plugins {
    elements {
        persona {
            iconIdentifier = tx-mask-persona
            title = LLL:EXT:my_content/Resources/Private/Language/locallang_db.xlf:tx_mycontent_domain_model_persona
            description = LLL:EXT:my_content/Resources/Private/Language/locallang_db.xlf:tx_mycontent_domain_model_persona.description
            tt_content_defValues {
                CType = list
                list_type = mycontent_persona
            }
        }
    }
    show := addToList(persona)
}

web/typo3conf/ext/my_content/Configuration/TCA/Overrides/tt_content.php:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'Vendor.my_content',
    'Persona',
    'Personas'
);

web/typo3conf/ext/my_content/ext_localconf.php:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Vendor.my_content',
    'Persona',
    [
        'Persona' => 'list'
    ],
    // non-cacheable actions
    [
        'Persona' => 'list'
    ]
);

I receive the error below:

Oops, an error occurred!
The default controller for extension "MyContent" and plugin "Persona" can not be determined. Please check for 
TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.

Is all the naming of plugins, vendor, etc, right? Is there something I'm doing wrong? Using TYPO3 8.7.18.

2
Have a look in TypoScript Object Browser, there probably the plugin is defined as plugin.tx_mycontent_persona, it's possible that the list_type in the table tt_content is then tx_mycontent_persona instead of mycontent_persona.David
Check my answer, @DavidSergio Catalá

2 Answers

1
votes

You need to use the camelcase type in registerPlugin() and configurePlugin() for your extension name, so don't use my_content, it's MyContent in this case.

0
votes

My TypoScript looks fine:

tt_content.list.20 {
    mycontent_persona = USER 
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    extensionName = MyContent
    pluginName = Persona
    vendorName = Vendor
}

And my list_type plugin is "mycontent_persona".

I don't really know what's wrong with the plugin. All seems fine. Cache is cleared as well.