Smarty - пустая ошибка компиляции шаблона в т.ч. UA Принято

2

В темах часто используют строки локализации вида
{$title = $theme_settings.footer_title|default:'[`Contact us`]'}

В значении локализации вместо Contact us используется перевод вида "Зв'яжіться з нами". это приводит к общей ошибке 

waException code 0
Next SmartyCompilerException with message '':

Для повторения ошибки можно использовать в шаблоне строчку вида

{$title = $theme_settings.footer_title|default:'[`Côte d'Ivoire`]'}

Либо любую строчку локализации с апострофом.

Исправление https://github.com/webasyst/we...
После исправления сообщение об ошибке выглядит

Syntax Error in template "wa-data/public/site/themes/default/index.html" on line 1 "{$title = $theme_settings.footer_title|default:'Кот-д'Ивуар'}" - Unexpected "�" code 0

Next SmartyCompilerException with message 'Syntax Error in template "wa-data/public/site/themes/default/index.html"  on line 1 "{$title = $theme_settings.footer_title|default:'Кот-д'Ивуар'}"  - Unexpected "�"':

Что гораздо более информативно.

5 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 25 декабря 2020 08:52 #

    {$title = $theme_settings.footer_title|default:'[`Côte d'Ivoire`]'}

    В этом коде возникает ошибка, потому что используются одинаковые кавычки и вокруг строки, и внутри неё. Т. е. код содержит синтаксическую ошибку. Если использовать разные кавычки, то ошибки не будет:

    {$title = $theme_settings.footer_title|default:"[`Côte d'Ivoire`]"}

    Есть какие-то обстоятельства, которые мешают так делать?

    • +1

      Этот код намеренно сделан как пример, чтобы вызывать и показать ошибку.
      Первый код

      {$title = $theme_settings.footer_title|default:'[`Contact us`]'}

      Не вызывает ошибку на русском и английском т.к. в переводе нет символа '
      На украинском перевод будет Зв'яжіться з нами и возникает ошибка.

      Проблема в том что в ошибке не показано кто проблема, какой шаблон или фраза. В темах нет поиска по всем файлам, тем более нет поиска по шаблонам плагинов.

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 25 декабря 2020 14:59 #

      Попробовали использовать вот такой код в теме дизайна Shop-Script:

      {$test|default:'[`test`]'}

      На тестовом сервере сообщение об ошибке выглядит так:

      Next SmartyCompilerException with message 'Syntax Error in template "wa-data/public/shop/themes/default/main.html" on line 1 "{$test|default:'test'test'}" - Unexpected "test", expected one of: "}" , " " , ATTR'

      Сообщение не пустое. Возможно, это зависит от настроек PHP на разных серверах.

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите