Как я могу добавить внешний JQuery в Magentoчерез CMS? - PullRequest
2 голосов
/ 12 февраля 2012

При установке в Magento я пытаюсь вставить XML в XML-код обновления макета моей домашней страницы. У меня уже есть какой-то xml, который работает, но я бы хотел добавить скрипт jQuery для запуска моего слайд-шоу. У меня было это в page.xml (и я планировал переместить его в мой local.xml в какой-то момент), где оно работало, но оно сломало Добавить в корзину на страницах продукта. Итак, я подумал, что смогу объединиться только на главной странице и поместить его в XML-файл Layout Update. По какой-то причине это не проходит.

<reference name="head">
<action method="addJs"><script>jquery/jquery-1.7.1.noConflict.min.js</script></action>
<action method="addJs"><script>folder/slider.js</script></action>
</reference>

Есть идеи, почему это будет работать в моем page.xml, а не здесь?

Вот идея вложенности в page.xml

<default translate="label" module="page">
    <label>All Pages</label>
    <block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">
        <block type="page/html_head" name="head" as="head">
            <action method="addJs"><script>prototype/prototype.js</script></action>

1 Ответ

3 голосов
/ 12 февраля 2012

Вы можете сделать следующее:

добавить JavaScript в local.xml

<layout version="0.1.0">
<default>
   <reference name="head">
      <action method="addJs"><script>jquery/jquery-1.7.1.min.js</script></action>
      <action method="addJs"><script>jquery/carouFredSel.js</script></action>
   </reference>
</default>
</layout>

, затем создайте собственный шаблон домашней страницы (воспользуйтесь ссылкой 1column.phtml), выберите этот шаблон для домашней страницы в CMS.

Поместите следующее содержимое в раздел «Обновление макета XML» домашней страницы на вкладке «Дизайн». Вот моя установка, из-за которой я удаляю целые прототипные скрипты с домашней страницы, потому что не хотел.

<reference name="head">
<action method="removeItem"><type>js</type><script>prototype/prototype.js</script></action>
<action method="removeItem"><type>js</type><script>prototype/validation.js</script></action>
<action method="removeItem"><type>js</type><name>scriptaculous/builder.js</name><params/></action>
<action method="removeItem"><type>js</type><name>scriptaculous/effects.js</name><params/></action>
<action method="removeItem"><type>js</type><name>scriptaculous/dragdrop.js</name><params/></action>
<action method="removeItem"><type>js</type><name>scriptaculous/controls.js</name><params/></action>
<action method="removeItem"><type>js</type><name>scriptaculous/slider.js</name><params/></action>
<action method="removeItem"><type>js</type><name>lib/ccard.js</name><params/></action>
<action method="removeItem"><type>js</type><name>varien/menu.js</name><params/></action>
<action method="removeItem"><type>js</type><name>varien/js.js</name><params/></action>
<action method="removeItem"><type>js</type><name>mage/translate.js</name><params/></action>
<action method="removeItem"><type>js</type><name>varien/form.js</name><params/></action>
<action method="removeItem"><type>skin_js</type><script>js/prototype.formalize.min.js</script></action>
<action method="removeItem"><type>skin_css</type><name>css/formalize.css</name><params/></action>

Кроме того, не создавайте конкретную страницу noConflict, просто положите конец скрипту jQuery, который работает хорошо.

Например, вот мое:

jQuery&&define("jquery",[],function(){return f})})(window);var $jQuery = jQuery.noConflict();

Кроме того, вам следует создать папку jquery в корневом каталоге js, а не в папке скина js.

...