TYPO3后端深度链接到页面记录
TYPO3 backend deeplink to page record
我正在使用 TYPO3 的 8.7 版本,并打算使用 link 直接通往后端来编辑记录(页面)。我尝试了 typo3/backend.php?edit=57
之类的方法,但出现错误:
file not found
typo3/backend.php?edit=57
是 TYPO3 6.2 之前的做法,但后端 URL 在 TYPO3 7.6 中更改为 typo3/index.php
。它仍然可以工作,但是您需要一个由核心生成的安全令牌。 URL 现在是 typo3/index.php?route=%2Fmain&edit=57&token=...
。但是,实际上并没有一种简单的方法可以使用像 TYPO3 外部那样的有效令牌生成 URL。
如果您想在自定义模块中创建 link 来编辑记录,您可以使用 \TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick()
或者如果您使用的是 Fluid 模板,则 \TYPO3\CMS\Backend\ViewHelpers\Link\EditRecordViewHelper
ViewHelper。您可以在这里找到更多相关信息:https://docs.typo3.org/typo3cms/CoreApiReference/8.7/ApiOverview/Examples/EditLinks/
使用扩展 pxa_siteimprove
深度 link 具有以下形式:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:{page_uid}:{language_uid}
参数language_uid
是可选的。 uid 为 42 的页面的示例 link 如下所示:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:42
我们可以选择包含一个语言 uid(例如 1)。如果没有语言 uid 设置,它默认为 0
:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:42:1
如果您想为其他目的创建深度 link,您可以查看此扩展如何在 Pixelant\PxaSiteimprove\Hooks\DeepLinkingHandler
中创建深度 link。在第一个挂钩中,它只是将页面 uid 保存到后端用户会话中,在稍后的挂钩中,通过设置以下全局变量重用此信息以重定向到所需页面:
$GLOBALS['BE_USER']->uc['startModuleOnFirstLogin'] = 'web_layout->id=' . (int)$pageId . '&SET[language]=' . (int)$languageId;
我正在使用 TYPO3 的 8.7 版本,并打算使用 link 直接通往后端来编辑记录(页面)。我尝试了 typo3/backend.php?edit=57
之类的方法,但出现错误:
file not found
typo3/backend.php?edit=57
是 TYPO3 6.2 之前的做法,但后端 URL 在 TYPO3 7.6 中更改为 typo3/index.php
。它仍然可以工作,但是您需要一个由核心生成的安全令牌。 URL 现在是 typo3/index.php?route=%2Fmain&edit=57&token=...
。但是,实际上并没有一种简单的方法可以使用像 TYPO3 外部那样的有效令牌生成 URL。
如果您想在自定义模块中创建 link 来编辑记录,您可以使用 \TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick()
或者如果您使用的是 Fluid 模板,则 \TYPO3\CMS\Backend\ViewHelpers\Link\EditRecordViewHelper
ViewHelper。您可以在这里找到更多相关信息:https://docs.typo3.org/typo3cms/CoreApiReference/8.7/ApiOverview/Examples/EditLinks/
使用扩展 pxa_siteimprove
深度 link 具有以下形式:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:{page_uid}:{language_uid}
参数language_uid
是可选的。 uid 为 42 的页面的示例 link 如下所示:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:42
我们可以选择包含一个语言 uid(例如 1)。如果没有语言 uid 设置,它默认为 0
:
https://example.com/typo3/index.php?tx_siteimprove_goto=page:42:1
如果您想为其他目的创建深度 link,您可以查看此扩展如何在 Pixelant\PxaSiteimprove\Hooks\DeepLinkingHandler
中创建深度 link。在第一个挂钩中,它只是将页面 uid 保存到后端用户会话中,在稍后的挂钩中,通过设置以下全局变量重用此信息以重定向到所需页面:
$GLOBALS['BE_USER']->uc['startModuleOnFirstLogin'] = 'web_layout->id=' . (int)$pageId . '&SET[language]=' . (int)$languageId;