2012-03-28 6 views
0

ExpressionEngine 2.2.1を使用しています。カテゴリに基づいてページのセクションを表示しようとしています。特定のカテゴリが選択されているエントリがない場合は、セクション全体を非表示にします。たとえば、ウェブサイトには、最終的に競合他社に参加するイベントに関する情報が掲載されています。競合他社が選択される前にそのページが存在するようにしたい場合は、競合他社を選択した後、該当するカテゴリに競合他社を追加したいと考えています。そのセクションには「競合他社」というヘッダーがあります。まだそのカテゴリに割り当てられている競合他社がいない場合は、競合他社にスペースを表示したくないだけでなく、ヘッダーも非表示にしたいと考えています。カテゴリに基づいて条件式を作成するにはどうすればよいですか?ここで働いていない私の研究に基づいて、私の現在のコードの該当部分(http://expressionengine.com/archived_forums/viewthread/136676/#759900):ExpressionEngineカテゴリがない場合は何も表示されません。

{if “{categories show_group=“4”}{category_name}{/categories}” != “”} 
    {categories}  
     <h2>COMPETITORS</h2> 
     {exp:channel:entries channel="competitor_profiles_en" category_url_title="london_2d_en" orderby="date" limit="8" } 
     <div class="xx">{competitor_image}</div> 
     {/exp:channel:entries} 
    {/categories} 
{if:else} 
show nothing 
{/if} 

答えて

0

は、これは完全なコードですか?

{categories} {/ categories}ループペアは、channel:entriesタグのペア内でのみ使用できます。

私は完全に何をしようとする、次のではないんだけど、あなたは、チャネル内で使用できるという条件があります:タグの使用に基づいて結果がない場合はエントリのループが:

{if_no_results}

テンプレートがカテゴリモードで読み込まれているがカテゴリに割り当てられているエントリがない場合に、必要なビューを作成する可能性があります。

1

これはできませんか?

{exp:channel:entries channel="competitor_profiles_en" category_url_title="london_2d_en" orderby="date" limit="8"} 
    {if count == "1"}<h2>COMPETITORS</h2>{/if} 
    <div class="xx">{competitor_image}</div> 
{/exp:channel:entries} 

あるいは、すべてのカテゴリをループしながら、あなたがこれをやっている場合:あなたは多くのカテゴリがある場合は、タグのこのネスティングは、かなりのパフォーマンスヒットにつながることを

{exp:channel:categories channel="competitor_profiles_en" show_empty="no"} 

    <h1>{category_name}</h1> 
    {category_description} 

    <h2>COMPETITORS</h2> 
    {exp:channel:entries channel="competitor_profiles_en" category="{category_id}" orderby="date" limit="8"} 
     <div class="xx">{competitor_image}</div> 
    {/exp:channel:entries} 

{/exp:channel:categories} 

注意。

1

私はchannel:entriesタグにparse="inward"を追加することで、この作業を得た:if文

{exp:channel:entries channel="news" parse="inward"} 

そして次

{if '{categories show="135"}{category_name}{/categories}' != ""} 

明らかに上記のあなたのチャネルとカテゴリIDを交換してください。だから完全なコード:

{exp:channel:entries channel="news" parse="inward"} 
    {if '{categories show="135"}{category_name}{/categories}' != ""} 
     {!-- do something here --} 
    {/if} 
{/exp:channel:entries} 
関連する問題