这是什么语法以及如何调试它?

时间:2011-01-31 02:32:02

标签: php add-on expressionengine

我目前正致力于将表达式引擎站点从一个服务器移动到另一个服务器,我注意到一个问题,我正在进行艰难的调试。当我上传徽标图像时,一切似乎都很好但是在其上显示徽标的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类,我想知道我可以测试这些变量的内容和方式“segment1”和“logo”,“组织”和“url”我如何以及在哪里检查这些变量

3 个答案:

答案 0 :(得分:3)

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

<?php

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

?>

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

答案 1 :(得分:3)

{embed="shared/head"} - 在模板组中包含模板 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 }

答案 2 :(得分:2)

这是用Expression Engine自己的templating language编写的。

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

可能有用的链接: