Jump to content

Limitation des clics! Suppression page catégorie...


Recommended Posts

Bonjour :)

 

Voilà, je voudrais éviter à mes visiteurs d'avoir à passer sur la page catégorie lorsqu'ils cliquent sur l'onglet du menu et qu'il n'est qu'à choisir la catégorie de produit directement sur le produit.

Explication en image!

Je voudrais passer de ma page d'accueil à ma liste produit sans avoir à voir cette page

post-1004850-0-06114500-1431358209_thumb.png

 

Je ne sais pas si c'est du BO ou du smarty/js/php ou autre et j'avoue que la personnalisation générale de prestashop 1.6 est assez complexe et très peu ergonomique.... :(

 

Merci d'avance pour vos réponse! :)

 

Ps: aucune difficulté sur les codes c'est que je suis perdue :unsure: 

Link to comment
Share on other sites

Bonjour :)

 

En fait c'est le thème default bootstrap, j'ai juste adapter le thème au design de mon client. Malheureusement Alexandre-KM, je ne peux pas faire cela car il y a beaucoup trop de produits dans les catégories iPhone/iPad/etc...

 

Du coup je pense que la solution d'Ariane est celle à suivre! :) Pourrais-tu m'éclairer un peu plus?

 

Merci à vous pour m'avoir répondu!

Link to comment
Share on other sites

Bonjour,

 

J'ai du mal à comprendre ce que vous souhaitez.

Si j'ai bien suivi votre arbo a comme catégorie principale "Téléphonie" et sous-catégories "Iphone" "Ipad" etc...

 

Donc à part mettre vos produits dans la catégorie principale comme l'indique Alexandre-KM... ou alors vous faites pointer le lien "Téléphonie" sur une sous-catégorie directement mais pourquoi envoyer vos clients sur la sous-cat "Iphone" s'ils cherchent plutôt du "Samsung" ?!

 

L'utilisation de la navigation à facette serait certainement judicieuse pour filtrer vos produits s'ils sont si nombreux ;)

Link to comment
Share on other sites

Bonjour :)

 

Votre remarque est intéressante! J'utilise la navigation à facette justement, et ce que je souhaite c'est que le client n'utilise que le menu du haut (blocktopmenu) avec le système de menu déroulant comme ceci :

 

post-1004850-0-99679500-1431508626_thumb.png

 

Pour arriver ici directement, ce qui laisse au visiteur le choix de la catégorie de produit grâce à la navigation à facette ;) :

 

post-1004850-0-45409400-1431508628_thumb.png

 

J'espère que c'est plus clair ^^

 

En tout cas je ne peux pas me permettre de supprimer mes catégories. Mon arborescence est très importante car les produits sont les mêmes mais les prix diffèrent selon le modèle du téléphone (c'est de la réparation c'est pour ça :) )

Link to comment
Share on other sites

Ok donc si je comprends mieux vous voulez simplement qu'il n'y ait pas de clic possible sur certains des liens principaux du menu horizontal. Si c'est bien ça en fonction du module utilisé vous pouvez éventuellement le paramétrer ou alors avec du JS vous ciblez le ou les liens que vous souhaitez "désactiver" et avec un "return false" ça devrait faire l'affaire ;)

Pour votre arbo ou vous avez plusieurs fois les mêmes produits mais avec des prix différents par modèle de tél, peut être serait-il judicieux d'utiliser les déclinaisons: 1 seul produit et le client choisi dans la fiche produit son téléphone et le tarif se met à jour.

Link to comment
Share on other sites

Super merci, j'utilise le module natif de presta donc j'imagin que je dois faire ces modifications dans les fichiers js du blocktopmenu?

 

En ce qui concerne les déclinaisons, se sont des produits dématérialisés vu que les réparations sont faites non pas par le client mais par le prestataire. Le client réserve sa réparation (pièce et paiement) et envoie son téléphone au professionnel pour qu'il le répare. Du coup les déclinaisons 'fiout' ca passe sous le nez ^^, je pourrais les transformer en produit banal, mais il n'y a pas de livraison du coup... Et ça serai une autre affaire avec la finalisation de la commande... Enfin, pour l'instant ce n'est pas ce qui me dérange le plus en tout cas ^^ Mais j'apprécie vos conseils et j'en prend note :)

Link to comment
Share on other sites

Bonjour,

 

Je tiens à vous relancer car je commence à être sérieusement inquiète car le temps va me manquer... Si Ariane de Web et Plus pouvait approfondir son raisonnement, cela m'aiderai beaucoup!! Je pense que c'est tout à fait la solution qu'il me faut!

 

Merci d'avance :)

Link to comment
Share on other sites

ouvrez blocktomenuphp dans la fonction generateCategoriesMenu et remplacez-la par:

	private function generateCategoriesMenu($categories, $is_children = 0)
	{
		$html = $link = '';

		foreach ($categories as $key => $category)
		{
			if ($category['level_depth'] > 1)
			{
				$cat = new Category($category['id_category']);
				if($cat->id_parent > 2)
					$link = Tools::HtmlEntitiesUTF8($cat->getLink());
			}
			else
				$link = $this->context->link->getPageLink('index');

			$html .= '<li'.(($this->page_name == 'category'
				&& (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce"' : '').'>';
			$mini = $category['id_category'].'_mini.jpg';
			if(file_exists(_PS_CAT_IMG_DIR_.$mini))
				$html .= '<img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$mini).'" style="height:40px;padding-top:10px" />';
			$html .= $link ? '<a href="'.$link.'" title="'.$category['name'].'">'.$category['name'].'</a>' : $category['name'];

			if (isset($category['children']) && !empty($category['children']))
			{
				$html .= '<ul>';
				$html .= $this->generateCategoriesMenu($category['children'], 1);

				if ((int)$category['level_depth'] > 1 && !$is_children)
				{
					$files = scandir(_PS_CAT_IMG_DIR_);

					if (count($files) > 0)
					{
						$html .= '<li class="category-thumbnail">';

						foreach ($files as $file)
							if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1)
								$html .= '<div><img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$file)
								.'" alt="'.Tools::SafeOutput($category['name']).'" title="'
								.Tools::SafeOutput($category['name']).'" class="imgm" /></div>';

						$html .= '</li>';
					}
				}

				$html .= '</ul>';
			}

			$html .= '</li>';
		}

		return $html;
	} 

la différence principale etant ici:

			if ($category['level_depth'] > 1)
			{
				$cat = new Category($category['id_category']);
				if($cat->id_parent > 2)
					$link = Tools::HtmlEntitiesUTF8($cat->getLink());
			}

2 étant l'id de la catégorie Accueil normalement (si ce n'est pas le cas, remplacez-le par votre ID )

Ensuite regénérez votre menu.

Les catégories directement enfants de l'accueil n'auront plus de lien :)

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...