ExpressionEngine Шаблонный класс анализирует фигурные скобки {}
как переменные шаблона , ища три вида переменных: одиночные, парные и условные переменные:
// Single Variable
{summary}
// Pair Variable
{category} ... {/category}
// Conditional Variable
{if segment_2 != ""} ... {/if}
Фигурные скобки в CSS считаются особым условием.
Например, следующий CSS * приемлем для размещения в любом месте шаблона и получает интеллектуальный анализ :
<style>
/* All On One Line = Okay */
p { margin-bottom: 1em; }
/* Indented and On Separate Lines = Also Okay */
p em {
font-style: italic;
}
/* EE Variables are Parsed and Replaced */
p.{site_name} {
text-decoration: none;
}
/* EE Code is Allowed and Parsed Appropriately */
{exp:channel:entries channel="channel_name" limit="1"}
li.{url_title} a {
color: #c00;
}
{/exp:channel:entries}
</style>
К сожалению, JavaScript обрабатывается по-другому и не позволяет парсеру Advanced Conditionals обрабатывать что-либо в тегах.Например, следующий JavaScript с фигурными скобками в одной строке :
<script>var addthis_config = { 'ui_click': true };</script>
будет проанализирован ExpressionEngine как переменная шаблона и будет отображаться как:
<script>var addthis_config = ;</script>
Вы заметите все, начиная с открытия {
и заканчивая закрывающей фигурной скобкой }
, анализируется и заменяется!В качестве обходного пути вы можете поместить фигурные скобки в отдельные строки и избежать этой проблемы:
<script>
var addthis_config = {
'ui_click': true,
'data_track_clickback': true
};
</script>
Если вы написали функцию JavaScript, которая ожидает значения от ExpressionEngine, просто поместите фигурные скобки в отдельные строки - что хорошее соглашение о кодировании и оптимально для удобочитаемости :
<script>
$(document).ready(function() {
...
{exp:channel:entries channel="channel_name" limit="1"}
var business_name = '{business_website}';
var business_website = '{business_website}';
{/exp:channel:entries}
...
});
</script>
Как предложил Бен, вы можете изменить это поведение, установив Скрытую переменную конфигурации: $conf['protect_javascript'] = 'n';