2011-02-02 4 views
2

У меня есть очень простое требование, но не могу найти подходящее решение.Получить данные конфигурации в файле javascript - magento

Как получить данные конфигурации в файлы javascript внутри magento. Мне нужно загрузить некоторые данные конфигурации из модуля и сделать его доступным с помощью кода javascript. Не загружая эти данные в скрытые поля на странице или используя ajax для извлечения их из контроллера - как это сделать?

Заранее благодарю за любую помощь.

ответ

0

Добавьте этот код в, прежде чем загрузить JS ...

<script type="text/javascript">var var_name = <?php echo $var_name; ?></script> 

Затем вы можете загрузить в JS, как

<script type="text/javascript" src="/js/file.js"></script> 

В вашем file.js (при условии, что файл будет загружен после переменная определение) вы можете сделать что-то вроде ...

//execute as soon as DOM is loaded 
window.onDomReady(onReady); 

//do on ready 
function onReady() 
{ 
    alert(var_name); 
} 

Или, если вы используете JQuery

$(document).ready(function(){ alert(var_name); } 
2

Вы можете получить значение, которое вы ищете, как это:

// using seo as an example. look at the path field on core_config_data 
$value = Mage::getStoreConfig("web/seo/use_rewrites"); 

Положите это в шаблон, который будет эхо код:

<?php 
$seo_value = Mage::getStoreConfig("web/seo/use_rewrites"); 
?> 
<script type='text/javascript'> 
magento_config = {} 
magento_config['seo_value'] = "<?php print $seo_value; ?>"; 
// ... add more ... 

</script> 

Добавить этот шаблон для макета и теперь у вас будет глобальный объект JS с именем magento_config, который вы можете использовать для захвата ваших значений. В зависимости от того, где вы размещаете свой шаблон, вам, возможно, придется дождаться загрузки страницы до того, как ваши переменные будут доступны.

Обязательно не повторяйте эти значения без разбора, так как могут возникнуть проблемы с безопасностью при отображении данных конфигурации хранилища во внешний интерфейс.

Надеюсь, что это поможет!

Thanks, Joe

Смежные вопросы