shadowwolfone Posted June 6, 2014 Share Posted June 6, 2014 (edited) Hola a todos, como esta. Aquí molestandoles de nuevo, jeje, pero debo solucionar estos inconvenientes. El problema es que siguiendo varios tutoriales cree una pagina nueva en prestashop con 3 archivos * prueba2.php --- ubicado en la raiz * Prueba2Controller.php --- ubicado en la carpeta controller * chorizos.tpl --- ubicado en la carpeta del tema la pagina funciona si quiero mostrar cualquier variable me la muestra, pero debo mostrar una consulta a la base de datos. Siguiendo un tutorial tengo el siguiente codigo: Prueba2Controller.php public function consulta($params) { parent::consulta(); global $smarty; $sql='SELECT * FROM sv_address_categories'; $query=mysql_query($sql); $x=0; while($row=mysql_fetch_array($query)) { $datos[$x]=array($col['sv_address_id'], $col['sv_monto']); $x++; } mysql_close(); self::$smarty->assign(array( 'datos' => $datos )); } chorizos.tpl <div id="prueba" class="block"> <h4>MONTOS</h4> <div class="block_content"> <table border="0" cellspacing="5" cellpadding="5"> {foreach key=key name=outer item=dato from=$datos} <tr class=""> {foreach key=key item=item from=$dato} <td align="left">{$item['sv_address_id']}</td> <td align="left">{$item['sv_monto']}</td> {/foreach} </tr> {/foreach} </table> </div> </div> Este código lo saque de un tutorial, pero al ver en la web me sale el siguiente error: Notice: Undefined index: datos in /var/www/html/catalogotaski/cache/smarty/compile/e6/cb/f7/e6cbf75943a02de230a0b60130534a62a3d68628.file.chorizos.tpl.php on line 51Notice: 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 51 Alguien que me pueda ayudar por favor. Estoy usando prestashop 1.5 Gracias. Edited July 25, 2014 by shadowwolfone (see edit history) Link to comment Share on other sites More sharing options...
Seletiene Posted June 7, 2014 Share Posted June 7, 2014 La variable que estas usando en el while no veo que la utilizes en nada dentro de este. Es decir la info que estas sacando de la BD no la usas dentro del while si te estas basando en un ejemplo tal vez no hayas cambiado correctamente esa parte. Si puedes adjuntar el codigo completo te podria ayudar mejor. Saludos Link to comment Share on other sites More sharing options...
shadowwolfone Posted June 9, 2014 Author Share Posted June 9, 2014 (edited) Hola como estas gracias por tu respuesta. Te publico el código completo que tengo pero en si es solo eso. Prueba2Controller.php <?php class Prueba2ControllerCore extends FrontController { public function process() { parent::process(); $sql='SELECT * FROM sv_address_categories'; $query=mysql_query($sql); $x=0; while($row=mysql_fetch_array($query)) { $yo[$x]=array($col['sv_address_id'], $col['sv_monto']); $x++; } //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'); } } Chorizos.tpl {capture name=path}{l s='Prueba'}{/capture} {include file="$tpl_dir./breadcrumb.tpl"} <h1>{l s='Prueba'}</h1> <!--mostramos nuestra variable--> <div id="prueba" class="block"> <h4>MONTOS</h4> <div class="block_content"> <table border="0" cellspacing="5" cellpadding="5"> {foreach key=key name=outer item=dato from=$datos} <tr class=""> {foreach key=key item=item from=$dato} <td align="left">{$item['sv_address_id']}</td> <td align="left">{$item['sv_monto']}</td> {/foreach} </tr> {/foreach} </table> </div> </div> Eso es todo lo que tengo y como comentaba lo saque de un post así que lo único que cambie fueron las tablas de la base de datos. Ademas tengo en la raiz un archivo php con el siguiente codigo: Prueba2.php <?php /** * This file will be removed in 1.6 * You have to use index.php?controller=page_name instead of this page * * @deprecated 1.5.0 */ require(dirname(__FILE__).'/config/config.inc.php'); Tools::displayFileAsDeprecated(); Tools::redirect('index.php?controller=prueba2'.((count($_GET) || count($_POST)) ? '&'.http_build_query(array_merge($_GET, $_POST), '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently'); La verdad no soy programador así que no entiendo muy este tema. Si alguien me puede ayudar, ya que si logro que funcione esto debo cambiar a la consulta real que es sumamente complicada. Gracias. Edited June 9, 2014 by shadowwolfone (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts