我为Typo3创建了一个extbase扩展,它可以使用pdfviewhelpers从网站创建一个pdf。
我在控制器中实现了这个定义动作,而且非常简单。
现在我正在尝试使用扩展名“tx_news”执行此操作。我将所有内容与我自己的扩展进行了比较,将操作添加到控制器并调整了模板,但我无法创建pdf。
流体链接如下所示:
<f:link.action action="pdf" arguments="{news:newsItem}" class="btn btn-expose" target="_blank">PDF</f:link.action>
NewsController.php中的类如下:
**
* action pdf
*
* @param \GeorgRinger\News\Domain\Model\News $news
* @return void
*/
public function pdfAction(\GeorgRinger\News\Domain\Model\News $news = null){
$demand = $this->createDemandObjectFromSettings($this->settings);
$demand->setActionAndClass(__METHOD__, __CLASS__);
$assignedValues = [
'newsItem' => $news,
'currentPage' => (int)$currentPage,
'demand' => $demand,
];
$assignedValues = $this->emitActionSignal('NewsController', self::SIGNAL_NEWS_PDF_ACTION, $assignedValues);
$this->view->assignMultiple($assignedValues);
Page::setRegisterProperties($this->settings['pdf']['registerProperties'], $news);
if (!is_null($news) && is_a($news, 'GeorgRinger\\News\\Domain\\Model\\News')) {
Cache::addCacheTagsByNewsRecords([$news]);
}
}
有人暗示为什么这不起作用?
顺便说一句:我知道在原始代码中乱搞不是一个好主意,它只是4个有趣答案 0 :(得分:1)
要创建指向其他扩展程序的链接,您必须完成pluginName
,extensionName
,controller
以及pageUid
(插件所在的页面)
<f:link.action action="pdf" controller="News" pluginName="pi1" extensionName="news" arguments="{news: newsItem}">Generate pdf</f:link.action>
答案 1 :(得分:1)
自v2.0.0
起,扩展名pdfviewhelpers
附带了news
扩展名的内置模板。只需添加静态TypoScript模板pdfviewhelpers - EXT:news
,然后像这样链接到PDF视图:
<n:link newsItem="{newsItem}" settings="{settings}" title="{newsItem.title}" configuration="{additionalParams: '&type=28032013'}">
Download as PDF
</n:link>
还可以自定义或完全覆盖PDF模板。