首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExpressionEngine ->模板包含

ExpressionEngine ->模板包含
EN

Stack Overflow用户
提问于 2012-03-28 19:57:53
回答 1查看 557关注 0票数 0

ExpressionEngine模板代码:

代码语言:javascript
复制
<div class="container_16">
  <div class="grid_16">
{if "{segment_1}" == "home"}
  {embed="include/title" title="welcome"}
{if:elseif "{segment_1}" == "login"}
  {embed="include/title" title="login"}
{if:else}
<?php
  if(isset($_SESSION['loggedin'])) {
    if($_SESSION['loggedin']) {
?>
      {embed="include/title" title="welcome"}
<?php
    } else {            
?>    
      {embed="include/title" title="login"}
<?php 
    }
  }
?>          
{/if}
  </div> <!-- grid_16 -->
</div> <!-- container_16 -->

上面的代码存在的问题是,当segment_1为空时,只有当$_ title=login‘’loggedin‘不正确时,它才会显示带有嵌入title=login的标题模板。

我知道会话变量甚至没有设置,所以它应该显示带有登录的标题模板,但它没有显示任何内容,只显示以下内容:

代码语言:javascript
复制
<div class="container_16">
  <div class="grid_16">

  </div> <!-- grid_16 -->
</div> <!-- container_16 -->

如果我的主页是segment_1,它会显示带有嵌入title=welcome的标题模板。

有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-29 12:03:56

不能使用{logged_in}和{logged_out}变量吗?

无论哪种方式,都要添加附加条件:

代码语言:javascript
复制
{if "{segment_1}" == "home"}
  {embed="include/title" title="welcome"}
{if:elseif "{segment_1}" == "login" && logged_out}
  {embed="include/title" title="login"}
{if:else}
  {if logged_in}
    {embed="include/title" title="welcome"}
  {if:else}
    {embed="include/title" title="login"}
  {/if}
{/if}

在较早版本的EE中,我对if:否则不使用logged_in条件有问题,因此您可能只需要用:

代码语言:javascript
复制
{if logged_in}
{/if}
{if logged_out}
{/if}

如果必须使用会话变量,请确保在模板中打开PHP,并将解析设置为EE之前。您需要稍微更改条件:

代码语言:javascript
复制
{if:elseif "{segment_1}" == "login" && "0" == "<?= (isset($_SESSION['loggedin'])) ? "1" : "0"; ?>"}

尽管您可能能够逃脱(您需要进行测试以确认):

代码语言:javascript
复制
... && <?= (isset($_SESSION['loggedin'])) ? true : false; ?>}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9914724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档