0

ExpressionEngine で Safecracker フォームを作成してレシピを作成しようとしています。私は食材チャンネルから多くの食材を持つことができるレシピ チャンネルを持っています (Devot:ee のマルチリレーションシップ アドオンを使用)。しかし、フォーム内に成分をリストするのに問題があります。これは私のマークアップです:

{exp:safecracker channel='recipes' datepicker='no' id='add-recipe-form' include_jquery='no' return='recipes/view/ENTRY_ID' safecracker_head='no'}
    {related_entries id='ingredients'}
        {title}
    {/related_entries}
{/exp:safecracker}

問題は、実際の EE タグが私の Web ページに出力されていることです。

私は根本的に間違ったことをしていると思うので、誰かが私を正しい方向に向けることができますか? ありがとう。

4

2 に答える 2

1

これは「変数の衝突」と呼ばれます。親タグ(この場合)で使用されているものと同じ変数/タグ名を使用するエントリをネストします。EEの解析順序{title}がどのように機能するかにより、親タグはすべての時間。

解決策は、上記のコードを別のテンプレートに配置し、そのテンプレートをSafecrackerフォームに埋め込むことです。埋め込みは、他のすべてのEEタグが解析された後、テンプレート処理の最後に実行されるため、同じ衝突に遭遇することはありません。

于 2012-04-02T13:56:03.993 に答える
0

Derek の言うとおりです。関連するエントリを埋め込む必要があります。このコードを使用して、Toronto EE ミートアップ サイトでこれを機能させました。

簡略化されたテンプレート コード:

{exp:safecracker channel="gta-attendee"}
<div class="form_row" style="display:none;">
<label class="small">Choose Meetup to Attend:<span class="required">*</span></label>
{embed="includes/_playa_select" selected="{attendee-event:child_ids}" }
</div>
{/exp:safecracker}  

埋め込みコード:

{exp:channel:entries dynamic="no" channel="gta-meetup" limit="1"}
<input value="{entry_id}" name="attendee-event[selections][]" type="hidden">
{/exp:channel:entries}

コードでは Playa モジュールを使用していますが、原理は同じです。お役に立てれば

ショーン

于 2012-04-12T16:40:36.550 に答える