Jump to content

Cómo añadir/modificar desde un módulo código a product.tpl ?


Recommended Posts

Bueno estoy con mi primer módulo y no consigo que una vez instalado al arrancar añada o modifique.


Bien que añada javascript o que modifique un evento click en un div determinado.


 


Pruebas que he hecho sin resultado


en el tpl del módulo 


{literal}


$( document ).ready(function() {

    alert('ready funciona ya');

});

 

$( window ).load(function() {

         alert('load funciona ya');

    });

</script>

{/literal}

 

en el archivo js del módulo

<script>

$(document).ready(function() {


 $('.img-responsive').click(function(){

 

          alert('click funciona');

 }

}


</script>


 


Alguien podría darme una orientación?


Link to comment
Share on other sites

Deberias revisar la documentacion oficial al respecto de crear modulos

http://doc.prestashop.com/display/PS16/Displaying+content+on+the+front+office

 

Alli encontraras informacion de como y donde añadir los contenidos css y js asociados al modulo. La libreria de jquery ( v 1.11) se carga de manera global en todo el frontoffice de manera predeterminada

Link to comment
Share on other sites

Buenas, he estado tratando de seguir la documentación pero hay cosas que no termino de entender.

En joomla por ejemplo hay plugins que en el momento de la carga "modifican" en ejecución los templates.

¿cómo logro eso?

¿cómo consigo que cuando clique sobre un producto se ejecute/modifique código?

¿Es posible hacerlo sin modificar directamente el template?

En el módulo el tpl del front no hace nada y en js tampoco veo que haga nada. ¿Será problema de la estructura?

Algo me falta y no sé lo que es.

Link to comment
Share on other sites

Ok ahora te respondo la misma pregunta leyendo lo que hiciste primero

 

No necesitas un modulo para todo depende de lo que desees hacer, muchas veces no queda otra que modicar la plantilla

 

 

Para agregar un jquery puedes hacerlo en js del producto, Pero supongamos que deseas usa modulo y cargar un jquery que funcione en la pantalla del producto, necesitas usar los hooks por ejemplo puedes usar un hook del header para que agregue tu js en el encabezado solo cuando este en la pantalla del producto

 

Prestashop ya tiene integrado el jquery asi que necesitas cagarlo otra vez 

Link to comment
Share on other sites

"Para agregar un jquery puedes hacerlo en js del producto, Pero supongamos que deseas usa modulo y cargar un jquery que funcione en la pantalla del producto, necesitas usar los hooks por ejemplo puedes usar un hook del header para que agregue tu js en el encabezado solo cuando este en la pantalla del producto."

 

  Esto es exactamente lo que preguntaba si era posible.

 

 Entonces ¿sería algo así?

 

public function hookDisplayHeader()

  $this->context->controller->addJS($this->_path.'/Miarchivo.js');
 
}  
 
La cosa es que me lo hacía en el backoffice. Quizá el problema esté en que debía hacerlo en el tpl del front. Pero no lo estoy haciendo bien porque no hace nada.
(Está puesto para que fuerce la compilación.)
 
 
Link to comment
Share on other sites

ok seria algo asi

 

primero debes declarar en tu modulo que hooks utilizas al instalarlo

 

dentro de install

   if (!parent::install() ||
          
          !$this->registerHook('header') 

)
        return false;

        
      return true;
    }



Sino instalas el hook con el modulo nunca te lo va ejecutar 

 

 

 

Luego en la funcion que ejecuta el hook

public function hookHeader($params){

$this->context->controller->addJS(($this->_path).'tuscript.js', 'all');
 }
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...