He hecho lo siguiente para incluir jQuery de Google CDN en 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>
Sin embargo, cuando quiero implementarlo con un respaldo local, que funciona bastante bien, termino agregándolo a mi .phtml como tal:
<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>
- ¿Hay una forma más elegante de hacer esto en local.xml que empujar el respaldo al
<text>
nodo como lo estoy haciendojQuery.noConflict
?
Editar:
Para llamar la atención sobre la otra parte de la pregunta, ¿hay módulos comunitarios que incluyan jQuery para usted? Si tienen un jQuery local, está bien, si usan Google CDN, incluso mejor. Si esto no está ahí afuera, me encantaría crear uno.
- ¿Hay extensiones de acceso que manejen esto sin que yo tenga que arrancarlo yo mismo?
layout
javascript
philwinkle
fuente
fuente
<text>
método descrito anteriormente ... no estoy seguro si esa es una solución aceptable. El módulo N98 utiliza un js separadas incluyen archivos para llamar noConflict, sin embargo, supongo ...Respuestas:
Al final del día, es preferible hacerlo a través de Layout XML. He descubierto que la opción de reserva local se implementa mejor en una declaración de una sola línea minimizada con el Compilador de cierre de Google.
fuente
Busqué durante mucho tiempo el código de los archivos head.phtml y los archivos y bloques, pero no hay forma de cambiar las plantillas para inyectar código en el <head>.Soy un idiota, ya escribiste todo y supervisé algunas veces
<?php echo $this->getChildHtml() ?>
enhead.phtml
: - /Así que solo usaría un
core/template
bloque y una plantilla para esto. Es fácil de leer, fácil de entender y fácil de administrar.fuente
core/text_list
agregar allí todo lo que desee (si es más de un archivo) para eliminarlo fácilmente en otras páginas.