Yikes! Thanks for the report. Here's an update to the ppCountDropdown function in /includes/functions/extra_functions/products_pagination_functions.php that corrects the problem. Note that two extra functions have been "broken out":
Code:
function ppCountDropdown ($numItems) {
global $getoption_set, $get_option_variable, $cPath; // Used on product-listing/index page
$dropdown = '';
$countArray = explode(',', PRODUCTS_PAGINATION_COUNT_VALUES);
if (count($countArray) > 0) {
$pageArray = array();
for ($i=0, $n=sizeof($countArray); $i<$n; $i++) {
if ($countArray[$i] == '*') {
$pageArray[] = array( 'id' => 'all', 'text' => PP_TEXT_ALL );
} elseif ($numItems > $countArray[$i]) {
$pageArray[] = array( 'id' => $countArray[$i], 'text' => $countArray[$i]);
}
}
$whichCount = (isset($_GET['pagecount'])) ? $_GET['pagecount'] : '';
$formPage = ($_GET['main_page'] == FILENAME_ADVANCED_SEARCH_RESULT) ? FILENAME_ADVANCED_SEARCH : $_GET['main_page']; /*v1.4.2-c-lat9*/
$dropdown = '<div class="pp_count">' . zen_draw_form('pp_count_form', zen_href_link($_GET['main_page']), 'get') . zen_hide_session_id() . zen_draw_hidden_field ('main_page', $_GET['main_page']);
$hiddenVar = ppHiddenVarsList(); /*v1.4.2-c-lat9: Moved to separate function */
if ($_GET['main_page'] == FILENAME_DEFAULT) {
if (!$getoption_set) {
$dropdown .= zen_draw_hidden_field('cPath', $cPath);
} else {
// draw manufacturers_id
$dropdown .= zen_draw_hidden_field($get_option_variable, $_GET[$get_option_variable]);
}
if ($get_option_variable != 'manufacturers_id' && isset($_GET['manufacturers_id']) && $_GET['manufacturers_id'] > 0) {
$hiddenVar[] = 'manufacturers_id';
}
}
$dropdown .= ppCreateHiddenInputs ($hiddenVar); /*v1.4.2-c-lat9: Moved to separate function */
$dropdown .= PP_TEXT_ITEMS_PER_PAGE . zen_draw_pull_down_menu ('pagecount', $pageArray, $whichCount, 'onchange="this.form.submit();"') . '</form></div>';
}
return $dropdown;
}
function ppHiddenVarsList() {
return explode (',', 'disp_order,sort,filter_id,music_genre_id,record_company_id,typefilter,keyword,search_in_description,categories_id,inc_subcat,manufacturers_id,pfrom,pto,dfrom,dto,alpha_filter_id'); /*v1.4.2-c-lat9*/
}
function ppCreateHiddenInputs ($hiddenVar) {
$inputVars = '';
foreach ($hiddenVar as $varName) {
$inputVars .= (isset($_GET[$varName]) ? zen_draw_hidden_field ($varName, $_GET[$varName]) : '');
}
return $inputVars;
}
For the full correction, you'll need to replace /include/templates/YOUR_TEMPLATE/templates/tpl_modules_listing_display_order.php with the following:
Code:
<?php
/**
* Module Template
*
* @package templateSystem
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: tpl_modules_listing_display_order.php 3369 2006-04-03 23:09:13Z drbyte $
*/
?>
<?php
// NOTE: to remove a sort order option add an HTML comment around the option to be removed
?>
<div id="sorter">
<label for="disp-order-sorter"><?php echo TEXT_INFO_SORT_BY; ?></label>
<?php
echo zen_draw_form('sorter_form', zen_href_link($_GET['main_page']), 'get');
echo zen_draw_hidden_field('main_page', $_GET['main_page']);
echo zen_draw_hidden_field('pagecount', $_GET['pagecount']);
// echo zen_draw_hidden_field('disp_order', $_GET['disp_order']);
/*-bof-product_pagination-lat9*/
if (function_exists('ppHiddenVarsList') && function_exists('ppCreateHiddenInputs')) {
echo ppCreateHiddenInputs (ppHiddenVarsList ());
}
/*-eof-product_pagination-lat9*/
echo zen_hide_session_id();
?>
<select name="disp_order" onchange="this.form.submit();" id="disp-order-sorter">
<?php if ($disp_order != $disp_order_default) { ?>
<option value="<?php echo $disp_order_default; ?>" <?php echo ($disp_order == $disp_order_default ? 'selected="selected"' : ''); ?>><?php echo PULL_DOWN_ALL_RESET; ?></option>
<?php } // reset to store default ?>
<option value="1" <?php echo ($disp_order == '1' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_NAME; ?></option>
<option value="2" <?php echo ($disp_order == '2' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_NAME_DESC; ?></option>
<option value="3" <?php echo ($disp_order == '3' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_PRICE; ?></option>
<option value="4" <?php echo ($disp_order == '4' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_PRICE_DESC; ?></option>
<option value="5" <?php echo ($disp_order == '5' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_MODEL; ?></option>
<option value="6" <?php echo ($disp_order == '6' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_DATE_DESC; ?></option>
<option value="7" <?php echo ($disp_order == '7' ? 'selected="selected"' : ''); ?>><?php echo TEXT_INFO_SORT_BY_PRODUCTS_DATE; ?></option>
</select></form></div>
I'll get v1.4.2 submitted to the Plugins area later this week.
Bookmarks