Avid Posted June 10, 2014 Share Posted June 10, 2014 (edited) Bonjour à tous (et toutes) ! Je recherche à créer une page dédiée à afficher en liste tous les tags en vigueur dans ma boutique.N'étant pas programmeur, je patauge un peu Je pense que cette fonctionnalité peut intéresser d'autres, notamment pour du SEO ... (à voir) Mon install est en 1.5.3.1. Par tatonnement, j'en suis arrivé au principe qu'il fallait créer un controller: (attention la suite peut piquer les yeux ) override/controllers/front/TagsController.php <?php class TagsController extends FrontController { /** * Initialize controller * @see FrontController::init() */ public function init() { parent::init(); } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'tags.tpl'); } } puis dans themes: themes/montheme/tags.tpl <div id="center_column" class="center_column grid_24"> <div class="block"> <h4>{l s='Tags'}</h4> <p class="block_content"> <ul id="tags_list"> {foreach from=$tags item=tag name=myLoop} <li value="{$base_dir}search.php?tag={$tag.name|urlencode}">{$tag.name}</li> {/foreach} </ul> </p> </div> évidemment je reste totalement sur ma faim, tout ceci n'aboutissant à rien du tout... si quelqu'un plus intelligent peut me donner un coup de pouce, ce serait un grand pas en avant pour moi et je l'espère bien d'autres encore ! Edited June 10, 2014 by Avid (see edit history) Link to comment Share on other sites More sharing options...
Avid Posted June 11, 2014 Author Share Posted June 11, 2014 Je reviens en paix ! J'ai tenté une autre méthode.La création d'un module sur la base d'un existant, celui de blocktags. Cela passe par une modification du module dupliqué, pour l'essentiel voir ci dessous. cf. function getallTags /** * Returns module content for my own personal hook * * @param array $params Parameters * @return string Content * */ function hookhook_tags($params) { $tags = Tag::getallTags((int)($params['cookie']->id_lang)); la création d'un hook dédiée qui est ensuite appelé par un fichier theme .tpl. un override de la classe Tag en créant la nouvelle fonction getallTags, voir ci-dessous class Tag extends TagCore { public static function getallTags($id_lang, $nb = 10000) { $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT t.name, COUNT(pt.id_tag) AS times FROM `'._DB_PREFIX_.'product_tag` pt LEFT JOIN `'._DB_PREFIX_.'tag` t ON (t.id_tag = pt.id_tag) LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = pt.id_product) '.Shop::addSqlAssociation('product', 'p').' WHERE t.`id_lang` = '.(int)$id_lang.' AND product_shop.`active` = 1 AND product_shop.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.$sql_groups.' ) GROUP BY t.id_tag ORDER BY times DESC LIMIT 0, '.(int)$nb); } } et voila wow j'ai tellement appris!!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now