我有一个无头 TYPO3 安装,我需要将所有内容元素呈现为 json。到目前为止,一切都很好。我现在唯一的问题是t3://
用完整的 URL 替换链接,因为我没有前端来处理它。所以问题是:
如何将正文 (RTE) 中的实习生 TYPO3 链接替换为完整 URL?
我尝试了以下方法,但它确实有帮助:
$cObj->stdWrap_HTMLparser($element['bodytext']
此致
我有一个无头 TYPO3 安装,我需要将所有内容元素呈现为 json。到目前为止,一切都很好。我现在唯一的问题是t3://
用完整的 URL 替换链接,因为我没有前端来处理它。所以问题是:
如何将正文 (RTE) 中的实习生 TYPO3 链接替换为完整 URL?
我尝试了以下方法,但它确实有帮助:
$cObj->stdWrap_HTMLparser($element['bodytext']
此致
所以我检查了TYPO3\CMS\Fluid\ViewHelpers\Format\HtmlViewHelper
一些想法。这实际上很容易做到。
注意:我只用t3://page?uid=对此进行了测试,它可以工作。当我也找到其他用例时,我会更新这个答案
此代码发生在my_ext/Classes/Utility/MyUtility下的 Utility 类上。
我首先注入TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
with DI (Dependency Injection)
/**
* @var ContentObjectRenderer
*/
protected ContentObjectRenderer $cObj;
/**
* @param ContentObjectRenderer $cObj
*/
public function __construct(
ContentObjectRenderer $cObj
) {
$this->cObj = $cObj;
}
现在我可以使用该parseFunc
功能用完整的 URls(没有基本 url)替换链接。但是我们必须定义这个函数将获得什么样的引用,在我的例子中是lib.parseFunc
. 所以这就是它的样子:
public function my_module(array $teaserHomepage): array
{
$parseFuncTSPath = 'lib.parseFunc';
$newConstructedArray = [];
foreach ($teaserHomepage['fields'] as $element) {
...
$newConstructedArray['fields']['bodytext'] = $this->cObj->parseFunc($element['bodytext'], [], '< ' . $parseFuncTSPath);
}
return $newConstructedArray;
}
前文:
<p>sed diam nonumy eirmod tempor invidunt ut <a href=\"t3://page?uid=2\"> labore et dolore magna aliquyam erat, sed diam.</a></span><br /> <br /> </p>
后文:
<p>sed diam nonumy eirmod tempor invidunt ut<a href=\"/our-jobs\"> labore et dolore magna aliquyam erat, sed diam.</a></span><br> <br> </p>
希望它对某人有所帮助
此致