ivangoti Posted August 28, 2012 Share Posted August 28, 2012 (edited) Hola, Tengo algo como lo siguiente: <div id="header_right" class="grid_7 omega"> <div id="search_block_top">...</div> <script type="text/javascript">...</script> <ul id="header_links">...</ul> <div id="languages_block_top">...</div> <div id="header_user">...</div> </div> Pero quisiera tener algo como esto: <div id="header_right" class="grid_7 omega"> <div id="header_right_inner"> <div id="search_block_top">...</div> <script type="text/javascript">...</script> <ul id="header_links">...</ul> </div> <div id="languages_block_top">...</div> <div id="header_user">...</div> </div> El caso es que en el archivo header.tpl me aparece el siguiente código equivalente: <div id="header_right" class="grid_7 omega"> {$HOOK_TOP} </div> Así que no puedo añadir ese div para que coja solo los que yo quiero dentro de él. Lo único que se me ocurre es meter este nuevo div en header.tpl, cerrándolo (</div>) al final del archivo blockpermanentlinks-header.tpl. Aunque no creo que esto sea muy recomendable. Algo como esto: En header.tpl: <div id="header_right" class="grid_7 omega"> <div id="header_right_inner"> {$HOOK_TOP} </div> En blockpermanentlinks-header.tpl: <ul id="header_links">...</ul> </div> ¿Cómo lo solucionaríais vosotros? ¿Es la forma que planteo válida? Gracias. Edited August 28, 2012 by ivangoti (see edit history) Link to comment Share on other sites More sharing options...
tamu secreto Posted August 28, 2012 Share Posted August 28, 2012 Hay dos manera de hacerlo, si he entendido bien: Una forma (la mas vaga) es meter el codigo asi: habra el archivo header.tpl de su theme: coloque justo despues de {$HOOK_TOP} lo que quiera por ejemplo: {$HOOK_TOP} <div id="header_right_inner"> <div id="search_block_top">...</div> {literal} <script type="text/javascript">...</script> {/literal} <ul id="header_links">...</ul> </div> si va utilizar javascript debe escapar con literal de lo contrario smarty dara problemas. Obsrver que aqui no esta haciendo un gancho al top si que esta metiendo codigo manualmente. otra forma es hacer su propio modulo para establecar contenido al hook top. esto es algo mas complicado va un ejemplo rapido: 1. cree una carpeta con un nombre "midiv" 2. cree un archivo php con el siguiente nombre "midiv.php" 3. cree un archivo tpl con el siguiente nombre "micodigo.tpl" 4. cree un archivo xml con el siguiente nombre config.xml codigo "midiv.php" <?php[/indent] if (!defined('_PS_VERSION_')) exit; class MiDiv extends Module { public function __construct() { $this->name = 'midiv'; $this->tab = 'front_office_features'; $this->version = 0.1; $this->author = 'tamu'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('MI Codigo'); $this->description = $this->l('Agrega codigo al HookTop'); } public function install() { return (parent::install() AND $this->registerHook('top')); } public function hookTop($params) { $mi_codigo = "hola codigo mio!!" $smarty->assign('mi_codigo', $mi_codigo); return $this->display(__FILE__, 'micodigo.tpl'); } } ?> contendio archiov "micodigo.tpl" <div> {$mi_codigo} </div> coloque todo los archivos creados en la carpeta "midiv" y subalo a modules de su tienda. nota : el archivo config.xml no lleva nada, en teoria prestashop escribira el archivo. saludos 1 Link to comment Share on other sites More sharing options...
Recommended Posts