Что это за синтаксис и как его отладить? - PullRequest
0 голосов
/ 31 января 2011

В настоящее время я работаю над переносом сайта механизма выражений с одного сервера на другой, и я заметил одну проблему, которая вызывает затруднения при отладке. Когда я загружаю изображение логотипа, все выглядит нормально, но страница 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, и я хочу знать, что и как я могу проверить эти переменные «сегмент1» и «логотип» и «организация» и «URL» Как и где я могу проверить эти переменные

Ответы [ 3 ]

3 голосов
/ 01 февраля 2011

Вы можете получить некоторую информацию о заданных переменных и значениях в шаблоне, используя следующее в вашем index.php:

<?php

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

?>

Обратите внимание, что PHP должен быть включен в шаблонах, чтобы это работало (см.1004 * PHP в шаблонах ).

3 голосов
/ 02 февраля 2011

{embed="shared/head"} - включает шаблон head из группы шаблонов shared

<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 голосов
/ 31 января 2011

Это написано на собственном языке шаблонов Expression Engine .

Вы должны проверить документацию, чтобы узнать, есть ли способ отладки переменных.

Возможно, полезные ссылки:

...