我正在尝试在我的powermail设置的提交页面上放置一个链接。
你认为这是一项简单的任务,但请耐心等待。
我的Powermail表单有2个隐藏字段,这些字段预先填充了页面ID和页面标题。
这些属于我之后想要返回的页面,在发送邮件之后。通过将这些值放在表单中,我希望只要我在这个过程中需要它们就可以访问它们。
我从TypoScript中预先填充了这些隐藏的字段,如下所示:
plugin.tx_powermail {
settings {
setup {
prefill {
// Hidden "back to" page ID. This is the page you may want to return to after sending a mail.
backto = TEXT
backto.data = GP:backTo
backto.if.isTrue.data = GP:backTo
backtotext = TEXT
backtotext.noTrimWrap = |Back to ||
backtotext.data = GP:title
backtotext.if.isTrue.data = GP:title
backtotext.htmlSpecialChars = 1
}
}
}
}
鉴于Powermail声称您现在可以在内容部分使用Fluid ViewHelpers,但是,我很高兴,让我们使用PageViewHelper,如下所示:
{f:link.page(pageUid:'{backto}')}
但我的链接文字在哪里?更多内联符号来救援!
{backtotext -> f:link.page(pageUid:'{backto}')}
似乎没有完全支持内联表示法。我认为只要使用以下方式就很聪明:
{f:link.page(pageUid:'{backto}')}{backtotext}
但这会使<a>
标记处于打开状态,这会产生非常不良影响......
所以 - 没有链接给我!
所以我想我只需在TypoScript中构建链接并通过
在页面上呈现它{f:cObject(typoscriptObjectPath:'lib.myBackLink')}
但我看不到有任何方法可以从TS中的(已发送)Powermail表单中访问变量。所以我无法访问页面ID或标题。
所以我想,如果默认的PageViewHelper只想呈现其子元素作为其内容,也许我可以滚动自己的ViewHelper接受内容作为参数!
但是我如何让ViewHelper为系统所知,以便我可以在自定义的Powermail模板中使用它?
之前我只在扩展中使用过Fluid。很明显,如果我想在fileadmin文件夹层次结构中使用ViewHelper,Fluid会如何按名称查找正确的ViewHelper?
那么,为什么不在RTE中使用<a href="http://www.page.com/?id={backto}">{backtotext}</a>
来使用普通链接?
TYPO3意识到,这是非法参考,并迅速将链接转换为:
结果输出根本就不是链接。
所以,这也不起作用。
好的,所以我将目标更改为<a href="http://www.page.com?id={backto}">{backtotext}</a>
(删除斜杠)。现在,该网址不再被识别为内部网址,并标有data-htmlarea-external="1"
。这导致我的链接实际上被完全评估和渲染(yay)。
但它现在被视为外部链接,RealURL不再影响它,它受外部链接_target
行为的影响。
为什么这么难?我不理解的是什么?
答案 0 :(得分:1)
在RTE中,您必须使用<link ###pageid###>
代替<a href="...">
。
查看RTE数据库字段内容(或点击无RTE复选框),了解如何使用链接元素。
答案 1 :(得分:1)
事实证明,之前尝试过的解决方案都没有实际发挥作用。
为了解决问题,我刚刚更换了web
模板中的PowermailAll
部分,如下所示:
Section for Web view
<f:section name="web">
</a>
</f:section>
然后我在提交页面内容中使用了以下内容:
{f:link.page(pageUid:'{backto}')}{backtotext}{powermail_all}
问题解决了。我想......