Что на самом деле делает скрытый $config['protect_javascript']
ExpressionEngine? Это, вероятно, лучше всего объяснить на примере & mdash; позвольте мне проиллюстрировать.
Учитывая следующий пример кода, с $config['protect_javascript'] = 'y';
расширенные условия будут полностью игнорироваться:
<script>
{if username == "admin"}
Welcome, {username}!
{if:elseif member_id == "2"}
Welcome, {screen_name}!
{if:else}
Welcome, Guest!
{/if}
</script>
Который будет производить следующий вывод:
<script>
Welcome, admin!
Welcome, Administrator!
Welcome, Guest!
</script>
Принимая во внимание, что когда $config['protect_javascript'] = 'n';
тот же фрагмент кода сверху разрешит оценку расширенных условий и выдаст:
<script>
Welcome, admin!
</script>
Как видите, разница в том, оцениваются ли расширенные условия в блоках кода JavaScript .
Простые условия и шаблонные теги всегда оцениваются в <script>
тегах, независимо от настройки $config['protect_javascript']
& mdash; просто не забудьте поставить фигурные скобки {}
на отдельных строках!
<script>
// Simple Conditionals Are Unaffected and Always Work
{if segment_2 != ""}
{redirect="404"}
{/if}
</script>