admin diviser les categories

  • Posts: 2655
  • Thank you received: 66
  • Hikashop Business
1 day 12 hours ago #366547

-- HikaShop version -- : 5.1.5

Bonjour
dans l admin (index.php?option=com_hikashop&ctrl=product) quand on cree un nouveau produit
il y a une box Catégories (<dd class="hikashop_product_category">) qui est tres dure a gérer, si on a comme dans notre cas, 15 categories avec chacune x sous categories

comment faire pour diviser ca en autant de box categories avec toutes les sous categories visibles ?

tel quel c'est un supplice a utiliser, des heures de boulot et toujours des erreurs et oublis

par exemple diviser le :

<div style="" data-oresize="data_product_categories" class="namebox-popup-resize namebox-popup-container">
    <div id="data_product_categories_otree" class="oTree namebox-popup-content">
        <div class="oTreeNode"><img id="data_product_categories_i1" alt=""
                src="../media/com_hikashop/images/otree/world.png"><a id="data_product_categories_s1" class="node"
                href="#" onclick="window.oTrees.data_product_categories.sel(1);return false;">racine</a></div>
     ...

avec la sélection des categotries onclick="window.oTrees.data_product_categories.sel(3)
je pourrais diviser en autant qu il y en a

merci

Last edit: 1 day 11 hours ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
1 day 8 hours ago #366550

Bonjour,

Désolé mais j'ai du mal à comprendre la problématique. Pourriez-vous faire des captures d'écran pour illustrer le problème ?

Please Log in or Create an account to join the conversation.

  • Posts: 2655
  • Thank you received: 66
  • Hikashop Business
15 hours 53 minutes ago #366564

actuellement on a ca




et on voudrait ca


toutes les categories séparées avec leurs sous categories en case a cocher
cette box telle qu elle est est épouvantable , c est des heures de boulot a ouvrir et fermer et chercher pour sélectionner une catégorie

par exemple pour la pointure 40 votre code genre ce lien
<div class="oTreeNode">
  <a id="data_product_categories_s17" class="node" href="#"
        onclick="window.oTrees.data_product_categories.sel(17);return false;">40</a></div>
et on voudrait tout en cases a cocher
ou si cest impossible avoir autant de box que de categories

Attachments:
Last edit: 15 hours 17 minutes ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
10 hours 11 minutes ago #366566

Bonjour,

ok, c'est plus clair, merci.

Au cas où vous ne seriez pas au courant, savez vous qu'une fois le dropdown de sélection déplié, vous pouvez taper les premiers caractères de la catégorie que vous voulez sélectionner et ainsi vous pouvez facilement la sélectionner sans avoir à chercher ?

Par exemple, pour choisir la couleur, au lieu de:
- cliquer sur le sélecteur
- déplier la catégorie "couleur" en cliquant dessus
- faire défiler la liste des couleurs jusqu'à atteindre la catégorie à sélectionner
- cliquer sur la catégorie

Vous pouvez:
- cliquer sur le sélecteur
- taper sur "b" et "l" sur votre clavier
- vous aurez directement les catégories "blanc" et "bleu" qui apparaitront et vous pourrez directement sélectionner la catégorie en cliquant dessus.

C'est peut être même plus rapide que de devoir faire défiler la page, lire les noms des catégories en diagonale pour trouver la bonne et cliquer sur la case à cocher correspondante.

Qu'en pensez-vous ?

Après, faire votre propre système de sélection avec des cases à cocher, c'est tout à fait possible avec un peu de développement.
Je pense que c'est assez facile pour vous, vu que vous savez coder.
Ce qu'il faut faire, c'est faire un override de product / form pour le template du backend via le menu Affichage>Vues.
Là, supprimez le code qui affiche le sélecteur de catégories actuel:

			<dt class="hikashop_product_category"><label for="data_product_categories_text"><?php echo JText::_('HIKA_CATEGORIES'); ?></label></dt>
			<dd class="hikashop_product_category"><?php
		$categories = null;
		if(!empty($this->product->categories))
			$categories = array_keys($this->product->categories);
		echo $this->nameboxType->display(
			'data[product][categories]',
			$categories,
			hikashopNameboxType::NAMEBOX_MULTIPLE,
			'category',
			array(
				'delete' => true,
				'brand' => false,
				'sort' => true,
				'default_text' => '<em>'.JText::_('HIKA_NONE').'</em>',
				'tooltip' => true,
			)
		);
			?></dd>
A la place, vous pouvez écrire un peu de PHP. Par exemple, quelque chose du genre (pas testé):
<?php
$alreadySelected = array_keys($this->product->categories);
$db = JFactory::getDBO();
$db->setQuery('SELECT category_id, category_name WHERE #__hikashop_category WHERE category_parent_id=1 AND category_type=\'product\'');
$categories = $db->loadObjectList();
foreach($categories as $category) {
 echo '<dt>'.$category->category_name.'</dt>';
 $db->setQuery('SELECT category_id, category_name WHERE #__hikashop_category WHERE category_parent_id='.(int)$category->category_id.' ORDER BY category_name ASC');
 $subcategories = $db->loadObjectList();
 echo '<dd>';
 foreach($subcategories as $subcategory) {
  $checked = '';
  if(in_array($subcategory->category_id, $alreadySelected)) $checked = 'checked="checked"';
  echo '<input type="radio" '.$checked.' name="data[product][categories]" value="'.$subcategory->category_id.'"/>'.$subcategory->category_name;
 }
 echo '</dd>';
}
?>
En gros, il y a une première requête pour charger les catégories principales, ensuite une boucle sur cette liste. Et dans la boucle, il y a une requête pour charger les sous catégorie de la catégorie principale, et ensuite l'affichage de la checkbox et du nom pour chaque sous catégories.

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2655
  • Thank you received: 66
  • Hikashop Business
6 hours 30 minutes ago #366569

Super
Je vais essayer ça ! Assez simple a mettre en place
Merci

Last edit: 6 hours 28 minutes ago by erickb.

Please Log in or Create an account to join the conversation.

Time to create page: 0.087 seconds
Powered by Kunena Forum