Jump to content

Catégories


Recommended Posts

Bonjour la communauté Prestashop !

 

En voulant afficher mes sous-catégorie en grille, je suis tombé sur ce bout de code :

 

<select onchange="if ($(this).val() != '') document.location.href = $(this).val();">
<option value="">{l s='Choose Edition'}</option>
{foreach from=$subcategories item=subcategory}
<option value="{$link->getCategoryLink($subcategory.id_category,
$subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}">{$subcategory.name|escape:'htmlall':'UTF-8'}
</option>
{/foreach}
</select>

(il est pas comme ça mais pour un soucis de visibilté, j'ai essayé de le mettre en page :)

 

Excellent d'ailleur ! Qui me permet d'avoir un menu déroulant que j'ai integré ici :

 

http://www.managame....en/6-mtg-single

 

Le problème, une fois que j'ai sélectionné une catégorie, je n'ai plus rien dans le menu déroulant. J'aimerais bien pouvoir continuer à avoir les catégories quel que soit l'endroit ou je suis :

 

http://www.managame..../8-Alara-Rebornhttp://www.managame..../8-Alara-Reborn

 

ps : je n'ai toujours pas trouvé comment afficher mes catégories en grilles... J'en ai 139, ce qui les rend assez moche affichée les une sous les autres, comme vous pouvez le constater sur mon premier lien...

 

Merci de votre aide,

Link to comment
Share on other sites

 {foreach from=$subcategories item=subcategory}

 

Dans $subcategories tu as les sous catégorie de la catégorie courante.

Il est donc normal que le menu déroulant ce vide.

 

Pour conserver ton menu déroulant, il faut que tu modifie le controller CategoryController.php pour qu'il envoi à smarty dans tous les cas les sous catégorie de la catégorie 1 dans une variables $subcategoriesRoot et il faudra que tu utilise cette variable pour ton menu déroulant.

 

Je ne comprend pas ce que tu veux dire par sous "forme de grille" ?

.

Link to comment
Share on other sites

 {foreach from=$subcategories item=subcategory}

 

Dans $subcategories tu as les sous catégorie de la catégorie courante.

Il est donc normal que le menu déroulant ce vide.

 

Pour conserver ton menu déroulant, il faut que tu modifie le controller CategoryController.php pour qu'il envoi à smarty dans tous les cas les sous catégorie de la catégorie 1 dans une variables $subcategoriesRoot et il faudra que tu utilise cette variable pour ton menu déroulant.

 

Je ne comprend pas ce que tu veux dire par sous "forme de grille" ?

.

 

Merci pour réponse ! (même si j'ai rien compris) Je vais de ce pas apprendre et faire ce que tu m'as dis !

 

Pour la forme de grille, dans les premiers thèmes les catégories étaient affichées sur la même ligne. Maintenant, avec le nouveau thème, l'affichage est d'une catégorie par ligne.

 

Si tu clique sur mon 1er lien, tu te rends vite compte comme c'est moche, vu que j'ai 140 catégories. Il faudrait que je puisse en afficher le maximum par "ligne" (je pourrais facilement en mettre 3 par ligne par exemple)... Je ne sais pas si je m'exprime bien ;)

 

self::$smarty->assign(array(
 'products' => (isset($this->cat_products) AND $this->cat_products) ? $this->cat_products : NULL,
 'id_category' => (int)($this->category->id),
 'id_category_parent' => (int)($this->category->id_parent),
 'return_category_name' => Tools::safeOutput($this->category->name),
 'path' => Tools::getPath((int)($this->category->id)),
 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
 'categorySize' => Image::getSize('category'),
 'mediumSize' => Image::getSize('medium'),
 'thumbSceneSize' => Image::getSize('thumb_scene'),
 'homeSize' => Image::getSize('home')

 

Je pourrais changer un truc juste ici ? Parceque je crains que ça dépasse un peu mes compétences de faire ce que tu préconises :)

Link to comment
Share on other sites

Pour l'affiche sous forme de grille, il faut juste faire quelques changement de css.

Pour la modif pour les catégories, ce n'est pas juste une mini modif : il faut rechercher les sous catégories de la catégorie root puis les envoyer à smarty.

 

Si tu n'a aucune base en CSS/HTML et PHP, je te conseil de demander à une personne qui si connait de le faire plutôt que de tenter par toi même.

Link to comment
Share on other sites

Un jour un grand Monsieur à dit :

 

Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement.

 

Et l'enfant de 6ans que je suis n'ayant rien compris, il est allé apprendre et après quelques heures, je vais pouvoir fermer ce sujet. Avant de le marqué comme [Réolu], je vais y donner l'explication nécessaire :

 

Pour l'affichage en grille, il faut éditer le fichier ./theme/css/category.css et changer/rajouter ces valeurs :

 

.inline_list {
display:inline;

 

.inline_list  li {
width:100px

 

pour le menu déroulant, je n'y arrive toujours pas :)

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...