首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 10在自己的扩展模块中使用快捷方式

TYPO3 10在自己的扩展模块中使用快捷方式
EN

Stack Overflow用户
提问于 2020-09-28 15:55:41
回答 1查看 178关注 0票数 1

我想在TYPO3的CE快捷方式中显示我自己的扩展。

我的分机的按钮显示在listview as按钮下。我可以选择一个条目,它就会被保存。但是我无法在前台访问所选的id。

到目前为止,我尝试了以下内容:

我在/Configuration/TCA/Overrides/tt_content.php中添加了addToInsertRecords方法。因此,选择条目的按钮显示在后端。

代码语言:javascript
复制
defined('TYPO3_MODE') or die();
call_user_func(function () {
  \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToInsertRecords('tx_eislist_domain_model_eis');
});

要在前端显示Typoscript是:

代码语言:javascript
复制
tt_content.shortcut.20.tables := addToList(tx_eislist_domain_model_eis)
tt_content.shortcut.20.conf.tx_eislist_domain_model_eis = USER
tt_content.shortcut.20.conf.tx_eislist_domain_model_eis {
  userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
  extensionName = EisList
  pluginName = Eis
  vendorName = Emma
  controller = Eisbar
  action = show
  switchableControllerActions {
    Eisbar {
      1 = show
    }
  }

  settings =< plugin.tx_eislist_eis.settings
  settings {
    insertRecord = 1
    useStdWrap = singleRecords
    displayMode = single
    singleRecords.field = uid
  }
}
tt_content.shortcut.variables.shortcuts.tables := addToList(tx_eislist_domain_model_eis)
tt_content.shortcut.variables.shortcuts.conf.tx_eislist_domain_model_eis < tt_content.shortcut.20.conf.tx_eislist_domain_model_eis

在PHP中使用

代码语言:javascript
复制
$this->settings['singleRecords']

我可以从TypoScript访问该变量。但是我得到了字符串“=>”字段"uid“。而不是选定的值ID。

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 21:41:53

我认为你需要注入configurationManager才能从/在设置打字文件中获得stdWrap功能。只需在您的控制器中使用一个configurationManager变量和一个包含显示操作的injectFunction:

代码语言:javascript
复制
 /**
 * @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
 */
protected $configurationManager;

/**
 * Injects the Configuration Manager and is initializing the framework settings
 *
 * @param \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager Instance of the
 *     Configuration Manager
 */
public function injectConfigurationManager(
    \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager
) {
    $this->configurationManager = $configurationManager;
    $originalSettings = $this->configurationManager->getConfiguration(
        \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS
    );

    // Use stdWrap for given defined settings
    if (isset($originalSettings['useStdWrap']) && !empty($originalSettings['useStdWrap'])) {
        $typoScriptService = GeneralUtility::makeInstance(TypoScriptService::class);
        $typoScriptArray = $typoScriptService->convertPlainArrayToTypoScriptArray($originalSettings);
        $stdWrapProperties = GeneralUtility::trimExplode(',', $originalSettings['useStdWrap'], true);
        foreach ($stdWrapProperties as $key) {
            if (is_array($typoScriptArray[$key . '.'])) {
                $originalSettings[$key] = $this->configurationManager->getContentObject()->stdWrap(
                    $typoScriptArray[$key],
                    $typoScriptArray[$key . '.']
                );
            }
        }
    }
    $this->settings = $originalSettings;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64098078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档