【问题标题】:Extend TypoLink Function to append GET parameters depending on pId扩展 TypoLink 函数以根据 pId 附加 GET 参数
【发布时间】:2019-06-18 15:50:15
【问题描述】:

我可以扩展 TypoLink 生成函数,每次生成 TypoLink 时,它都会检查某个 targetpId,然后将当前页面的 id 作为 GEt 参数附加。例如:

When a Link on the page with ID 5 targets the page with the ID 19 then add ?ref=5 to the link

我目前不知道从哪里开始,我可以尝试覆盖哪个类/方法以包含这种行为。

【问题讨论】:

  • 使用 .htaccess 中的 RedirectRule 可能更容易解决?
  • 这应该如何工作?我想在任何页面上放置一个链接,该链接指向具有特定 ID 的页面。这些链接应该从放置链接的页面获取一个get参数。我认为它不可能通过 .htaccess
  • 我明白了。你能解释一下,你为什么要这样做?似乎您想使用引用 URL/id 在 id=19 上做一些事情?另一个想法是用打字稿来做。
  • 主要原因是我们在一个网站上有各种链接,上面写着“登录,你会看到一张漂亮的猫图片”然后它链接到登录页面,登录完成后我们希望将用户重定向到他来自的页面。登录后的经典重定向,问题是我们无法使用引荐来源数据,因为当您在网站的其他页面上并且自己进入登录页面时,您最终会进入您来自的页面。这不是故意的。

标签: typo3 extbase typolink


【解决方案1】:

Extending Classes (XCLASSes)

我不知道 TYPO3 9.5,但我们在 8.7 中做到了。 这是关于我们使用的扩展类的 sn-p:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Frontend\Page\PageRepository::class] = array(
    'className' => Vendor\Extension\Page\PageRepository::class
);

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::class] = array(
    'className' => Vendor\Extension\ContentObject\ContentObjectRenderer::class
);

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Core\DataHandling\DataHandler::class] = array(
    'className' => Vendor\Extension\DataHandling\DataHandler::class
);

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Frontend\Typolink\PageLinkBuilder::class] = array(
    'className' => Vendor\Extension\Typolink\PageLinkBuilder::class
);

这并不完全是您要搜索的内容,而是一个很好的开始方式。

【讨论】:

  • 谢谢,这确实是一个很棒的启动。
猜你喜欢
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多