J'ai fait ce qui suit pour inclure jQuery de Google CDN dans 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>
Cependant, lorsque je veux l'implémenter avec une solution de secours locale, qui fonctionne assez bien, je finis par l'ajouter à mon .phtml en tant que tel:
<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>
- Existe-t-il une manière plus élégante de faire cela dans local.xml que de pousser le repli dans le
<text>
nœud comme je le fais avecjQuery.noConflict
?
Éditer:
Pour attirer l'attention sur l'autre partie de la question - existe-t-il des modules communautaires qui incluent jQuery pour vous? S'ils ont un jQuery local, c'est bien - s'ils utilisent Google CDN - c'est encore mieux. Si ce n'est pas là, j'aimerais en créer un.
- Existe-t-il des extensions go-to qui gèrent cela sans que je doive l'amorcer moi-même?
layout
javascript
philwinkle
la source
la source
<text>
méthode décrite ci-dessus ... je ne sais pas si c'est une solution acceptable. Le module n98 utilise un fichier js include séparé pour appeler noConflict, cependant, je suppose ...Réponses:
À la fin de la journée, il est préférable de le faire via Layout XML. J'ai trouvé que l'option de secours locale est mieux implémentée dans une déclaration sur une seule ligne minimisée avec le Google Closure Compiler.
la source
J'ai longtemps cherché dans le code des fichiers head.phtml et les fichiers et blocs autour mais il n'y a aucun moyen sans changer les modèles pour injecter du code dans le <head>.Je suis un idiot, vous avez déjà tout écrit et j'ai supervisé quelques fois le
<?php echo $this->getChildHtml() ?>
danshead.phtml
: - /Je voudrais donc simplement utiliser un
core/template
bloc et un modèle pour cela. Il est facile à lire, à comprendre et à gérer.la source
core/text_list
et à y ajouter tout ce que vous voulez (s'il s'agit de plusieurs fichiers) pour le supprimer plus facilement sur d'autres pages.