【问题标题】:typoscript variable in plugin settings?插件设置中的打字稿变量?
【发布时间】:2016-11-17 06:55:20
【问题描述】:

我正在使用自定义插件,我需要将页面标题添加为插件的设置变量之一:

plugin.tx_fsearch {
  settings {
    resultsPath = search-results/brand/{field:title}/make/{field:title}
    resultsPath.insertData = 1
  }
}

但是,这是输出单词“Array”而不是我需要的路径。 有谁知道我如何才能完成这项工作?

【问题讨论】:

  • 至少你需要使用冒号{field:title}而不是点{field.title}来访问TS中的字段。

标签: typo3 typoscript fluid


【解决方案1】:

无论是使用 TEXT cObj 还是 insertData,都没有 stdWrap 可用于 extbase 扩展中的设置!

作为一种解决方法,您可以通过执行类似 EXT:news 的操作来自行解决此问题https://github.com/georgringer/news/blob/master/Classes/Controller/NewsController.php#L495

public function injectConfigurationManager(
    \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager
) {
    $this->configurationManager = $configurationManager;
        $typoScriptService = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Service\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(
                    $originalSettings[$key],
                    $typoScriptArray[$key . '.']
                );
            }
        }
    }
    $this->settings = $originalSettings;
}

或者您跳过 TS 部分并直接在您的控制器中调用 stdWrap。

【讨论】:

  • 我没有写扩展,所以 - 忍受我 - 你直接在我的控制器中是什么意思?
  • 抱歉,这是您的扩展。如果不是,您可以 XCLASS 控制器来扩展它,但这是一个不同的任务
【解决方案2】:

试试 TEXT 对象

plugin.tx_fsearch {
  settings {
    resultsPath = TEXT
    resultsPath.value = search-results/brand/{field.title}/make/{field.title}
  }
}

【讨论】:

  • 相同结果“数组”
  • 你想在 FLUID 还是你的控制器中获取 resultsPath?
  • 如我的回答中所述,解析设置时没有可用的 stdWrap
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 2021-11-29
  • 2018-04-29
  • 2016-09-15
相关资源
最近更新 更多