¿Os acordáis del módulo que nos permitía conocer la información de los módulos, como por ejemplo la ruta de los ficheros?
En esta ocasión, vamos hablar y poner un ejemplo, de cómo hacerlo (más simplificado) a nivel de código. El módulo que estuvimos comentando el otro día es más completo.
El usuario Nemo de la Comunidad de Prestashop, nos proporciona un pequeño truco en un videotutorial en el idioma de Shakespeare, que hemos pasado de forma transcrita al idioma de Cervantes. Este “TIP” permite localizar las rutas y nombre de los ficheros de forma visual, sin tener que ir buceando.
Vamos a tocar clases originales, pero recordar que lo recomendable es siempre hacer un Override.
Editamos el fichero:
“/classes/module/Module.php”
Dentro de la función “display” -> public function display($file, $template, $cache_id = null, $compile_id = null)
Y encima de:
return $result;
Añadimos el siguiente código:
if ($result && _PS_MODE_DEV_ === true) { $tpl_path = $this->getTemplatePath($template); $result = '<!-- INICIO ' .$tpl_path. ' -->'. $result. '<!-- FINAL'. $tpl_path.' -->'; }
Con esta línea:
if ($result && _PS_MODE_DEV_ === true)
Solo mostraremos esta información, si hemos habilitado el debug en Prestashop y si hemos obtenido un resultado.Recordar que para hablitar el debug en Prestashop 1.6, es en: /config/defines.inc.php cambiando el valor “false” de define(‘_PS_MODE_DEV_’, false); por “true“.
$tpl_path = $this->getTemplatePath($template);
Obtenemos la ruta del fichero “*.tpl”.
En esta línea:
$result = '<!-- INICIO ' .$tpl_path. ' -->'. $result. '<!-- FINAL'. $tpl_path.' -->';
Guardamos resultado en la variable $result que se va usando a lo largo de la misma función y que retorna la función.
Ahora veremos que en el código fuente de la tienda, podemos localizar fácilmente los ficheros “.tpl” de los módulos. En esta ocasión estamos viéndolo desde Inspeccionar Elemento en Chrome (botón derecho ratón -> Inspeccionar elemento).
Documento construido bajo Prestashop 1.6.1.14
En Prestashop 1.7, directamente (y sin necesidad de modificar código) si habilitamos el modo depurador (modo debug) desde la pestaña Parámetros Avanzados -> Rendimiento
Desde el mismo código fuente nos salta la ruta de los “tpls” de los módulos…
Fijaros que ademas de los ficheros (TPL), podemos ver fácilmente el nombre interno de los módulos, útil para identificarlos sino sabemos cómo se llaman y queremos configurarlos en la pestaña módulos -> módulos y servicios.
Un ejemplo es que el nombre interno del módulo de suscripción por newsletter es “ps_emailsubscription”. Nada más sabiendo este nombre interno podemos acceder a su configuración.
Muy chulo !! Lo he probado con la versión 1.7.6.1 y funciona de maravilla !!