这可能很简单,但我不知道在哪里可以找到答案。假设在前端和后端中使用相同的操作,或者假设我需要在initializeAction前端和后端中使用不同的行为,我如何检查该操作是从后端调用还是从前端调用?
顺便说一句,我正在使用extbase和 TYPO3 6.1.0。
可以通过常量确定( Builder生成的TYPO3_MODE示例预览)ext_tables.php
例如,这意味着您尝试从“外部”调用脚本:
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
Run Code Online (Sandbox Code Playgroud)
其他相当常见的情况是:
if (TYPO3_MODE == 'BE') {
// this will execute only in the backend...
}
Run Code Online (Sandbox Code Playgroud)
无论如何,我真心建议为 FE 和 BE 创建单独的操作甚至控制器,如果您决定为两种模式使用一个操作,那么一旦您编写多个扩展,您就会发现它很不舒服。
11+正如 Sybille Peters 提到的那样, constTYPO3_MODE已被弃用,因此请检查文档以了解最新版本中的其他可能性。您可以使用即:
if (ApplicationType::fromRequest($request)->isFrontend()) {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |