Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
29 Jul 2008, 09:25
Message
#1
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Bonjour la communauté.
Comment garder le TRI ordonné initial sur (p.products_date_added) en pagination de liste ? fichier: catalog/index.php Voila mon code : Code if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . 'a'; // orriginal // $listing_sql .= " order by pd.products_name"; // INITIAL - classé par nom de produit $listing_sql .= " order by p.products_date_added desc"; // CE QUE JE VEUX - classé par date d'ajout break; C'est OK sur chaque première page des articles de chauqe categorie Des qu'on, passe en page 2, puis on revient en page 1 le TRI : Code $listing_sql .= " order by p.products_date_added desc"; est perdu. Dans quel fichier je dois agir, la je seche depuis 3 heures.. J'ai fais une recherche, lu les posts, mais rien sur le sujet. Objectif simple en fait : forcer par defaut et maintenir une pagination sur le critere par defaut : Code $listing_sql .= " order by p.products_date_added desc"; Merci pour votre aide. -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
29 Jul 2008, 12:32
Message
#2
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
slt,
ça se passe dans le fichier catalog/includes/modules/products_listing.php lors de la construction de l'objet splitPageResults : par défaut, le tri se fait sur le products_id : Code $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id'); en changeant par : Code $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_date_added'); devrait te donner le résultat escompté... Cdt j'ai oublié ! rajouter le champs p.products_date_added dans la requète : Code // We show them all $listing_sql = "select " . $select_column_list . " p.products_id, p.products_date_added, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price, p.products_weight from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; de la page index ... Ce message a été modifié par coconimo - 29 Jul 2008, 13:37. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
29 Jul 2008, 13:41
Message
#3
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Merci Coconimo pour la localisation du fichier concerné.et l'explication sur la construction de l'objet qui fait ca : splitPageResults
J'ai modifié le dit fichier : de Code $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id'); par : Code $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_date_added'); Mais cela ne change rien a l'ordre de TRI perdu en pagination. J'ai mis un echo et je vois l'affichage sur la premiere page du SORT de correct Ensuite, le page suivante OU LE page précédente n'en tiennent plus compte. Comme ci ca ne 'passait plus dans cette fonction ensuite ou que le sort était oublié. Merci de m'aider. Voici le code de ma page : catalog/includes/modules/products_listing_col.php Code <?php /* $Id: product_listing.php,v 1.1.1.1 2003/09/18 19:04:51 wilt Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License product_listing col ericd - L'ATELIER */ // par defaut sur le products_id // $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id'); // Voila pour l'ATELIER sur p.products_date_added $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_date_added'); if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) { ?> <table border="0" width="500" cellspacing="0" cellpadding="2"> <tr> <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td> <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td> </tr> </table> <?php } $list_box_contents = array(); for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_text = TABLE_HEADING_MODEL; $lc_align = 'center'; break; case 'PRODUCT_LIST_NAME': $lc_text = TABLE_HEADING_PRODUCTS; $lc_align = 'left'; break; case 'PRODUCT_LIST_MANUFACTURER': $lc_text = TABLE_HEADING_MANUFACTURER; $lc_align = ''; break; case 'PRODUCT_LIST_PRICE': $lc_text = TABLE_HEADING_PRICE; $lc_align = 'center'; break; case 'PRODUCT_DATE_ADDED': $lc_text = TABLE_HEADING_DATEADDED; $lc_align = 'center'; break; case 'PRODUCT_LIST_QUANTITY': $lc_text = TABLE_HEADING_QUANTITY; $lc_align = 'right'; break; case 'PRODUCT_LIST_WEIGHT': $lc_text = TABLE_HEADING_WEIGHT; $lc_align = 'right'; break; case 'PRODUCT_LIST_IMAGE': $lc_text = TABLE_HEADING_IMAGE; $lc_align = 'center'; break; case 'PRODUCT_LIST_BUY_NOW': $lc_text = TABLE_HEADING_BUY_NOW; $lc_align = 'center'; break; } if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) { $lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text); } $list_box_contents[0][] = array('align' => $lc_align, 'params' => 'class="productListing-heading"', 'text' => ' ' . $lc_text . ''); } if ($listing_split->number_of_rows > 0) { $rows = 0; $listing_query = tep_db_query($listing_split->sql_query); while ($listing = tep_db_fetch_array($listing_query)) { $rows++; if (($rows/2) == floor($rows/2)) { $list_box_contents[] = array('params' => 'class="productListing-even"'); } else { $list_box_contents[] = array('params' => 'class="productListing-odd"'); } $cur_row = sizeof($list_box_contents) - 1; $has_description = false; for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { $lc_align = ''; switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_align = 'center'; $lc_text = ' ' . $listing['products_model'] . ' '; break; case 'PRODUCT_LIST_NAME': $lc_align = ''; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a>'; } else { $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a> '; } /* ajout contrib Product Listing 03 */ if (PRODUCT_LIST_DESCRIPTION && $listing['products_description'] && PRODUCT_LIST_DESCRIPTION_MAX_LENGTH) $lc_text .= '<br><table border="0" cellpadding="0" cellspacing="0" width="85%"><tr><td class="productDesc">' . tep_flatten_product_description($listing['products_description'], ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) . '">' . TEXT_MORE . '</a>') . '</td></tr></table>'; /* fin ajout contrib Product Listing 03 */ break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = ''; $lc_text = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a> '; break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; // ajout Suppression si prix=0 // if ($listing['products_price'] > 0) { if ($listing['products_price'] != '0.01') { // if ($listing['products_price'] = '0') { // fin ajout // format du TABLEAU pour le PRIX UNIQUEMENT if (tep_get_products_special_price($listing['products_id'])) { $lc_text = '<table border="0" cellpadding="0" cellspacing="0" width="78"><tr><td align="right" class="productDesc"><strong>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price(tep_get_products_special_price($listing['products_id']), tep_get_tax_rate($listing['products_tax_class_id'])) . '</strong></span></td></tr></table>'; } else { $lc_text = '<table border="0" cellpadding="0" cellspacing="0" width="78"><tr><td align="right" class="productDesc"><strong>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</strong></td></tr></table>'; } // ajout Suppression si prix=0 } else { $lc_text = ' '; } // fin ajout break; // ajour ED L'ATELIER case 'PRODUCT_DATE_ADDED': $lc_align = 'right'; $lc_text = ' ' . $listing['products_date_added'] . ' '; break; // fin ajour ED L'ATELIER case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_text = ' ' . $listing['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $listing['products_weight'] . ' '; break; case 'PRODUCT_LIST_IMAGE': $lc_align = 'center'; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'; } else { $lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> '; } break; case 'PRODUCT_LIST_BUY_NOW': // ajout Suppression si prix=0 // if ($listing['products_price'] > 0) { if ($listing['products_price'] = '0.01') { // fin ajout $lc_align = 'right'; $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_template_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> '; // ajout Suppression si prix=0 } else { $lc_text = ' '; } // fin ajout break; } $list_box_contents[$cur_row][] = array('align' => $lc_align, 'params' => 'class="productListing-data"', 'text' => $lc_text); } } new productListingBox($list_box_contents); } else { $list_box_contents = array(); $list_box_contents[0] = array('params' => 'class="productListing-odd"'); $list_box_contents[0][] = array('params' => 'class="productListing-data"', 'text' => TEXT_NO_PRODUCTS); new productListingBox($list_box_contents); } if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) { ?> <table border="0" width="500" cellspacing="0" cellpadding="2"> <tr> <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td> <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td> </tr> </table> <?php } ?> A vous les studios.. -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
29 Jul 2008, 13:51
Message
#4
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Je viens de rajouter : le champs p.products_date_added dans la requète :
Rien y fais, que nenni le bougre... Voila mon fichier /catalog/index.php Code <?php /* $Id: index.php,v 1.2 2003/09/24 14:33:15 wilt Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); // the following cPath references come from application_top.php $category_depth = 'top'; if (isset($cPath) && tep_not_null($cPath)) { $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'"); $cateqories_products = tep_db_fetch_array($categories_products_query); if ($cateqories_products['total'] > 0) { $category_depth = 'products'; // display products } else { $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'"); $category_parent = tep_db_fetch_array($category_parent_query); if ($category_parent['total'] > 0) { $category_depth = 'nested'; // navigate through the categories } else { $category_depth = 'products'; // category has no products, but display the 'no products' message } } } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT); if ($category_depth == 'nested') { //Code change for Categories Description 1.5 // $category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'"); //Changed to the following $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $current_category_id . "' and cd.categories_id = '" . $current_category_id . "' and cd.language_id = '" . $languages_id . "'"); //End Categories Description 1.5 $category = tep_db_fetch_array($category_query); $content = CONTENT_INDEX_NESTED; } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) { // create column list $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL, 'PRODUCT_DATE_ADDED' => PRODUCT_DATE_ADDED, 'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME, 'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER, 'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE, 'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY, 'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT, 'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE, 'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW); asort($define_list); $column_list = array(); reset($define_list); while (list($key, $value) = each($define_list)) { if ($value > 0) $column_list[] = $key; } $select_column_list = ''; for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { switch ($column_list[$i]) { case 'PRODUCT_LIST_MODEL': $select_column_list .= 'p.products_model, '; break; // Cas par date d'ajout DESC - ED 2008 - L'ATELIER // $listing_sql .= " order by p.products_date_added desc"; case 'PRODUCT_DATE_ADDED': $select_column_list .= 'p.products_date_added, '; break; case 'PRODUCT_LIST_NAME': //$select_column_list .= 'pd.products_name, '; $select_column_list .= 'pd.products_name, pd.products_description, '; break; case 'PRODUCT_LIST_MANUFACTURER': $select_column_list .= 'm.manufacturers_name, '; break; case 'PRODUCT_LIST_QUANTITY': $select_column_list .= 'p.products_quantity, '; break; case 'PRODUCT_LIST_IMAGE': $select_column_list .= 'p.products_image, '; break; case 'PRODUCT_LIST_WEIGHT': $select_column_list .= 'p.products_weight, '; break; } } // Get the category name and description $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $current_category_id . "' and cd.categories_id = '" . $current_category_id . "' and cd.language_id = '" . $languages_id . "'"); $category = tep_db_fetch_array($category_query); // show the products of a specified manufacturer if (isset($HTTP_GET_VARS['manufacturers_id'])) { if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) { // We are asked to show only a specific category $listing_sql = "select " . $select_column_list . " p.products_id, p.products_date_added, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'"; } else { // We show them all $listing_sql = "select " . $select_column_list . " p.products_id, p.products_date_added, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"; } } else { // show the products in a given categorie if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) { // We are asked to show only specific catgeory $listing_sql = "select " . $select_column_list . " p.products_id, p.products_date_added, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; } else { // We show them all $listing_sql = "select " . $select_column_list . " p.products_id, p.products_date_added, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; } } if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) { for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . 'a'; // orriginal // $listing_sql .= " order by pd.products_name"; // classé par nom de produit // Tri par ID pour l'atelelier - ROUX - SAUVAGEON $listing_sql .= " order by p.products_date_added desc"; // classé par date d'ajout // echo $listing_sql; break; } } } else { $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1); $sort_order = substr($HTTP_GET_VARS['sort'], 1); $listing_sql .= ' order by '; switch ($column_list[$sort_col-1]) { case 'PRODUCT_LIST_MODEL': $listing_sql .= "pd.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; // ajout - Tri par ID pour l'atelelier - ROUX - SAUVAGEON case 'PRODUCT_DATE_ADDED': $listing_sql .= "p.products_date_added " . ($sort_order == 'd' ? 'desc' : ''); break; case 'PRODUCT_LIST_NAME': $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : ''); break; case 'PRODUCT_LIST_MANUFACTURER': $listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_QUANTITY': $listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_IMAGE': $listing_sql .= "pd.products_name"; break; case 'PRODUCT_LIST_WEIGHT': $listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; case 'PRODUCT_LIST_PRICE': $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name"; break; } } $content = CONTENT_INDEX_PRODUCTS; } else { // default page $content = CONTENT_INDEX_DEFAULT; } require(DIR_WS_TEMPLATES . TEMPLATE_NAME . '/' . TEMPLATENAME_MAIN_PAGE); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Merci de m'apporter ton aide. -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
29 Jul 2008, 15:18
Message
#5
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
Code require(DIR_WS_TEMPLATES . TEMPLATE_NAME . '/' . TEMPLATENAME_MAIN_PAGE); quelle est la version exacte de ta boutique ? quelle contrib gère les templates sinon ? -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
29 Jul 2008, 15:38
Message
#6
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Salut
J'ai franchement pas tout suivi, mais comme ça vite fait, j'ai une idée qui me viens à l'esprit ... Fais y un petit essai avec ceci pour voir : Code // -> Recherche du champ (colonne) PRODUCT_DATE_ADDED par défaut // au lieu de -> PRODUCT_LIST_NAME if ($column_list[$i] == 'PRODUCT_DATE_ADDED') { $HTTP_GET_VARS['sort'] = $i+1 . 'a'; // orriginal // $listing_sql .= " order by pd.products_name"; // classé par nom de produit // Tri par ID pour l'atelelier - ROUX - SAUVAGEON $listing_sql .= " order by p.products_date_added desc"; // classé par date d'ajout // echo $listing_sql; break; } Si je dis pas de bêtise, c'est cette partie de code qui choisi le champ (ou la colonne) par défaut, et dans osC c'est le champ products_name. Or, si j'ai bien compris, c'est le champ (et donc colonne) de la date que tu veux que ça soit par défaut. Ce message a été modifié par shoprun - 29 Jul 2008, 15:41. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
29 Jul 2008, 22:29
Message
#7
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Bon ca a du mieux de chez mieux,
le TRI et la pagination fonctionne désormais mais en ASC uniquement. Sur mon code plus haut dans le post, j'ai uniquement changé sur recommandation de shoprun : /catalog/index.php Code if ($column_list[$i] == 'PRODUCT_DATE_ADDED') { // if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . 'a'; // $HTTP_GET_VARS['sort'] = $i+1 . 'a'; // orriginal // $listing_sql .= " order by pd.products_name"; // classé par nom de produit // Tri par : Date added $listing_sql .= " order by p.products_date_added desc"; // classé par date d'ajout J'ai indiqué partout sur mes deux pages un mode de tri DESC Mais ca ne fonctionne qu'en ASC partout... Si vous aviez une idée lumineuse, cela permettrait de clore le sujet en résolu. Pour Coconimo, cette version de code n'est pas de mon MS 2.2 FR mais d'une Creload 6.x FR de Delaballe et O'Neil Donc la gestion des templates est lié a la Creload de l'epoque, pas a une contrib ajoutée en sus de cette version de Creload. Alors ou lui forcer dans le code proprement un DESC en lieu et place de ASC qu'il perdure a executer le bougre ? A vous lire les Zamis. Ce message a été modifié par ipolis - 30 Jul 2008, 11:17. -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
30 Jul 2008, 11:25
Message
#8
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Bon j'ai repris tout le code des deux pages concernées
le TRI Descendant est demandé aux endroits cohérents. Je ne vois pas pourquoi il ne le prend pas du tout en compte. Il execute le tri sur le bon champ, mais ignore le SORT demandé puisque par defaut on est en ASC si je ne m'abuse en Sql.. Merci d'eclairer ma lanterne. Je me dis qu'une 3eme page doit etre impliquée dans cette mécanique. Mais les appels includes ou fonctions ne me laissent rien envisager. Si vous avez une piste, faute d'avoir la solution, je suis grandement preneur pour finaliser mon besoin. A vous les studios, a vous Cognac Jay.. -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
6 Aug 2008, 23:41
Message
#9
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Je ne comprends pas pourquoi il maitient a faire un TRI ASCENDANT
dans les pages de codes ci-dessus. Le TRI se fait sur le bon champ mais a priori il ignore le SORT DESC puisqu'il fait un ASC. Pour les PROS du SQL le sort est toujours en ASC par defaut ? Merci de me donner des pistes . -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
7 Aug 2008, 01:28
Message
#10
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
le fait que tu travailles sur un fork d'oscommerce peut faire varier les résultats ...( fichiers modifiés ailleurs, gestion d'un cache supplémentaire, etc ...)
si Oneill passe par là, il pourra éventuellment te guider de manière plus efficace. En attendant, le code qui t'a été donné (sur la base d'une version classique d'oscommerce) est fonctionnel.je t'invite vivement à le tester d'ailleurs. bref, je bon courage. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
18 Aug 2008, 23:54
Message
#11
|
|
![]() Ceinture jaune+ OSC Groupe : Membres Messages : 81 Inscrit : 9-May 04 Lieu : Poitou-Charentes Membre no 2448 |
Merci pour tes encouragements.
Je me suis replongé dans la problématique. Je ne parviens toujours a faire q'un TRI par defaut en ASC. Pas moyen de lui flanquer un sort DESC fonctionnel. Je suis le code comme je peux, je ne vois pas ou a lieu l'inclusion ou l'appel a du code pour cela. Merci a vous tous, mais je ne peux pas encore tagger d'un RESOLU -------------------- MS2 2.3 FR avec des contribs ajoutées et du code, du code, du code.. :
Contribs: Module livraison par Pays et Zones, Autosauve, low stock,Product description, Google Position, seo, Google XML Sitemap - Admin 2.x, dhtmlcategories10, product-tabsv1-3_french, Products On Order 1.2 - Heb: Mutualisé OVH PRO |
|
|
11 Jul 2009, 21:29
Message
#12
|
|
|
Ceinture jaune OSC Groupe : Membres Messages : 54 Inscrit : 11-February 08 Membre no 20767 |
...
pom pom pom ... 1 an plus tard ... bonjour, je viens de me confronter à un problème similaire (sauf l'histoire ascendant descendant) : mes produits sont classés par noms ET par modèles, tout allait très bien sur la 1e page mais dès qu'on naviguait d'une page à l'autre, l'ordre du listing foutait le camp. pourtant j'avais bien modifié la lignes de index.php Code $HTTP_GET_VARS['sort'] = $i+1 . 'a'; $listing_sql .= " order by pd.products_name, p.products_model"; tout est rentré dans l'ordre quand j'ai aussi modifié cette ligne un peu plus bas Code $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : ''); en Code $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '') . ", p.products_model"; si ça peut aider quelqu'un... |
|
|
19 Jul 2009, 10:05
Message
#13
|
|
|
Ceinture blanche OSC Groupe : Membres Messages : 1 Inscrit : 19-July 09 Membre no 25809 |
Merci beaucoup!
commission de surendettement
- commission de surendettement, vous pouvez demander un dossier de surendettement. |
|
|
25 Mar 2010, 18:49
Message
#14
|
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 25 Inscrit : 27-November 07 Membre no 19900 |
Bonjour,
Avez-vous pu, 2 ans plus tard, réussir à avoir un order by desc dans product_listing_col.php? Si oui, pouvez-vous éclairer ma lanterne? |
|
|
26 Mar 2010, 12:48
Message
#15
|
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 25 Inscrit : 27-November 07 Membre no 19900 |
Je ne sais pas si c'est bien orthodoxe, mais j'ai trouvé une solution:
Remplacer dans index.php if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . 'd'; // $listing_sql .= " order by pd.products_name"; // classé par nom de produit $listing_sql .= " order by p.products_date_added desc"; // classé par date d'ajout par if ($column_list[$i] == 'PRODUCT_LIST_NAME') { $HTTP_GET_VARS['sort'] = $i+1 . ''; // $listing_sql .= " order by pd.products_name"; // classé par nom de produit $listing_sql .= " order by p.products_date_added desc"; // classé par date d'ajout Ca marche! |
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 20th June 2013 - 00:42 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |