Получить основной URL магазина Magento в javascript - PullRequest
5 голосов
/ 20 января 2012

Каков наилучший способ определить базовый URL магазина Magento изнутри javascript?

Я работаю над повторно используемым расширением, которому нужно знать базовый URL магазина в javascript для выполнения некоторых вызовов Ajax.Можно было бы подумать, что свойство типа

Mage.baseUrl 

будет доступно, но я не могу его найти.

Альтернативой может быть добавление базового URL-адреса в виде небольшого количества встроенного JavaScript, ноЯ не могу найти информацию о том, как программно добавить встроенный javascript (только внешние файлы js), без изменения шаблона.

1 Ответ

5 голосов
/ 20 января 2012

По умолчанию эта информация не (надежно, стабильно) раскрывается через Javascript.Вам нужно будет выставить его самостоятельно через пользовательский блок, добавленный в макет.Самый простой способ сделать это будет

  1. Добавление блока через файл local.xml вашей темы

  2. Добавление шаблона в вашу тему длявышеуказанный блок

Чтобы добавить блок в макет с помощью файла local.xml, должно быть что-то подобное

<default>
    <reference name="root">
        <block name="my_custom_js_block">
            <action method="setTemplate">
                <template>my_custom_js_block/extra-js.phtml</template>
            </action>
        </block>
    </reference>
</default>

Затем добавьте следующую папку и файлВаша тема

app/design/frontend/default/your_theme/template/my_custom_js_block/
app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml

На данный момент у вас есть файл шаблона phtml, который будет отображаться на каждой странице.Вы можете добавить любые переменные JavaScript, которые вы хотите.Мне нравится шаблон что-то вроде

#File: app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml
<?php
    $h = Mage::helper('core');
    $info = new stdClass();
    $info->base_dir = Mage::getBaseDir();
?>
<script type="text/javascript">
    var my_custom_js_block_info = <?php echo $h->jsonEncode($info); ?>;
</script>

(непроверенный, код «верх моей головы», но он должен работать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...