PDA

Ver la Versión Completa : Algunas dudas con el desarrollo de un módulo



reynierpm
11-13-2010, 04:14 PM
Hola:
Estoy desarrollando un módulo para Magento (no se si existe alguno ya "free" :pensando: pero por más que busco en Magento Connect no logro encontrar nada) que me muestre videos vía YouTube en Magento. Para cargar los videos y mantener la página con código HTML válido y totalmente estándar estoy haciendo uso de la librería SWFObject la cual usa ficheros JS que necesitan ser cargados si y solo si el módulo es instanciado. Ya he generado el módulo usando el módulo, valga la redundancia :bleh:, ModuleCreator pero no logro ver donde cuelgo estos ficheros Javascript y donde hago las llamadas a los mismos para cuando se active el módulo las cosas carguen correctamente. Alguna ayudita en este sentido?

Saludos y gracias por adelantado

OSdave
11-13-2010, 08:57 PM
en el fichero que actualiza el layout de tu modulo (el que esta definido en <layout><updates><tumodulo><file>fichero.xml</file></tumodulo></updates></layout> del fichero config.xml de tu modulo), en la etiqueta que corresponde a donde tienen que estar cargada esta libreria (por ejemplo, si lo quieres en la ficha de producto seria la etiqueta <catalog_product_view>) tienes que actualizar el block head para añadir el archivo .js.
De ejemplo, te pongo un trozito de un modulo que estoy haciendo ahora mismo:
<?xml version="1.0"?>
<layout version="0.1.0">
<catalog_product_view>
<reference name="head">
<action method="addCss">
<stylesheet>css/points.css</stylesheet>
</action>
<action method="addItem">
<type>skin_js</type>
<name>js/points.js</name>
</action>
</reference>
.....
</catalog_product_view>ves que alli estoy incluyendo 2 ficheros: 1 css y 1 js, estos 2 ficheros estan en el skin del template: esto es valido por tus propios ficheros js, para una librería, como es tu caso, es mejor ponerla dentro de js/ del root de tu tienda.

reynierpm
11-13-2010, 10:19 PM
Hmm ese es el problema que no lo quiero en el catalog_product_view sino que necesito que sea un bloque independiente que pueda publicar, por ejemplo, en el home_page (para ello lo estoy creando) pero no se primero: como hacer que sea un bloque "standalone" (que se pueda poner en cualquier lugar) y segundo: cuales serían las equiquetas correctas para encerrar los CSS y los JS? Dejo el código del config.xml para que se entienda mejor:


<config>
<modules>
<Patoge_YouTubeVid>
<version>0.1.0</version>
</Patoge_YouTubeVid>
</modules>
<frontend>
<routers>
<youtubevid>
<use>standard</use>
<args>
<module>Patoge_YouTubeVid</module>
<frontName>youtubevid</frontName>
</args>
</youtubevid>
</routers>
<layout>
<updates>
<youtubevid>
<file>youtubevid.xml</file>
</youtubevid>
</updates>
</layout>
</frontend>
<admin>
<routers>
<youtubevid>
<use>admin</use>
<args>
<module>Patoge_YouTubeVid</module>
<frontName>youtubevid</frontName>
</args>
</youtubevid>
</routers>
</admin>
<adminhtml>
<menu>
<youtubevid module="youtubevid">
<title>YouTubeVid</title>
<sort_order>71</sort_order>
<children>
<items module="youtubevid">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>youtubevid/adminhtml_youtubevid</action>
</items>
</children>
</youtubevid>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Patoge_YouTubeVid>
<title>YouTubeVid Module</title>
<sort_order>10</sort_order>
</Patoge_YouTubeVid>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<youtubevid>
<file>youtubevid.xml</file>
</youtubevid>
</updates>
</layout>
</adminhtml>
<global>
<models>
<youtubevid>
<class>Patoge_YouTubeVid_Model</class>
<resourceModel>youtubevid_mysql4</resourceModel>
</youtubevid>
<youtubevid_mysql4>
<class>Patoge_YouTubeVid_Model_Mysql4</class>
<entities>
<youtubevid>
<table>youtubevid</table>
</youtubevid>
</entities>
</youtubevid_mysql4>
</models>
<resources>
<youtubevid_setup>
<setup>
<module>Patoge_YouTubeVid</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</youtubevid_setup>
<youtubevid_write>
<connection>
<use>core_write</use>
</connection>
</youtubevid_write>
<youtubevid_read>
<connection>
<use>core_read</use>
</connection>
</youtubevid_read>
</resources>
<blocks>
<youtubevid>
<class>Patoge_YouTubeVid_Block</class>
</youtubevid>
</blocks>
<helpers>
<youtubevid>
<class>Patoge_YouTubeVid_Helper</class>
</youtubevid>
</helpers>
</global>
</config>

OSdave
11-15-2010, 11:29 AM
como hacer que sea un bloque "standalone" (que se pueda poner en cualquier lugar)lo puedes crear en el admin o en tu modulo y luego llamarle donde quieras
cuales serían las equiquetas correctas para encerrar los CSS y los JS?es justo lo que te puse de ejemplo
Dejo el código del config.xml para que se entienda mejor:este no ayuda mucho, el youtubevid.xml seria mas interesante

reynierpm
11-15-2010, 02:05 PM
Aqui te dejo el contenido del youtubevid.xml:


<?xml version="1.0"?>
<layout version="0.1.0">
<default>
</default>
<youtubevid_index_index>
<reference name="content">
<block type="youtubevid/youtubevid" name="youtubevid" template="youtubevid/youtubevid.phtml" />
</reference>
</youtubevid_index_index>
</layout>

OSdave
11-15-2010, 06:45 PM
pues eso, que ya te he puesto el codigo para insertar css y js, solo tienes que cambiar el tag al que te interese, si lo quieres en cualquier parte usas el default