Pour ceux qui ont cherché des solutions pour afficher les produits dans l'ordre désiré je vous donne la solution donnée aujourd'hui sur le forum virtuemart avec des explications en plus.(Encore merci à sniperSister )
Allez dans .../administrator/components/com_virtuemart/helpers/shopfunctions.php
Supprimez la ligne 1169 et remplacez-la par ceci :
Allez dans ... /administrator/components/com_virtuemart/models/products.php
Puis sélectionné les lignes la ou commence le code function saveorder ...... jussqu' à la balise de fermeture après Jfactory et collez cela :
Si vous désirez le code du fichier en entier car vous avez du mal a savoir ou le mettre faite le moi savoir et je vous colle tout le code de ce fichier avec la correction.
Une fois cela effectué allez dans le back end de votre site puis dans configuration, tri des produits, et dans la liste ordre de tri par défaut choisir "ordre".
Et voilà vous pouvez trier vos produits.
Allez dans .../administrator/components/com_virtuemart/helpers/shopfunctions.php
Supprimez la ligne 1169 et remplacez-la par ceci :
Code PHP:
'product_unit', 'product_packaging', 'p.virtuemart_product_id','ordering');
Allez dans ... /administrator/components/com_virtuemart/models/products.php
Puis sélectionné les lignes la ou commence le code function saveorder ...... jussqu' à la balise de fermeture après Jfactory et collez cela :
Code PHP:
function saveorder($cid , $orders) {
JRequest::checkToken() or jexit( 'Invalid Token' );
$virtuemart_category_id = JRequest::getInt('virtuemart_category_id', 0);
$q = 'SELECT `id`,`ordering` FROM `#__virtuemart_product_categories`
WHERE virtuemart_category_id='.(int)$virtuemart_category_id.'
ORDER BY `ordering` ASC';
$this->_db->setQuery($q);
$pkey_orders = $this->_db->loadObjectList();
$tableOrdering = array();
foreach ($pkey_orders as $order) $tableOrdering[$order->id] = $order->ordering;
// set and save new ordering
foreach ($orders as $key => $order) $tableOrdering[$key] = $order;
asort($tableOrdering);
$i = 1 ; $ordered = 0 ;
foreach ($tableOrdering as $key => $order) {
$this->_db->setQuery('UPDATE `#__virtuemart_product_categories`
SET `ordering` = '. $i.'
WHERE `id` = ' . (int)$key . ' ');
if (! $this->_db->query()){
vmError($this->_db->getErrorMsg());
return false;
}
$ordered ++ ;
$i++ ;
}
if ($ordered) $msg = JText::sprintf('COM_VIRTUEMART_ITEMS_MOVED', $ordered);
else $msg = JText::_('COM_VIRTUEMART_ITEMS_NOT_MOVED');
JFactory::getApplication()->redirect('index.php?option=com_virtuemart&view=product&virtuemart_category_id='.$virtuemart_category_id, $msg);
}
Une fois cela effectué allez dans le back end de votre site puis dans configuration, tri des produits, et dans la liste ordre de tri par défaut choisir "ordre".
Et voilà vous pouvez trier vos produits.
Commentaire