Jump to content

Creación de módulo con controller y plantilla cms


jose.alonso

Recommended Posts

Hola amigos!!

 

A ver si soy capaz de explicar lo que quiero hacer, ya que puede ser un poco confuso.

 

Tengo un formulario en el footer que quiero que valide unos campos y después se redireccioné a una pagina CMS y me muestre un mensaje de "Gracias".

 

Nota: La validación no me supone ningún problema, pero no quiero hacer nada de esto por Ajax ya que no lo controlo.

 

 

 

Para realizar la siguiente acción me he creado un modulo con un controller y además una pagina CMS.

 

Hasta aquí todo bien.

 

 

Pero ahora viene una de mis confusiónes ya que nunca trabaje con controllers dentro de un módulo.

 

Supuestamente dentro del /modules/mi_modulo/controllers/front/display.php hay que llamar al archivo .tpl  de la siguiente manera:

public function initContent() {
      parent::initContent();     
      $this->setTemplate('miarchivo.tpl'); 
}

Este archivo se encuentra en la siguiente ruta:  /module/mi_modulo/views/front/miarchivo.tpl

 

 

Después, dentro del archivo /modules/mi_modulo/miarchivo.php  he creado un hook personalizado de la siguiente forma:

    public function hookMiHookPersonalizado($params) {
        return $this->display(__FILE__,'miarchivo.tpl');       
    }

Dicho hook lo pinto en el CMS con el siguiente código:

{if $cms->id=='19'} 
    {hook h='MiHookPersonalizado'}
{/if}

DUDAS:

Lo primero es que al crear una página CMS me genera una url amigable, es necesario utilizar esta url en algún momento?

 

Lo segundo es que no estoy seguro es si debo de llamar al mismo archivo .tpl (miarchivo.tpl) desde diferentes sitios.

 

lo tercero es que no sé como hacer para que el formulario me llame al controller pero sin utilizar la url larga:

https://www.midominio.com/index.php?fc=module&module=mi_modulo&controller=display 

 

 

he intentado ser lo más claro posible.

 

Un saludo.

 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

me da error y no entiendo el porque.

 

Este es mi código:

    public function hookMiHookPersonalizado($params) {
        $this->context->smarty->assign('llamarControlador',  $this->context->link->getModuleLink($this->name, 'display', array(), true));
        return $this->display(__FILE__,'miarchivo.tpl');       
    }

"display"  es el nombre de mi controller:   /modules/mi_modulo/controllers/front/display.php

 

 

Tiene que llevar el nombre del archivo o el nombre de la clase del controller?

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...