(Немного поздно, но надежда все еще полезна) Вот еще один способ, которым я использую, чтобы лучше организовать мои переменные js-serveride.
Я положил где-то в начале некоторые основные переменные - например. в функции before ():
$this->template->appconf = array(
'url_base' => url::base(),
'l' => substr(I18n::$lang, 0, 2),
);
Теперь я могу добавлять всякий раз, когда мне нужна дополнительная переменная:
$this->template->appconf['page_key'] = 'product_page';
И, наконец, в шаблоне эта чистота:
<script type="text/javascript">
var appconf = <?php echo json_encode($appconf); ?>;
</script>
Используйте вот так:
<script type="text/javascript">
console.log(appconf.url_base); // "/mysite/"
</script>