josepmre Posted October 23, 2014 Share Posted October 23, 2014 Hola de nuevo, me gustaría añadir un texto de dos o tres palabras en una categoría y que fuera visible solo en esa categoría y sus sub-categorias y los productos que cuelgan de ella. Intento explicarme mejor, digamos que tengo 10 categorías, de esas 10 categorias cuelgan otras 10 subcategorías y de alguna de esas subcategorías otra sub-subcategoría. Me gustaría que cuando un cliente entra en una categoría específica añadirle un texto corto pero que se repita en todas las subcategorías y en el producto que está en esa subcategoría. ¿es esto posible? muchas gracias. Josep Ma Link to comment Share on other sites More sharing options...
shacker Posted October 29, 2014 Share Posted October 29, 2014 puedes editar el category.tpl de tu template, o el product.tpl de tu template, y añadir un IF , por ejemplo, para el category.tpl {if $category->id_category eq "1"} esto es el texto {/if} el "1" seria el id de la categoria recuerda forzar compilacion Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 Gracias por la respuesta, he conseguido con tus indicaciones que aparezca en la categoría indicada, pero no se repite en las subcategorías. ¿Es posible que se repita este texto dentro de las subcategorias? ¿puedes indicarme como? muchas gracias Link to comment Share on other sites More sharing options...
ventura Posted October 30, 2014 Share Posted October 30, 2014 prueba asi {if $category->id==3 || $category->id_parent ==3} <----- Texto a mostrar -----> {/if} Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 Ventura, gracias por tus respuestas. Esta solución casi me vale, entiendo lo que hace la función. El "problema" es que tengo 2 subcategorías, Categoría 28->28.1->28.2 ¿se podría hacer que se vea en las subcategorías 28.2? También me gustaría implementar esto en los artículos de estas categorías. Entiendo que se pongo este if en product.tpl lo pondrá en todos los productos. muchas gracias de nuevo por la ayuda. Link to comment Share on other sites More sharing options...
ventura Posted October 30, 2014 Share Posted October 30, 2014 no, esta variable no te funcionará en el product.tpl, con la variables a las que puedes acceder desde el product.tpl podrias hacer esto {if $product->id_category_default ==2} <---Texto a mostrar ----> {/if} Asi mostraria mensaje a todos los productos que tiene categoria por defecto id2 Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 Esta vez no lo he conseguido, no aparece el texto cuando habro un producto. ¿Tengo que ponerlo en algún lugar concreto del product.tpl? Link to comment Share on other sites More sharing options...
rafaelamargo Posted October 30, 2014 Share Posted October 30, 2014 Esta vez no lo he conseguido, no aparece el texto cuando habro un producto. ¿Tengo que ponerlo en algún lugar concreto del product.tpl? Tienes que ponerlo donde lo quieras mostrar xD Ejemplo, ponlo debajo de la: <div id="short_description_block"> que es el bloque que engloba a la descripcion corta. Escribe al lado Hola Mundo o algo, para ver si es que no se imrpime nada o es que es la variable la que no funciona xD Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 Pués parece que no funciona, he probado ahí y en otros sitios y no aparece el texto... Link to comment Share on other sites More sharing options...
ventura Posted October 30, 2014 Share Posted October 30, 2014 (edited) como te he comentado para que aparezca tiene en los productos tiene que tener asociada ese id de categoria por defecto, si solo está asociado a la categoria no aparecerá, para hacer lo que quieres tienes que incluir en el ProductController la funcion public static function getProductCategories Esta funcion te permite hacer un foreach de las categorias asociadas del producto y con el poder hacer los condicionales Edited October 30, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
rafaelamargo Posted October 30, 2014 Share Posted October 30, 2014 Mostrar todas las categorías asociadas al producto en la ficha del producto: http://mypresta.eu/en/art/developer/display-all-product-categories-on-product-page.html (Teniendo esa idea de enlace dentro del foreach {foreach from=Product::getProductCategoriesFull(Tools::getValue('id_product')) item=cat} puedes hacer el {if $cat.id_category=='X'}XXX{/if} Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 como te he comentado para que aparezca tiene en los productos tiene que tener asociada ese id de categoria por defecto, si solo está asociado a la categoria no aparecerá, para hacer lo que quieres tienes que incluir en el ProductController la funcion public static function getProductCategories Esta funcion te permite hacer un foreach de las categorias asociadas del producto y con el poder hacer los condicionales A que te refieres a "tener asociada esa id de categoria por defecto" ¿Lo podrías explicar para torpes? Muchas gracias. Mostrar todas las categorías asociadas al producto en la ficha del producto: http://mypresta.eu/en/art/developer/display-all-product-categories-on-product-page.html (Teniendo esa idea de enlace dentro del foreach {foreach from=Product::getProductCategoriesFull(Tools::getValue('id_product')) item=cat} puedes hacer el {if $cat.id_category=='X'}XXX{/if} Esto que comenta en el enlace está muy bién, pero no es lo que estaba buscando ahora, a mi me interesa poner un texto que se repita en cada producto de una categoría y subcategorías determinadas. ¿puedes explicar donde tendría que meter esto? gracias a los dos por la paciencia. Josep Ma Link to comment Share on other sites More sharing options...
ventura Posted October 30, 2014 Share Posted October 30, 2014 (edited) Lo suyo es llamar a la funcion desde el controlador no directamente desde la clase pero de la manera que dice vekia y de la que hace referencia el usuario rafaelamargo te resultar mas facil. Coloca el foreach donde quieras que aparezca el texto {foreach from=Product::getProductCategoriesFull(Tools::getValue('id_product')) item=cat} {if $cat.id_category=='X'}<---texto aqui --->{/if} {/foreach} De esta manera te incluira el mensaje en todos los productos que tengan asociada la categoria, el parent o el depth de categorias no estaria incluida asi que tendrias que incluir los id de esas subcategorias asociadas a cada categoria Edited October 30, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
josepmre Posted October 30, 2014 Author Share Posted October 30, 2014 Me ha dado este error: Fatal error: Call to undefined method Product::getProductCategoriesFull() in/tools/smarty/compile/b84eec4cd61fd46b645ac41eb0956ccedacca0d4.file.product.tpl.phpon line 428 Link to comment Share on other sites More sharing options...
ventura Posted October 30, 2014 Share Posted October 30, 2014 No habia visto que estás con 1.4, habra que mirarlo porque este desarrollo es para 1.5 en adelante Link to comment Share on other sites More sharing options...
josepmre Posted October 31, 2014 Author Share Posted October 31, 2014 oops. ¿Entonces crees que se podrá hacer? gracias por el interés. Link to comment Share on other sites More sharing options...
ventura Posted October 31, 2014 Share Posted October 31, 2014 Lo siento, no trabajo con versiones anteriores a 1.5 ya Link to comment Share on other sites More sharing options...
josepmre Posted October 31, 2014 Author Share Posted October 31, 2014 Gracias de todos modos ventura, a ver si hay alguien que de con la solución. Link to comment Share on other sites More sharing options...
josepmre Posted November 5, 2014 Author Share Posted November 5, 2014 Subo el post por si alguien tiene una idea.. Josep Ma Link to comment Share on other sites More sharing options...
Recommended Posts