TYPO3-通过单击按钮预先选择具有特定tx_news记录的超级邮件选择

时间:2018-06-20 17:44:38

标签: typo3 typo3-8.x tx-news typo3-8.7.x powermail

我使用tx_news显示作业记录(列表和详细信息视图)。在记录的详细信息页面上,我有一个申请表的链接:

Detail.html

<f:link.page pageUid="21" class="btn btn-primary">Application</f:link.page>

...对于我使用Powermail的申请表。在这里,我有一个选择,并用以下作业记录填充选择选项值:

lib.joboptions = CONTENT
lib.joboptions {
        table = tx_news_domain_model_news
        select.pidInList = 156
        renderObj = COA
        renderObj {
                10 = TEXT
                10.field = title

                20 = TEXT
                20.value = |

                30 = TEXT
                30.field = uid

                stdWrap.wrap = |[\n]
        }
}   

https://docs.typo3.org/typo3cms/extensions/powermail/ForAdministrators/BestPractice/PrefillField/Index.html

...但是当单击“应用程序”按钮时,如何选择具有特定工作记录ID的选择?

编辑:

...我使用js和localStorage作为解决方法...它可以工作,但仅适用于一种语言。如果我在申请表上并切换语言...选择中的选项具有不同的uid,随后未选择该选择

$('.btn-apply').on('click', function() {
    localStorage.setItem("varJobID", jobID);
}); 
$('#powermail_field_jobs, #powermail_field_job').val(localStorage.getItem('varJobID'));

2 个答案:

答案 0 :(得分:0)

在手册(请参阅https://docs.typo3.org/typo3cms/extensions/powermail/ForAdministrators/BestPractice/PrefillField/Index.html#example-2)中,有一个示例如何使用预选。

例如:

lib.options = TEXT
lib.options.value = Red shoes|red[\n]Blue shoes|blue|*[\n]Pink shoes|pink

答案 1 :(得分:0)

您可以使用与将新闻标题放在例如面包屑菜单中的策略相同的方法:传递新闻记录的ID(请参见How to set breadcrumb for tx_news TYPO3

让我们坐下来

  • 您的表单中有一个名为{job}的字段(输入字段,但是 也可能是一个隐藏字段)
  • 在超级邮件表单页面的链接中,将新闻记录ID作为参数(&jobid=XX)传递,其中XX是新闻记录ID

然后,用于预填充的TypoScript将是:

plugin.tx_powermail.settings.setup.prefill {
job = RECORDS
job {
    if.isTrue.data = GP:jobid
    dontCheckPid = 1
    tables = tx_news_domain_model_news
    source.data = GP:jobid
    source.intval = 1
    conf.tx_news_domain_model_news = TEXT
    conf.tx_news_domain_model_news {
        field = title
        htmlSpecialChars = 1
    }
}