【发布时间】:2019-12-11 21:14:30
【问题描述】:
我为我的扩展创建了一个自己的 viewhelper,它创建了动态 html 代码。 我用
protected $escapeOutput = false;
在我的扩展中。 Fluid viewhelper 的 html 代码将在字符串中返回。
<f:image src='".$lPlay->getIfName()."' alt='Bild' height='50' />
但是 Fluid viewhelper 没有被执行。在网页的源代码中我可以看到
<f:image src='fileadmin/user_upload/AlbumArtSmall.jpg' alt='Bild' height='50' />
我的错误是什么,或者不能在创建 html 代码的 viewhelper 中使用 viewhelper。
也许我可以直接用 php 调用我的 viewhelper 中的流体 viewhelper。但我不知道该怎么做。
public function render() {
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$lPlayC = $objectManager->get('HGA\\Mairlist\\Controller\\LastPlayController');
$lPlays = $lPlayC->sendAction();
$return = "\n<div class='lPlay'>\n";
$return .= "\t<table class='tx_mairlist' >\n";
$return .= "\t\t<tr class='header'>\n";
$return .= "\t\t\t<th colspan='3'><p class='header'>gerade gespielt</p></th>\n";
$return .= "\t\t</tr>\n";
$iPos = 1;
foreach ($lPlays as $lPlay) {
if ($iPos == 1) {
$class = "onair";
} else {
$class = "gone";
}
$return .= "<tr class='".$class."'>\n";
$date = $lPlay->getDate();
$temp = $date->format('H:i:s');
$return .= "<td class='time'> <p class='time'>".$temp."</p>\n";
$return .= "<p class='space'></br></p>\n";
$return .= "<p class='duration'>".$lPlay->getDuration()."</p>\n";
$return .= "</td>\n";
$return .= "<td> <f:image src='".$lPlay->getIfName()."' alt='Bild' height='50' /></td>\n";
$return .= "<td> <img src='".PATH_site.$lPlay->getIfName()."' alt='Bild' height='50' /></td>\n";
$return .= "<td class='info'><b>".$lPlay->getTitle()."</b></br><p class='artist'>".$lPlay->getArtist()."</p></td>\n";
$return .= "</tr>\n";
$iPos++;
}
$return .= "</table>\n";
$return .= "</div>\n";
error_log("ViewHelper: " . $return, 0);
return $return;
}
【问题讨论】:
-
请向我们展示您的 ViewHelper 类的 render() 函数。
标签: typo3 fluid view-helpers