Jump to content

(SOLUCIONADO)Crear nueva pagina


Recommended Posts

Hola a todos, como están.

 

Haber si alguien por favor me puede ayudar a entender este problema.

 

Estoy tratando de entender el sistema de smarty y siguiendo varios tutoriales he logrado crear una pagina que me muestre una variable simple "Hola Mundo", al probarle funciona.

 

El problema radica en que si le cambio el nombre a las variables esta deja de funcionar y me muestra el siguiente error:

 

Notice: Undefined index: yo in /var/www/html/catalogotaski/cache/smarty/compile/e6/cb/f7/e6cbf75943a02de230a0b60130534a62a3d68628.file.chorizos.tpl.php on line 39Notice: Trying to get property of non-object in /var/www/html/catalogotaski/cache/smarty/compile/e6/cb/f7/e6cbf75943a02de230a0b60130534a62a3d68628.file.chorizos.tpl.php on line 39

 

este es el codigo del php:

 

<?php
class Prueba2ControllerCore extends FrontController
{
  
    public function process()
    {
        parent::process();
       
        //definimos la variable que queremos mostrar
        $yo = "Que ondaaaaa";
       
        //declaramos las variables para smarty
        self::$smarty->assign(array(
            'yo' => $yo
        ));
    }
    
        public function displayContent()
    {
        parent::displayContent();
        //definimos el tpl que muestra la página
        self::$smarty->display(_PS_THEME_DIR_.'chorizos.tpl');
    }
}
 
 
Y este el tpl:
 
{capture name=path}{l s='Prueba'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}
<h1>{l s='Prueba'}</h1>
 
<!--mostramos nuestra variable-->
<p>{$yo}</p>

 

 

Como pueden ver declaro la variable yo y lo envio al tpl igual.

 

De esta forma me sale el error pero si enves de yo le pongo mivariable funciona correctamente.

 

Codigo original:

 

<?php
class Prueba2ControllerCore extends FrontController
{
 
    public function process()
    {
        parent::process();
       
        //definimos la variable que queremos mostrar
        $mivariable = "Que ondaaaaa";
       
        //declaramos las variables para smarty
        self::$smarty->assign(array(
            'mivariable' => $mivariable
        ));
    }
    
        public function displayContent()
    {
        parent::displayContent();
        //definimos el tpl que muestra la página
        self::$smarty->display(_PS_THEME_DIR_.'chorizos.tpl');
    }
}
 
tpl:
 
{capture name=path}{l s='Prueba'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}
<h1>{l s='Prueba'}</h1>
 
<!--mostramos nuestra variable-->
<p>{$mivariable}</p>
 
 
Alguien me puede ayudar ya que debo realizar una consulta a la base de datos y mostrarla en la pagina y no se porque me sale ese error solo cambiando el nombre de las variable.
 
Ayuda por favor.
 
Gracias.

 

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

Ya le encontré el problema, jeje era un problema de escritura del ftp no me estaba guardando los cambios, jeje.

 

Pero ya que estoy aquí quisiera hacerles una pregunta tengo una consulta sql, esta funciona pero como puedo hacer para mostrar los datos en el tpl?.

 

public function saldos()
    {
        parent::saldos();
        
        $cart2=4;
        $id_category2=11;
 
 
        //EJECUTAR SENTENCIA SQL QUE PERMITE VERIFICAR LOS MONTOS CONSUMIDOS
        $sql ="SELECT C.name As categoria,
        D.sv_monto As Monto_Maximo,
        SUM(A.quantity) As Cantidad_Productos,
        SUM(A.quantity * B.price) as valor_compra,
        (D.sv_monto - SUM(A.quantity * B.price)) AS Saldo,
        A.id_cart,
        A.id_product,
        A.id_address_delivery,
        A.date_add,
        B.id_category_default,
        B.price
        FROM ps_cart_product as A, ps_product as B, ps_category_lang as C, sv_address_categories as D
        WHERE (A.id_product = B.id_product)
        and (B.id_category_default = C.id_category
        and C.id_lang = 2)
        and (D.sv_categories_id = C.id_category
        and B.id_category_default = D.sv_categories_id)
        and A.id_cart = '.$cart2'
        and D.sv_address_id = '$id_category2'
        GROUP BY C.name";
 
        $query = mysql_fetch_assoc($sql);
 
        // Imprimir los resultados en HTML
        $x=0;
        while ($row = mysql_fetch_array($query)) {
        $saldos[$x]=array($col['categoria'], $col['Monto_Maximo'], $col['Cantidad_Productos'], $col['valor_compra'], $col['Saldo']);
        $x++;
        }
 
        self::$smarty->assign(array('saldos' => $saldos));
 
        // Cerrar la conexión
        mysql_close();
    }
 
Con este si me sale el error que indique anteriormente, no se si esta mal la consulta o el while, alguien me podría ayudar.
 
Gracias.
Link to comment
Share on other sites

Primero que nada si ya resolviste el problema de este tema deberias editarlo y agregar la palabra (solucionado) al inicio y abrir un nuevo hilo para el nuevo problema, esas son las reglas del foro.

 

En cuanto a tu cuestion, lo primero es verificar que la sentencia SQL sea correcta y que arroje lo que esperas, para ello lo puedes probar en phpMyAdmin y lo segundo es que para conectarte a base de datos en prestashop no deberias hacerlo asi porque prestashop ya incluye sus funciones personalizadas, puedes ver los ejemplos en el enlace: http://doc.prestashop.com/display/PS15/DB+class+best+practices

Link to comment
Share on other sites

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