0

我在 Concrete5 中为我的自定义主题创建了一个条件语句。我的代码目标是切换布局。如果当前页面下有子页面,它会显示一个附加的侧边栏 ( <div class="grid_3">) 来列出子页面项目。如果没有子页面,它将显示完整的布局 ( <div class="grid_13">)。

不幸的是,我得到了不同的结果。我的条件声明中可能遗漏了一些东西。它不是只显示一种布局,而是呈现两种布局。

下面是我的代码的样子:

<? 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 回答