0

我目前正在将表达式引擎站点从一台服务器移动到另一台服务器,我注意到一个问题我很难调试。当我上传徽标图像时,一切似乎都很好,但是显示徽标的 index.php 页面上有此代码

{embed="shared/head"}

<body class="{if segment_1 == ''}home{if:else}{segment_1}{/if}">

    <div id="page" class="container">
        <div class="span-22 prepend-1 append-1 last">

            {embed="shared/masthead"}
{if logo !=''}
  <div class="news_item_logo">
    {organization}
      {if link}<a href="http://{exp:php_text_format type="lowercase"}{if url !=''}{url}{if:else}{name}{/if}{/exp:php_text_format}"><img src="{logo}" width="130" alt="{title}" /></a>{if:else}
      <img src="{logo}" width="130" alt="{title}" />{/if}
    {/organization}
  </div><!-- /.news_item_logo -->
  <ul>
    <li><h3>{title}</h3></li>
    <li>{pub_date}</li>
  {organization}
    <li>{if link}<a href="http://{if url !=''}{url}{if:else}{name}{/if}">{/if}{exp:php_text_format type="lowercase"}{if url_text != ''}{url_text}{if:else}{name}{/if}{if link}{/exp:php_text_format}</a>{/if}</li>
  {/organization}
    <li>{if file}<a href="{site_url}{file}">PDF</a>{/if}{if web_link !='' AND file !=''}&nbsp;&nbsp;|&nbsp;&nbsp;{/if}{if web_link}<a href="{web_link}">HTML</a>{/if}</li>
  </ul>
{if:else}
  <ul class="no_logo">
    <li><h3><a href="{web_link}">{title}</a></h3></li>

我的问题是,我在 if 语句周围看到大括号 {},我首先想知道它是什么语言,其次是有没有办法像 php print_r() 那样进行调试,因为代码总是使用 no_logo 类转到 else 和我想知道什么以及如何测试这些变量“segment1”和“logo”以及“组织”和“url”我如何以及在哪里检查这些变量

4

3 回答 3

3

您可以使用 index.php 中的以下内容获取有关模板中给定变量和值的一些信息:

<?php

$EE = get_instance();
var_dump($this->EE->TMPL);

?>

请注意,必须在模板中启用 PHP 才能正常工作(请参阅模板中的 PHP)。

于 2011-02-01T09:39:17.573 回答
3

{embed="shared/head"}- 包括模板组共享的模板

<body class="{if segment_1 == ''}home{if:else}{segment_1}{/if}">

如果 URI 段(EE/CI 与段一起使用,例如 site.com/segment1/segment2/xxx)为空(您在主页 (www.site.com) 上,则不添加正文类。

否则,用户在页面上(在 EE 中这是一个模板组),因此将类设置为模板组的名称。

site.com/about-us产生class="about-us"- 方便页面特定的样式。

{embed="shared/masthead"}- 包括刊头

等等。

其余的是检查变量是否具有值并输出它们的条件

我假设您使用的是 EE2.0,我不确定{organizaton}具体是什么,但是那种风格:

{organization} {foo} {/organization}

至少在代码点火器中,通常相当于 foreach 或循环记录集:

foreach($organizations as $organization) { // do something }

于 2011-02-02T11:22:55.173 回答
2

这是用 Expression Engine 自己的模板语言编写的。

您必须检查文档以查看是否有任何方法可以调试变量。

可能有用的链接:

于 2011-01-31T02:38:26.937 回答