Donde se crean/asignan las variables SMARTY. p.e. $telnumber

PixieCabanyaler

Iniciado en Prestashop
Buenas noches.

Querría averiguar como conocer donde se crean y posteriomente se asignan los valores a variables SMARTY.

Por ejemplo, en la plantilla default-boostrap, en la ruta: /public_html/themes/default-boostrap/modules/blockcontact/nav.tpl

Encontramos en la plantilla del navegador en su linea 31 la siguiente variable $telnumber
<i class="icon-phone"></i>{l s='Call us now:' mod='blockcontact'} <strong>{$telnumber}</strong>

Esta variable, ya tiene el valor asignado cuando llega a esta plantilla, y en algún momento ha sido declarada y su valor asiganado desde la lectura de alguna tabla que contenía el valor del teléfono de la tienda.
Me interesaría conocer como averiguar cuando y donde se produce la creación, la lectura de la tabla necesaria y la posterior asignación del valor para este ejemplo; para después siguiendo el mismo patrón seguro que puedo averiguar lo mismo del resto de variables Smarty que me puedo encontrar.

Muchas gracias. :)
 

devoment

Experto en Prestashop
En la tabla ps_configuration se guarda el valor de esa variable.

Por otro lado, si vamos por ejemplo al fichero:

Insertar CODE, HTML o PHP:
modules/blockcontact/blockcontact.php
Vemos el siguiente codigo:
Insertar CODE, HTML o PHP:
Configuration::get('BLOCKCONTACT_TELNUMBER')
Ese valor es el que se guarda en la tabla ps_configuration cuando lo configuras desde la configuracion del modulo en la pestaña modulos -> modulos

Desde phpmyadmin, busca el valor y lo vas a encontrar.

Entiendo que sabes que desde el modulo en cuestion, c
 

PixieCabanyaler

Iniciado en Prestashop
Si gracias, entraba a colgar la solución y he encontrado tu mensaje, gracias devoment. (no sé porque no me llegan los correos avisando de las respuesta).

Explayo la solución.

  • En la bbdd existe una tabla denominada ps+"tu_prefijo"+_configuration.
  • En dicha tabla existen un conjunto de atributos con valores asignados, entre ellos el número de telefono.
  • El atributo que lo contiene es denominado BLOCKCONTACT_TELNUMBER.
  • Para poder acceder a dicho atributo sin necesidad de hacerlo directamente sobre la tabla, PS ofrece una clase Configuration de la cual se pueden instanciar objetos, que a su vez poseen métodos para leer, y escribir sobre los valores de las tuplas.
  • Siguiendo con el ejemplo del teléfono, como el módulo donde estoy trabajando es el /public_html/themes/default-boostrap/modules/blockcontact/, accedo al fichero blockcontact.php, donde existe una función denominada getContent(), donde se lee del parámetro de la URL el valor del teléfono con el método de otro objeto denominado Tools::getvalue y es asignado a la tabla con la instrucción Configuration::updateValue('BLOCKCONTACT_TELNUMBER', Tools::getValue('blockcontact_telnumber')); (línea 68)
  • Siguiendo en el mismo fichero blockcontact.php, existe más abajo otra función denominada hookDisplayRightColumn($params), donde se asigna el valor a la variable, esta vez dentro de un array, telnumber, con la instrucción 'telnumber' => Configuration::get('BLOCKCONTACT_TELNUMBER'), (línea 93)

De este modo, es como se llega a tener valor asignado a la var $telnumber a partir del valor almacenado en una tabla de la bbdd.

Si me equivoco en algo, agradecería correcciones, pero por lo que he visto así se "cuece el tema".
 
Arriba