Jump to content

Class 'ModuleFrontController' not found al hacer una pagina nueva en un modulo PS 1.5.4


Recommended Posts

Buenas , estoy siguiendo las instrucciones de como crear un modulo en prestashop 1.5.4 de la documentacion de Prestashop, en la seccion de crear una nueva pagina.

 

http://doc.prestasho...splayingtheform

 

-Tengo el modulo en /modules/

-y los archivos de la nueva pagina en /modules/controller/front/

 

el caso es que se me instala el modulo todo bien pero al hacer enlace con la nueva pagina me sale este error Class 'ModuleFrontController' not found, no se si es que estan las instrucciones un poco confusas o es que a partir de un modulo no se puede hacer una pagina nueva.

 

SALUDOS

Link to comment
Share on other sites

  • 3 weeks later...

El problema está en la documentación.

 

En la documentacion dice que en el archivo mymodule.php añadas el siguiente código:

 

public function hookDisplayLeftColumn($params)
{
 $this->context->smarty->assign(
  array(
	  'my_module_name' => Configuration::get('MYMODULE_NAME'),
	  'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')
  )
 );
 return $this->display(__FILE__, 'mymodule.tpl');
}

public function hookDisplayRightColumn($params)
{
 return $this->hookDisplayLeftColumn($params);
}

public function hookDisplayHeader()
{
 $this->context->controller->addCSS($this->_path.'css/mymodule.css', 'all');
}

 

 

El problema está en:

'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')

 

la verdadera sentencia debe ser:

'my_module_link' => Context::getContext()->link->getModuleLink('mymodule', 'display')

 

 

en resumen:

coloquen esta linea de código:

public function hookDisplayLeftColumn($params)
{
 $this->context->smarty->assign(
  array(
	  'my_module_name' => Configuration::get('MYMODULE_NAME'),
	  'my_module_link' => Context::getContext()->link->getModuleLink('mymodule', 'display')
  )
 );
 return $this->display(__FILE__, 'mymodule.tpl');
}

public function hookDisplayRightColumn($params)
{
 return $this->hookDisplayLeftColumn($params);
}

public function hookDisplayHeader()
{
 $this->context->controller->addCSS($this->_path.'css/mymodule.css', 'all');
}

 

 

ADJUNTO MODULO FUNCIONAL

mymodule.zip

Edited by Victor Castro Contreras (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Hola,

a mi está solución no me a modificad nada..

sin url amigables, en mi Cuenta el modulo de productos favoritos.

localhost/index.php?fc=module&module=favoriteproducts&controller=account

 

con url amigables sin hacer ese cambio mi url es:

http://localhost/module/favoriteproducts/account

con el cambio que has comentado es exactamente la misma

http://localhost/module/favoriteproducts/account

 

Pero sigue sin estar bien del todo,

me voy al BackOffice>Preferencias> SEO y URL y le doy a a añadir nueva:

elijo del desplegable : favoriteproducts-acount

y en reescritura pongo: productos-favoritos

 

La url que me genera está mal, me pone el trozo de la url amigable bien, pero a mayores sigue añadiendome el resto de la url como si no fuera amigable:

http://localhost/productos-favoritos?module=favoriteproducts&controller=account'>http://localhost/productos-favoritos?module=favoriteproducts&controller=account

 

hasta http://localhost/productos-favoritos va bien, es mas si borro a mano en la barra de direcciones el resto carga la página que tiene que cargar.. pero alguien sabe a que puede ser debido???'

Link to comment
Share on other sites

en mi tpl tengo esto:

 

 

<li class="favoriteproducts">

<a href="{$link->getModuleLink('favoriteproducts', 'account')|escape:'htmlall':'UTF-8'}" title="{l s='My favorite products' mod='favoriteproducts'}" class="icon-heart">

{l s='My favorite products' mod='favoriteproducts'}

</a>

</li>

 

 

Así sin más la url que me deja es: http://localhost/mmw...roducts/account

yo no la quiero así entonces

 

me voy al BackOffice>Preferencias> SEO y URL y le doy a a añadir nueva:

elijo del desplegable : favoriteproducts-acount

y en reescritura pongo: productos-favoritos

 

La url que me genera está mal, me pone el trozo de la url amigable bien, pero a mayores sigue añadiendome el resto de la url como si no fuera amigable:

http://localhost/pro...troller=account

 

 

y en el favoriteproducts-account.php esta:

Tools::redirect(Context::getContext()->link->getModuleLink('favoriteproducts', 'account'));

Edited by Chirby (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...