Я сделал следующее, чтобы включить jQuery из Google CDN в Magento:
<default>
<reference name="head">
<block type="core/text" name="google.cdn.jquery">
<action method="setText">
<text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]>
</text>
</action>
</block>
</reference>
</default>
Однако, когда я хочу реализовать его с локальным резервом, который работает довольно хорошо, я заканчиваю тем, что добавляю его в свой .phtml как таковой:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
if (!window.jQuery) {
document.write('<script src="/path/to/your/jquery"><\/script>');
}
</script>
- Есть ли более элегантный способ сделать это в local.xml, чем запихнуть запасной вариант в
<text>
узел, как я делаюjQuery.noConflict
?
Редактировать:
Чтобы привлечь внимание к другой части вопроса - существуют ли модули сообщества, которые включают в себя jQuery? Если у них есть локальный jQuery, это нормально - если они используют Google CDN - даже лучше. Если этого нет, я бы с удовольствием его создал.
- Существуют ли какие-либо расширения, которые справляются с этим, и мне самому не нужно загружать его?
layout
javascript
philwinkle
источник
источник
<text>
способом, описанным выше ... не уверен, что это приемлемое решение. Модуль n98 использует отдельный файл включения js для вызова noConflict, хотя, я полагаю ...Ответы:
В конце концов, делать это через Layout XML предпочтительнее. Я обнаружил, что локальный резервный вариант лучше всего реализовать в виде однострочного оператора, уменьшенного с помощью компилятора Google Closure.
источник
Я долго просматривал код файлов head.phtml, файлов и блоков вокруг, но без изменения шаблонов невозможно внедрить код в <head>.Я идиот, вы уже все написали, и я несколько раз наблюдал
<?php echo $this->getChildHtml() ?>
вhead.phtml
: - /Поэтому я бы просто использовал для этого
core/template
блок и шаблон. Это легко читать, легко понять и легко управлять.источник
core/text_list
и добавлении туда всего, что вы хотите (если это более одного файла), чтобы легче было удалить его на других страницах.