【问题标题】:Parse TYPO3 links in CommandController在 CommandController 中解析 TYPO3 链接
【发布时间】:2021-05-16 03:49:06
【问题描述】:

我已经在数据库中保存了 TYPO3 文本(正文)。它包含以 t3 格式保存的不同链接:

<p><a href="t3://page?uid=700" target="_blank" class="internal" title="title">Link</a> more text.</p>

这个想法是创建一些脚本作为 CommandController,获取保存的文本并通过 cron 通过电子邮件发送。问题是在没有前端环境的情况下,链接不会被转换为正确的 html(如果我在前端插件中做同样的事情,它可以正常工作)。

我尝试使用流畅的 html 视图助手渲染此文本:

<f:format.html>{item.bodytext}</f:format.html>

还尝试直接在我的 CommandController 中使用 $contentObject->parseFunc 解析文本。但它只会切断链接。

有什么简单的TYPO3函数可以将正文转换成真正的html吗?

注意:typo3 版本 8.7.16

【问题讨论】:

  • 请添加您的 TYPO3 版本
  • 问题已更新。

标签: typo3 extbase fluid typo3-8.7.x


【解决方案1】:

好的,似乎链接没有被解析,我认为这不是 CommandController 的问题。我遇到了同样的问题,并找到了几种解决此问题的方法。

EXT: frontend_editing 的问题

在卸载每个非重要扩展并清除每个 可能的缓存和几个小时的调试我们发现了问题: “frontend_editing”扩展 - 仅当用户登录时 后台!

GitHub 上的问题

  • 在 Github 上讨论过同样的问题,您可以查看 here

@csba详解here!

EXR:fluid_styled_content 的问题

另一个问题是格式查看器,@georg-ringer 解释了解决问题的解决方案,它对我有用。查看here了解更多详情。

根据@georg-ringer 的回答,您只需将&lt;f:format.html&gt;{item.bodytext}&lt;/f:format.html&gt; 更改为&lt;f:format.raw&gt;{item.bodytext}&lt;/f:format.raw&gt;。这可能会解决您的问题。

Extbase 解析与链接服务。

// use TYPO3\CMS\Core\LinkHandling\LinkService;
$linkService = GeneralUtility::makeInstance(LinkService::class);
$linkDetails = $linkService->resolve($firstparameter);

你可以如上图解析链接,你可以在下面找到参考:

【讨论】:

  • 我试过 f:format.raw,它只会显示链接 t3://page?uid=700 而不会将它们转换为真正的链接(不会像 f:format.html 那样切断它们)。我还检查了 frontend_editing 问题,问题是它在前端插件中工作正常,在 CommandController 中不起作用(没有真正的前端环境)。
  • 在答案中添加了Extbase parse with link service. 来解析URL,你试过了吗?
  • 它只是在部件上拆分一个链接并返回一个数组。首先,您需要在文本中找到所有此类链接,即使之后它也不会将 t3://page?uid=700 转换为真实 url
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多