MrSoulPC915 Posted April 24, 2020 Share Posted April 24, 2020 Bonjour à tous, Je suis actuellement en train de rajouter une catégorie actu à ma boutique. Un truc simple qui affiche le contenu des pages CMS d'une catégorie (id 6) CMS (dans mytheme/templates/cms/category.tpl) : {block name='cms_sub_pages'} {if $cms_pages} <div class="blog"> {foreach from=$cms_pages item=cms_page} {if $cms_category.id==6} {$cms_page.content nofilter} {/if} {/foreach} </div> {/if} {/block} Léger problème, impossible de trouver comment inverser l'ordre d'affichage des articles. J'ai également tenté de le faire avec la fonctions getCMSPages, mais l'array est quasiment la même. {block name='cms_sub_pages'} {assign var=cmspages value=CMS::getCMSPages($language.id, 6, true, (int)Shop::getContextShopID())} <div class="blog"> {foreach from=$cmspages item=cmspage} {$cmspage.content nofilter} {/foreach} </div> {/block} Quand on regarde la fonction getCMSPages (/classes/CMS.php), on peut voir le code suivant : class CMSCore extends ObjectModel { [...] public $position; [...] public static $definition = array( [...] 'fields' => array( [...] 'position' => array('type' => self::TYPE_INT), [...] ), ); public static function getCMSPages($idLang = null, $idCmsCategory = null, $active = true, $idShop = null) { [...] $sql->orderBy('position'); [...] } Un quelconque moyen de modifier la position ? Faut-il créer un override ? Si oui, je n'en ai jamais fait, si vous pouviez m'aiguiller, ça serait parfait Merci d'avance et bonne journée. Link to comment Share on other sites More sharing options...
Eolia Posted April 24, 2020 Share Posted April 24, 2020 il y a 9 minutes, MrSoulPC915 a dit : Un quelconque moyen de modifier la position ? Oui, le drag'n drop Link to comment Share on other sites More sharing options...
MrSoulPC915 Posted April 24, 2020 Author Share Posted April 24, 2020 Non, ça je sais (j'aurais du le préciser)... Dans le cas d'une page "blog", au début, ça va être simple, mais si on arrive a un gros nombre d'article, ça va être infernal. D'où l'idée d'inverser le flux. Link to comment Share on other sites More sharing options...
Eolia Posted April 24, 2020 Share Posted April 24, 2020 Rapport entre BLOG et CMS svp ? Link to comment Share on other sites More sharing options...
MrSoulPC915 Posted April 24, 2020 Author Share Posted April 24, 2020 J'essaie de faire un blog minimaliste avec les pages cms... Link to comment Share on other sites More sharing options...
doekia Posted April 24, 2020 Share Posted April 24, 2020 {assign var=smc value=$cmspages|array_reverse:1} {foreach from=$smc item=cmspage} 1 Link to comment Share on other sites More sharing options...
Eolia Posted April 24, 2020 Share Posted April 24, 2020 (edited) Pour votre override, si ces pages "blog" sont dans une catégorie cms particulière faites votre override comme suit: class CMS extends CMSCore { /** order blog pages by date **/ public static function getCMSPages($idLang = null, $idCmsCategory = null, $active = true, $idShop = null) { [...] if($idCmsCategory == 6) // exemple je ne connais pas l'id de la catégorie^^ $sql->orderBy('date_add DESC'); ou $sql->orderBy('position DESC'); else $sql->orderBy('position'); [...] } } Enregistrez-le dans /overrides/class/CMS.php et supprimez le fichier /cache/class_index.php Edited April 24, 2020 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
MrSoulPC915 Posted April 24, 2020 Author Share Posted April 24, 2020 5 minutes ago, doekia said: {assign var=smc value=$cmspages|array_reverse:1} {foreach from=$smc item=cmspage} Super, merci Doekia, c'est exactement le modifier ce que je cherchais ! Plus besoin d'override du coup ! {foreach from=$cms_pages|array_reverse item=cms_page} {if $cms_category.id==6} {$cms_page.content nofilter} {/if} {/foreach} Je l'ai directement mis sur le foreach, pour plus de simplicité (il semble même fonctionner sans le :1). $sql->orderBy('date_add DESC'); Eolia> Il n'y a pas de date d'ajout sur les pages CMS...? Link to comment Share on other sites More sharing options...
Eolia Posted April 24, 2020 Share Posted April 24, 2020 Exact, désolé j'étais sur une boutique de test qui en a. L'override permettait de filtrer sur la catégorie surtout sans modifier les autres positions. 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