0

Concrete5でカスタムテーマの条件ステートメントを作成しました。私のコードの目標は、レイアウトを切り替えることです。現在のページの下に子ページがある場合は<div class="grid_3">、サブページの項目を一覧表示するための追加のサイドバー()が表示されます。子ページがない場合は、完全なレイアウト(<div class="grid_13">)が表示されます。

残念ながら、別の結果が得られます。条件ステートメントでおそらく見逃していたことがあります。1つのレイアウトを表示するだけでなく、2つのレイアウトをレンダリングしています。

以下は私のコードがどのように見えるかです:

<? if($c->getNumChildren()) { ?>


<div class="grid_3">
    <?php   
    $bt_sidenav = BlockType::getByHandle('autonav');
    $bt_sidenav->controller->orderBy = 'display_asc';
    $bt_sidenav->controller->displayPages = 'below';
    $bt_sidenav->controller->displaySubPages = 'all';
    $bt_sidenav->render('view');
    ?>
</div>

<div id="main-content-container" class="grid_10">
    <div id="main-content-inner">
        <?php
        $a = new Area('Main');
        $a->display($c);
        ?>          
    </div>  
</div>

<? } else { ?>

<div id="main-content-container" class="grid_13">
    <div id="main-content-inner">
        <?php
        $a = new Area('Main');
        $a->display($c);
        ?>          
    </div>  
</div>

<? } ?>
4

2 に答える 2

4

PHPのコンテンツ生成部分は適切なPHPタグ(<?php … ?>)を使用しますが、if / elseステートメントは短いタグ(<? … ?>)を使用しますが、これは多くの場合無効になっています。

<?php代わりに使用してください。

于 2012-04-26T13:05:13.247 に答える
0

このようにしてみてくださいこれで問題が解決するかもしれません

<?php if($c->getNumChildren()!='') { ?> ... <?php } else { ?> ... <?php } ?>

于 2012-04-26T13:11:25.707 に答える