Сортировка выпадающим спискомДелаем красивую и удобную сортировку списком (при выборе опции сразу же срабатывает ссылка, никаких дополнительных кнопок жать не нужно). Выглядит так:
shopcms-sort.jpg 22.84К
101 Количество загрузок:Собственно, нужно полностью заменить функцию _sortSetting в следующих файлах:
core/includes/category.php
core/includes/category_search_result.php
core/includes/search_simple.php
core/includes/pricelist.php
Для этого ищем в перечисленных файлах строчку:
function _sortSetting, вся функция выглядит примерно так (не во всех файлах она абсолютно идентична этой):
function _sortSetting( &$smarty, $urlToSort )
{
$sort_string = STRING_PRODUCT_SORT;
$sort_string = str_replace( "{ASC_NAME}", "[url="%22.$urlToSort.%22&sort=name&direction=ASC"]".STRING_ASC."[/url]", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "[url="%22.$urlToSort.%22&sort=name&direction=DESC"]".STRING_DESC."[/url]", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "[url="%22.$urlToSort.%22&sort=Price&direction=ASC"]".STRING_ASC."[/url]", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "[url="%22.$urlToSort.%22&sort=Price&direction=DESC"]".STRING_DESC."[/url]", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "[url="%22.$urlToSort.%22&sort=customers_rating&direction=ASC"]".STRING_ASC."[/url]", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "[url="%22.$urlToSort.%22&sort=customers_rating&direction=DESC"]".STRING_DESC."[/url]", $sort_string );
$smarty->assign( "string_product_sort", html_amp($sort_string));
}
и заменяем ВСЮ эту функцию на такую:
function _sortSetting( &$smarty, $urlToSort ) {
$sort_arr = array("Популярные" => array("sort" => "viewed_times", "direction" => "DESC"), "Новинки" => array("sort" => "date_added", "direction" => "DESC"), "Цена - Высокая" => array("sort" => "Price", "direction" => "DESC"), "Цена - Низкая" => array("sort" => "Price", "direction" => "ASC"), "Хиты продаж" => array("sort" => "items_sold", "direction" => "DESC"), "Наличие" => array("sort" => "in_stock", "direction" => "DESC"));
if(CONF_USE_RATING == 1) {
$sort_arr["Популярные"]["sort"] = 'customers_rating';
}
if (isset($_GET["sort"]) && isset($_GET["direction"]))
$sort_url = '&sort='.$_GET["sort"].'&direction='.$_GET["direction"];
$sort_string = 'Сортировка: <select onChange="if(this.options[this.selectedIndex].value!=\'\'){window.location=this.options[this.selectedIndex].value}else{this.options[selectedIndex=0];}">';
foreach ($sort_arr as $key => $val) {
$sort_string .= '<option value="'.$urlToSort;
foreach ($val as $nn => $dd)
$sort_string .= '&'.$nn.'='.$dd;
$sort_string .= '"';
if ($val["sort"] == $_GET["sort"] && $val["direction"] == $_GET["direction"])
$sort_string .= ' selected';
$sort_string .= '>'.$key.'</option>';
}
$sort_string .= '</select>';
$smarty->assign( "string_product_sort", html_amp($sort_string));
}
Затем нужно выполнить
ПУНКТ 2 из поста
Админа (см. выше в шапке) - про добавление
date_added.
Текст и варианты сортировок можете менять на свои по аналогии (см. массив
$sort_arr).
Сообщение отредактировал micehide: 19 November 2012 - 07:37 PM
перезалит скриншот