Выражение PHPEngine php str_replace не работает - PullRequest
0 голосов
/ 01 июля 2011

У меня есть шаблон с включенным php на выходе. Однако я не могу заставить str_replace работать. Смотрите ниже код. Если я просто поставил {title} без какого-либо php, то это работает. Но когда я включаю php и помещаю {title} в функцию str_replace, у меня ничего не отображается. Я попробовал php с простым эхо 'test'; и это сработало. Это просто не парсинг {title} или других тегов полей.

{exp:channel:entries channel="one" url_title="{segment_2}"}
  <?php
    echo str_replace('old', 'new', '{title}');
  ?>
{/exp:channel:entries}

Ответы [ 2 ]

2 голосов
/ 02 июля 2011

Это может показаться нелепым, но вы пытались удалить параметр url_title из тега {exp:channel:entries}, чтобы убедиться, что остальная часть вашего кода и логики работает правильно?

Следующий код должен выводить заголовок записи "old test" (без кавычек):

{exp:channel:entries channel="channel_name" entry_id="xx" dynamic="off"}
    {title} 
{/exp:channel:entries}

При одинаковом заголовке записи "old test" это должно вывести: "new test" (опять же, без кавычек):

{exp:channel:entries channel="channel_name" entry_id="xx" dynamic="off"}
    <?php
        echo str_replace('old', 'new', '{title}');
    ?>
{/exp:channel:entries}

Это было успешно проверено в новом пустом шаблоне с PHP включен и установлен на Вывод .

Screenshot

0 голосов
/ 01 июля 2011

Вы можете попробовать встроить шаблон с вашим PHP и отправить переменную таким образом. Синтаксический анализ ввода / вывода иногда не имеет значения для некоторых элементов.

...