カスタムチャネルフィールドのエントリが存在する場合表示コンテンツelse else代替コンテンツを表示する

私はExpressionEngineのビデオ埋め込みコードが存在する場合はビデオを表示するスライダーを設定しようとしています。そうでなければ画像スライダーが表示されます。現在、ビデオコードが存在する場合(ビデオはページに配置されている場合)、イメージスライダーを非表示にすることはできません。

ここに私のコードです:

{slider}
    {if video}
            {video}
    {if:else}
        {if total_rows > "1" && row_count == "1"}
            <div id='news_slider'>
        {/if}
            
        {if total_rows > "1" && row_count == total_rows}
            </div>
        {/if}
    {/if}
{/slider}

何か案は?ありがとう!

0

1 答え

あなたはこれを試しましたか?違いは2行目です。変数ではなく埋め込み文字列全体に対して条件付きで実行していても動作する可能性があります。

{slider}
    {if "{video}"!=""}
            {video}
    {if:else}
        {if total_rows > "1" && row_count == "1"}
            <div id='news_slider'>
        {/if}
            
        {if total_rows > "1" && row_count == total_rows}
            </div>
        {/if}
    {/if}
{/slider}

私はまた、OPから、これがEE 2.5.5とPixel and Tonic Matrixを実行していることを発見しました。私はグリッドにプロトタイプの代替案を書いて、それをアップグレードするようアドバイスしました。

2
追加された
あなたは何を意味するかを明確にすることができますか?
追加された 著者 Chris Marasti-Georg,
これはどのような分野ですか?
追加された 著者 Chris Marasti-Georg,
私に遊びをさせて、5であなたに戻ってきます。
追加された 著者 Chris Marasti-Georg,
うーん、ExpressionEngineが生の埋め込みコードを条件変数として扱っているように思えます。私は取得しています: "メッセージ:無効なEE条件変数"
追加された 著者 Espo,
したがって、 "video"が設定されているかどうかをチェックする代わりに、 "<iframe width =" 560 "height =" 315 "...."が設定されているかどうかをチェックします。基本的に、生の埋め込みコードを変数として扱っています。
追加された 著者 Espo,
たぶん私はこれについて間違った方法をしています。現在、私は "スライダ"と呼ばれる "img_title"、 "image"、 "video"のオプションを持つ1つのチャンネルフィールドを持っています。ビデオを自分のチャンネルフィールドとして設定し、そのような条件文を実行するのが理にかなっていますか、今のような単一のチャンネルフィールドを使用して達成することは可能でしょうか?アンドリューに助けてくれてありがとう!
追加された 著者 Espo,
マトリックスフィールドです
追加された 著者 Espo,