0

我正在尝试在我的 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
      }
    }
  }
}

1.方法

鉴于 Powermail 声称您现在可以在您的内容部分中使用 Fluid ViewHelper,不过,很好,让我们使用 PageViewHelper,如下所示:

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

但是我的链接文本去哪里了?更多内联符号来救援!

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

渲染结果

在此处输入图像描述

似乎不完全支持内联表示法。我认为我很聪明,只需使用:

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

但这会使<a>标签保持打开状态,这会产生非常不良的影响...

所以 - 我没有链接!

2.方法

所以我想我会简单地在 TypoScript 中构建链接并将其呈现在页面上

{f:cObject(typoscriptObjectPath:'lib.myBackLink')}

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

3.方法

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

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

我以前只在我的扩展中使用过 Fluid。很明显,Fluid 如何按名称查找正确的 ViewHelper,如果我想在我的文件管理文件夹层次结构中使用 ViewHelper,该怎么办?

4. 方法

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

TYPO3 意识到这是一个非法引用,并迅速将链接转换为:
在此处输入图像描述
结果输出将根本不是链接。

所以,这也行不通。

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

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

为什么这么难?我不明白什么?

4

2 回答 2

1

As it turned out, none of the previously attempted solution actually worked.

To get things over with, I just replaced the web section in the PowermailAll template, like so:

Section for Web view

<f:section name="web">
</a>
</f:section>

And then I used the following in my Submit Page content:

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

Problem solved. I guess...

于 2012-08-05T21:06:57.737 回答
1

在 RTE 中,您必须使用<link ###pageid###>而不是<a href="...">.

查看 RTE DB 字段内容(或点击 no RTE 复选框)了解如何使用链接元素。

于 2012-08-04T15:42:46.993 回答