1

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

细节.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'));
4

2 回答 2

0

您可以使用用于将新闻标题例如放在面包屑菜单中的相同策略:传递新闻记录的 id(请参阅如何为 tx_news TYPO3 设置面包屑

让我们坐那个

  • 您的表单中有一个名为{job}(输入字段,但它也可以是隐藏字段)的字段
  • 在指向您的 powermail 表单页面的链接中,将新闻记录 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
    }
} 
于 2018-07-28T16:05:45.480 回答
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
于 2018-06-22T09:42:13.177 回答