TYPO3 从实用文件中的正文中呈现完整的 t3:// 链接
TYPO3 render full t3:// links from bodytext in utility files
我安装了无头 TYPO3,我需要将所有内容元素呈现为 json。到目前为止,一切都很好。我现在唯一的问题是用完整的 URL 替换 t3://
链接,因为我没有前端来处理它。所以问题是:
如何将正文 (RTE) 中的实习生 TYPO3 链接替换为完整 URL?
我尝试了以下方法,但确实有帮助:
$cObj->stdWrap_HTMLparser($element['bodytext']
此致
所以我检查了 TYPO3\CMS\Fluid\ViewHelpers\Format\HtmlViewHelper
以获得一些想法。其实很容易做到。
Note: I have only tested this with t3://page?uid= and it works. The moment i find other use cases as well, i will update this answer
此代码出现在我的实用程序 class 下 my_ext/Classes/Utility/MyUtility.
我首先用 DI(依赖注入)注入TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
/**
* @var ContentObjectRenderer
*/
protected ContentObjectRenderer $cObj;
/**
* @param ContentObjectRenderer $cObj
*/
public function __construct(
ContentObjectRenderer $cObj
) {
$this->cObj = $cObj;
}
现在我可以使用 parseFunc
功能来替换链接,带有完整的 URls(没有基础 url)。但是我们必须定义这个函数将获得什么样的引用,在我的例子中是 lib.parseFunc
。这就是它的样子:
Sometimes you only need the first and second parameters and you can leave the reference empty. You have to experiment a bit and make it work according to your needs.
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>
希望它对某人有所帮助
此致
我安装了无头 TYPO3,我需要将所有内容元素呈现为 json。到目前为止,一切都很好。我现在唯一的问题是用完整的 URL 替换 t3://
链接,因为我没有前端来处理它。所以问题是:
如何将正文 (RTE) 中的实习生 TYPO3 链接替换为完整 URL?
我尝试了以下方法,但确实有帮助:
$cObj->stdWrap_HTMLparser($element['bodytext']
此致
所以我检查了 TYPO3\CMS\Fluid\ViewHelpers\Format\HtmlViewHelper
以获得一些想法。其实很容易做到。
Note: I have only tested this with t3://page?uid= and it works. The moment i find other use cases as well, i will update this answer
此代码出现在我的实用程序 class 下 my_ext/Classes/Utility/MyUtility.
我首先用 DI(依赖注入)注入TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
/**
* @var ContentObjectRenderer
*/
protected ContentObjectRenderer $cObj;
/**
* @param ContentObjectRenderer $cObj
*/
public function __construct(
ContentObjectRenderer $cObj
) {
$this->cObj = $cObj;
}
现在我可以使用 parseFunc
功能来替换链接,带有完整的 URls(没有基础 url)。但是我们必须定义这个函数将获得什么样的引用,在我的例子中是 lib.parseFunc
。这就是它的样子:
Sometimes you only need the first and second parameters and you can leave the reference empty. You have to experiment a bit and make it work according to your needs.
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>
希望它对某人有所帮助
此致