Jump to content

[Solucionado] (parse error / la clase que falta) de los Modulos de Prestashop


juanchoraf

Recommended Posts

Empecemos por el Error

 

2 errores 

  1. blockmimodulo (parse error en /modules/blockmimodulo/mimodulo.php)
  2. blockmimodulo (la clase que falta en /modules/blockmimodulo/mimodulo.php)

 

Este error se presenta en el back-end o back-office (El back-office es el nombre utilizado para describir al panel de administración)  de PrestaShop. Ya sea que hayas modificado el codigo de un modulo o estes creando tu propio modulo te puedes encontrar con este error y digo error porque es un solo error insignificante pero vaya error de parte de los desarrolladores de PrestaShop.

 

De la Critica al Análisis

 

Bueno a simple vista lo que cualquier desarrollador diria seria... 

Buenas, ¿has probado desinstalar el módulo e instalarlo de nuevo?

Jeje si, si, no lo neguemos hacemos de todo antes de meterle mano al codigo, hasta que el usuario responde...

No lo puedo desinstalar porque no me aparece en la lista de modulos, a no ser que lo desinstale (elimine los archivos) desde el FTP

Entonces vienen los quebraderos de cabeza revisando una y otra vez el codigo en busca de corchetes, parentesis, comas, punto y comas, etc. para encontrar un posible error dentro del codigo que llevas dias enteros haciendo, sin embargo si eres un buen desarrollador llegaras muy pronto a la conclusion de que tu codigo esta bien, entonces empiezas a revisar las diferentes clases que nos brinda PrestaShop para desarrollar lo que queremos, peroooo nuevamente llegas a la conclusion de que todo esta donde deberia estar (nombres de clases, propiedades, enlaces, archivos y carpetas) y al borde de la locura te preguntas ¿porque carajo sale ese error ahi???

 

Del Análisis a la Solución

 

Justo cuando estas entre la locura y votar tu pc por la ventana, llega a tu mente la idea mas ilogica y a la vez la mas brillante que se te pueda ocurrir en ese momento...

 

<?Php    por    <?php

 

Si, si, es lo mas inverosímil que se te pudo ocurrir y aunque no lo creas es tu solucion a todos tus quebraderos de cabeza con estos dos molestos errores que no sabemos de donde surgieron y si, es increible pero PrestaShop no trabaja con el <?Php y por ese motivo tienes esos errores alli, asi que querido amigo mio corre justo hacia tu codigo y cambia esto <?Php por esto <?php y te sentiras "Like a Boss".

 

Nota: Por si no lo sabias (porque no esta en la documentacion de PrestaShop) si deseas agregar archivos CSS o JS al header debes tener en cuenta que para que PrestaShop los ponga en el Header debes cumplir dos cosas:

 

1. Debes agregar esta linea a la funcion install de tu modulo $this->registerHook('header')

2. El archivo CSS o JS debe existir en la carpeta o directorio de tu modulo para que PrestaShop lo agregue, si ya lo se, duraste mil horas haciendo pruebas para que tu codigo:

 

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

con tu archivo imaginario miarchivodeprueba.css se viera en el header de tu tienda, pero ya ves asi funciona PrestaShop...

  • Like 1
Link to comment
Share on other sites

Nota: Por si no lo sabias (porque no esta en la documentacion de PrestaShop) si deseas agregar archivos CSS o JS al header debes tener en cuenta que para que PrestaShop los ponga en el Header debes cumplir dos cosas:

 

1. Debes agregar esta linea a la funcion install de tu modulo $this->registerHook('header')

2. El archivo CSS o JS debe existir en la carpeta o directorio de tu modulo para que PrestaShop lo agregue, si ya lo se, duraste mil horas haciendo pruebas para que tu codigo:

 

public function hookDisplayHeader(){

      $this->context->controller->addCSS($this->_path.'css/miarchivodeprueba.css', 'all');

}

 

con tu archivo imaginario miarchivodeprueba.css se viera en el header de tu tienda, pero ya ves asi funciona PrestaShop...

 

Esto ultimo si viene en la documentación oficial de Prestashop. (http://doc.prestashop.com/display/PS16/Displaying+content+on+the+front-office) (Al menos yo si lo he visto)

 

Habla de entre otras cosas del:

 

  $this->registerHook('header') 
hookDisplayHeader(): will add a link to the module's CSS file, /css/mymodule.css

y del:

 

public function hookDisplayHeader()
{
  $this->context->controller->addCSS($this->_path.'css/mymodule.css', 'all');
}  
We are using the Context ($this->context) to change a Smarty variable: Smarty's assign() method makes it possible for us to set the template's name variable with the value of the MYMODULE_NAME setting stored in the configuration database table.
The header hook is not part of the visual header, but enables us to put code in the <head> tag of the generated HTML file. This is very useful for JavaScript or CSS files. To add a link to our CSS file in the page's <head> tag, we use the addCSS() method, which generates the correct <link> tag to the CSS file indicated in parameters.
Edited by galindogadea (see edit history)
Link to comment
Share on other sites

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