如何在Powermail确认/提交页面上呈现链接?

时间:2012-08-03 14:34:06

标签: typo3

我正在尝试在我的powermail设置的提交页面上放置一个链接。

enter image description here

你认为这是一项简单的任务,但请耐心等待。

我的Powermail表单有2个隐藏字段,这些字段预先填充了页面ID和页面标题。

enter image description here

这些属于我之后想要返回的页面,在发送邮件之后。通过将这些值放在表单中,我希望只要我在这个过程中需要它们就可以访问它们。

我从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
      }
    }
  }
}

1。方法

鉴于Powermail声称您现在可以在内容部分使用Fluid ViewHelpers,但是,我很高兴,让我们使用PageViewHelper,如下所示:

{f:link.page(pageUid:'{backto}')}

但我的链接文字在哪里?更多内联符号来救援!

{backtotext -> f:link.page(pageUid:'{backto}')}

呈现结果

enter image description here

似乎没有完全支持内联表示法。我认为只要使用以下方式就很聪明:

{f:link.page(pageUid:'{backto}')}{backtotext}

但这会使<a>标记处于打开状态,这会产生非常不良影响......

所以 - 没有链接给我!

2。方法

所以我想我只需在TypoScript中构建链接并通过

在页面上呈现它
{f:cObject(typoscriptObjectPath:'lib.myBackLink')}

但我看不到有任何方法可以从TS中的(已发送)Powermail表单中访问变量。所以我无法访问页面ID或标题。

3。方法

所以我想,如果默认的PageViewHelper只想呈现其子元素作为其内容,也许我可以滚动自己的ViewHelper接受内容作为参数!

但是我如何让ViewHelper为系统所知,以便我可以在自定义的Powermail模板中使用它?

之前我只在扩展中使用过Fluid。很明显,如果我想在fileadmin文件夹层次结构中使用ViewHelper,Fluid会如何按名称查找正确的ViewHelper?

4。方法

那么,为什么不在RTE中使用<a href="http://www.page.com/?id={backto}">{backtotext}</a>来使用普通链接?

TYPO3意识到,这是非法参考,并迅速将链接转换为:
enter image description here
结果输出根本就不是链接。

所以,这也不起作用。

好的,所以我将目标更改为<a href="http://www.page.com?id={backto}">{backtotext}</a>(删除斜杠)。现在,该网址不再被识别为内部网址,并标有data-htmlarea-external="1"。这导致我的链接实际上被完全评估和渲染(yay)。

但它现在被视为外部链接,RealURL不再影响它,它受外部链接_target行为的影响。

为什么这么难?我不理解的是什么?

2 个答案:

答案 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}

问题解决了。我想......