我的网站上有一个后端模块。在此后端模块中,我需要列出网站中使用的所有自定义插件。我不知道列出所有自定义插件。
答案 0 :(得分:3)
您的问题缺少重要数据,例如您正在使用的TYPO3版本。
另外,不清楚您是指插件还是扩展。我的猜测是您的意思是扩展名。
如果您需要所有不是“ TYPO3系统扩展”的扩展,则可以在Controller中执行以下操作:
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$listUtility = $objectManager->get(ListUtility::class);
$allExtensions = $listUtility->getAvailableExtensions();
$customExtensions = [];
foreach ($allExtensions as $key => $f) {
if (is_dir(Environment::getPublicPath() . '/typo3/sysext/' . $key . '/')) {
continue;
}
$customExtensions[$key] = $f;
$customExtensions[$key]['isLoaded'] = (int)ExtensionManagementUtility::isLoaded($key);
}
$this->view->assign('extensions', $customExtensions);
如果您也想排除其他扩展名,则必须采用这种逻辑,例如检查$ key to并在这种情况下继续。
注意:答案需要基本了解使用Extbase进行TYPO3开发的工作方式。
答案 1 :(得分:1)
要列出扩展的所有插件(通过TYPO3后端插入),可以使用简单的SQL查询
从tt_content中选择,其中CType =“ list”和list_type =“ your_plugin”
但是您不应该使用原始查询,而应该使用QueryBuilder,因为它提供了额外的安全性并通过删除等限制增强了查询。