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

Tema en 'Discusión General' iniciado por PixieCabanyaler, 15/3/17.

  1. PixieCabanyaler

    PixieCabanyaler Iniciado en Prestashop

    20
    0
    0
    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. :)
     
  2.  
    Comunidad Prestashop orgullosamente patrocinada por el hosting prestashop de FactoriaDigital.com con soporte en español.
  3. devoment

    devoment Experto en Prestashop

    188
    0
    0
    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
     
  4. PixieCabanyaler

    PixieCabanyaler Iniciado en Prestashop

    20
    0
    0
    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".