gpt4 book ai didi

TYPO3 扩展名 : Generate a PDF

转载 作者:行者123 更新时间:2023-12-03 21:31:12 28 4
gpt4 key购买 nike

我正在尝试使用 Kickstarter 进行扩展以覆盖页面的正常呈现,并呈现 PDF 文件。为此我使用 FPDF。但我不确定该怎么做。我尝试这样做,但没有成功:

<?php

// require_once(PATH_tslib . 'class.tslib_pibase.php');

class tx_ishurkunde_pi1 extends tslib_pibase {
public $prefixId = 'tx_ishurkunde_pi1';
public $scriptRelPath = 'pi1/class.tx_ishurkunde_pi1.php';
public $extKey = 'ish_urkunde';
public $pi_checkCHash = TRUE;

public function main($content, array $conf) {

if (!t3lib_extMgm::isLoaded('fpdf')) return "Error!";

$pdf = new FPDF();
$pdf->AddPage();
$content = $pdf->Output('', 'S');
return $content;

}
}
?>

它仍然继续渲染普通的网页模板。我错过了什么?

仅供引用,我并没有尝试将 HTML 呈现为 PDF。我正在尝试从头开始生成 PDF,使用 URL 参数是文本变量。

最佳答案

据我了解,您的目标是呈现 PDF 而不是页面元素。

您当前的方法 将不起作用,因为您要在页面上插入插件。然后插件的返回值返回给TYPO3内容解析器,如果页面解析完成,则显示出来。它没有任何部分可以让您放弃整个页面渲染;至少它不打算这样做,你也不应该这样做(尽管有扩展可以做到这一点)。

eID 方法 要么创建一个 eID 脚本(查看 dd_googlesitemap),该脚本通过 GET 参数调用并仅呈现您需要的内容。在那里,您基本上可以做任何您想做的事情。

在您的扩展程序的 ext_localconf.php 中注册 eID 脚本,如下所示:

$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include'][$_EXTKEY] = "EXT:{$_EXTKEY}/path/to/my/EIDHandler.php";

示例 eID 处理程序结构:

class Tx_MyExt_EIDHandler
{
public function main()
{
// Your code here
}
}

$output = t3lib_div::makeInstance('Tx_MyExt_EIDHandler');
$output->main();

要在前端调用您的 eID 脚本,您需要附加适当的 GET 参数,例如 http://example.com/index.php?eID=tx_myext .这是您在 ext_localconf.php 中定义的数组键(在我的示例中,它是 $_EXTKEY,但它基本上可以是任何字符串)。

插件/ typescript 方法就像例如TemplaVoila 做到了:您创建一个 PAGE 类型并调用一个 user_func 来完成您的工作。这将是最快的方法,因为您已经有了一个插件。重要的是您呈现自己的页面类型,其中只有您的插件。

示例 TypoScript:

specialPage = PAGE
specialPage {
type = 2
10 = USER
10.userFunc = tx_myextension_pi1->myFunc
}

之后,您可以使用 http://example.com/index.php?type=2 调用您的新页面.但是,标题等仍然呈现,您可能需要删除它们。

关于TYPO3 扩展名 : Generate a PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14955534/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com