从TYPO3后端的TCE记录制作PDF

时间:2014-02-15 22:46:26

标签: pdf typo3

我有一个网站,其中包含Web->列表视图中的一些表格,我需要在表单末尾添加一个按钮,允许BE用户使用表单上的数据创建PDF文件。模板。

我知道如何创建按钮以及如何创建PDF文件,但我无法弄清楚如何将表单数据链接到用于生成PDF的类。

我不知道其他方法可以做到这一点,即使有扩展(我没有找到任何东西)。这是我的方法:

我在表单上有一个按钮: enter image description here

当用户单击该按钮时,将打开一个新窗口,并即时创建文档。按钮上使用的代码是:

jQuery("#create_pdf").click(function(){
  window.open("../typo3conf/ext/my_ext/lib/class.tx_myext_createPDF.php?uid='.$PA['row']['uid'].'");
});

这适用于模板但我无法访问class.tx_myext_createPDF.php中的数据库框架(例如$ GLOBALS ['TYPO3_DB']),我无法检索数据。

我想要做的是从文件class.tx_myext_createPDF.php中使用uid从数据库中获取记录的数据,以便在模板上使用它。

我知道这种方法很丑陋,但我无法找到更好,更简单的方法来做到这一点。有什么建议?

1 个答案:

答案 0 :(得分:0)

最后我最终得到了这段代码:

jQuery("#create_pdf").click(function(){
    var pdf = jQuery("#select_pdf").val();
    if (pdf==null){
        alert("Please select an option.");
    } else {
        jQuery.getJSON(
            "../index.php",
            {
                eID:"myext",
                action:"createPDF",
                record:'.$PA['row']['uid'].',
                pdf: pdf
            },
            function(data) {
                if(data){
                    jQuery("#pdf_link").html(data);
                } else {
                    alert("Invalid Request.");
                }
            }
        );
    }
});

由于我需要TYPO3框架从数据库中获取数据,所以我决定使用eID Ajax功能。

我不必动态创建和获取文件,而是必须在服务器中创建文件并将链接返回给它。

这很好用,并不像我以前的做法那样难看。

PS:jQuery("#select_pdf").val();是指我添加的另一个选择器,用于指定要使用的模板。