0

powermailセットアップの送信ページにリンクを配置しようとしています。

ここに画像の説明を入力してください

これは簡単な作業だと思うかもしれませんが、我慢してください。

私のPowermailフォームには、ページIDとページタイトルが事前に入力された2つの非表示フィールドがあります。

ここに画像の説明を入力してください

これらは、メールを送信した後、後で戻りたいページに属しています。これらの値をフォームに入力することで、プロセスで必要なときにいつでもアクセスできるようにしたいと思いました。

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}')}

レンダリングされた結果

ここに画像の説明を入力してください

インライン表記は完全にはサポートされていないようです。私は単に使用することで賢いと思いました:

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

しかし、これは<a>タグを開いたままにし、非常に望ましくない影響を及ぼします...

だから-私にはリンクがありません!

2.アプローチ

だから私はTypoScriptでリンクを作成し、それを経由してページにレンダリングするだけだと思いました

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

しかし、TSの(送信された)Powermailフォームから変数にアクセスする方法がわかりません。そのため、ページIDまたはタイトルにアクセスできません。

3.アプローチ

したがって、デフォルトのPageViewHelperがその子をコンテンツとしてのみレンダリングしたい場合は、コンテンツをパラメーターとして受け入れる独自のViewHelperをロールできるかもしれないと思いました。

しかし、カスタマイズしたPowermailテンプレートで使用できるように、そのViewHelperをシステムに通知するにはどうすればよいですか?

私は以前、エクステンション内でのみFluidを使用しました。Fluidadminフォルダー階層でViewHelperを使用したい場合、Fluidが名前で正しいViewHelperを検索する方法は明らかでした。

4.アプローチ

では、 RTEで使用して通常のリンクを使用しないのはなぜですか?<a href="http://www.page.com/?id={backto}">{backtotext}</a>

TYPO3はそれが違法な参照であることを認識し、すぐにリンクを次のように変えます:
ここに画像の説明を入力してください
そして結果の出力は単にリンクではありません。

だから、それもうまくいきません。

OK、ターゲットを<a href="http://www.page.com?id={backto}">{backtotext}</a>(スラッシュを削除)に変更します。これで、URLは内部として認識されなくなり、。でマークされdata-htmlarea-external="1"ます。これにより、私のリンクは実際に完全に評価され、レンダリングされます(イェーイ)。

ただし、現在は外部リンクのように扱われ、RealURLは影響を与えなくなり、外部リンクの_target動作の影響を受けます。

なぜこれがそんなに難しいのですか?何がわからないの?

4

2 に答える 2

1

結局のところ、以前に試みられた解決策はどれも実際には機能しませんでした。

物事を乗り越えるために、私はテンプレートのwebセクションを次のように置き換えました。PowermailAll

Section for Web view

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

次に、送信ページのコンテンツで次を使用しました。

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

問題が解決しました。私は推測する...

于 2012-08-05T21:06:57.737 に答える
1

RTE<link ###pageid###>では、の代わりにを使用する必要があり<a href="...">ます。

リンク要素の使用方法については、RTE DBフィールドの内容を確認してください(またはRTEなしのチェックボックスを押してください)。

于 2012-08-04T15:42:46.993 に答える