Категории |
Сортировка товаровв каталоге товаров есть пункт выбора сколько товаров показывать на странице. там нет кнопки - показать все. также в этой же строке есть выбор сортировки ( по имени, по цене) можно ли сделать так чтобы сортировка по возрастании и по убыванию просто чередовалась от количества нажатия на кнопку, а не по 2 пункта.. Нужно добавить сортировку по производителю. в идеале чтобы сортировка могла идти по нескольким параметрам. Типа производитель и цена. Есть ли возможность в разных разделах каталога делать разные варианты сортировки?? все можно. сделал на скорую руку, проверен: <a href="{$LINK_PAGE}10">10</a>, <a href="{$LINK_PAGE}20">20</a>, <a href="{$LINK_PAGE}50">50</a>, <a href="{$LINK_PAGE}100">100</a> пишем: {$SELECT_ONPAGE} далее в /modules/product_listing.php после: $module->assign('LINK_sort_name_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc')); $module->assign('LINK_sort_name_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc')); $module->assign('LINK_sort_price_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc')); $module->assign('LINK_sort_price_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc')); добавляем: $on_page_item_string = ''; $on_page_item_string .= '<select class="f_select" onChange="top.location.href =this.options.value">'; $value_onpage = array ('10', '20', '50', '100'); $key = $value_onpage; $on_page_item_string .= '<option '.$str.' >' . TEXT_SORT_PRODUCT_ONPAGE. '</option>'; while ($key = os_db_fetch_array($value_onpage)) { if ($_SESSION == $key) { $str = 'selected="selected"'; } $on_page_item_string .= '<option '.$str.' VALUE="'.os_href_link(basename($PHP_SELF), 'on_page=' . $key.'&'.os_get_all_get_params(array('language', 'on_page')), $request_type).'">' . $key. '</option>'; $str = ''; } $hidden_get_variables = ''; reset($_GET); while (list($key, $value_onpage) = each($_GET)) { if ( ($key != 'on_page') && ($key != os_session_name()) && ($key != 'x') && ($key != 'y') ) { $hidden_get_variables .= os_draw_hidden_field($key, $value_onpage); } } $on_page_item_string .= '</select>'; $module->assign('SELECT_ONPAGE', $on_page_item_string . $hidden_get_variables); далее в lang.php перед define('TITLE', STORE_NAME); добавить:define('TEXT_SORT_PRODUCT_ONPAGE', 'Товаров на странице:'); для сортировки по убыванию и возрастанию можно сделать по данному примеру Благодарю! Попробую - отпишусь. У меня, правда, пока только 2.4.3... Еще не обновлялся... ну а для сортировки по имени и цене можно сделать следующее: $module->assign('NAVIGATION', $navigation); пишем: $module->assign('SELECT_SORT_OPEN', '<select class="f_select" onChange="top.location.href =this.options.value">'); $module->assign('SELECT_SORT_OPEN_OPTION_EMPTY', '<option>'); $module->assign('SELECT_SORT_OPEN_OPTION_1', '<option value="'.os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc').'">'); $module->assign('SELECT_SORT_OPEN_OPTION_2', '<option value="'.os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc').'">'); $module->assign('SELECT_SORT_OPEN_OPTION_3', '<option value="'.os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc').'">'); $module->assign('SELECT_SORT_OPEN_OPTION_4', '<option value="'.os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc').'">'); $module->assign('SELECT_SORT_CLOSE_OPTION', '</option>'); $module->assign('SELECT_SORT_CLOSE', '</select>'); а в самом шаблоне, в файле product_listing/product_listing_columns.html или в product_listing/product_listing_list.html (в зависимости от того какой используете) и вместо: <a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a> | <a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a> | <a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a> | <a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a> пишем: {$SELECT_SORT_OPEN} {$SELECT_SORT_OPEN_OPTION_EMPTY}{#text_sort#}{$SELECT_SORT_CLOSE_OPTION} {$SELECT_SORT_OPEN_OPTION_1}↑{#text_sort_name_asc#}{$SELECT_SORT_CLOSE_OPTION} {$SELECT_SORT_OPEN_OPTION_2}↓{#text_sort_name_desc#}{$SELECT_SORT_CLOSE_OPTION} {$SELECT_SORT_OPEN_OPTION_3}↑{#text_sort_price_asc#}{$SELECT_SORT_CLOSE_OPTION} {$SELECT_SORT_OPEN_OPTION_4}↓{#text_sort_price_desc#}{$SELECT_SORT_CLOSE_OPTION} {$SELECT_SORT_CLOSE} готово, можно пользоваться. проверял с сортировкой из предыдущего поста, обе сортировки работают отлично, дополняя друг друга. идея для реализации была взята здесь Выпадающее меню валют только мною не реализована до конца, но что-то пока не могу увидеть решение для проверки например если выбрана какая-то сортировка, то по умолчанию, что-бы показывало её в <select ... вот ещё один вариант для выпадающего списка сортировок: $module->assign('LINK_sort_name_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc')); $module->assign('LINK_sort_name_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc')); $module->assign('LINK_sort_price_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc')); $module->assign('LINK_sort_price_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page','sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc')); заменяем: // -- SORTING -- // if ((!isset ($_GET) && $_GET =='') && (!isset ($_GET) && $_GET =='')){ $module->assign('name_and_price_sorting','1'); $module->assign('LINK_sort_name_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc')); $module->assign('LINK_sort_name_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc')); $module->assign('LINK_sort_price_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc')); $module->assign('LINK_sort_price_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc')); } else { $module->assign('name_and_price_sorting','0'); $module->assign('LINK_sort_delete',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')))); if ((os_not_null($_GET) && $_GET=='name') && (os_not_null($_GET) && $_GET=='asc')){ $module->assign('show_name_direction_asc','1'); $module->assign('LINK_sort_name_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc')); } else {$module->assign('show_name_direction_asc','0'); $module->assign('LINK_sort_name_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=asc')); } if ((os_not_null($_GET) && $_GET=='name') && (os_not_null($_GET) && $_GET=='desc')){ $module->assign('show_name_direction_desc','1'); $module->assign('LINK_sort_name_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc')); } else {$module->assign('show_name_direction_desc','0'); $module->assign('LINK_sort_name_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=name&direction=desc')); } if ((os_not_null($_GET) && $_GET=='price') && (os_not_null($_GET) && $_GET=='asc')){ $module->assign('show_price_direction_asc','1'); $module->assign('LINK_sort_price_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc')); } else {$module->assign('show_price_direction_asc','0'); $module->assign('LINK_sort_price_asc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=asc')); } if ((os_not_null($_GET) && $_GET=='price') && (os_not_null($_GET) && $_GET=='desc')){ $module->assign('show_price_direction_desc','1'); $module->assign('LINK_sort_price_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc')); } else {$module->assign('show_price_direction_desc','0'); $module->assign('LINK_sort_price_desc',os_href_link(basename($PHP_SELF),os_get_all_get_params(array ('page', 'sort', 'direction', 'info','x','y')) . 'sort=price&direction=desc')); } } // -- END SORTING -- // далее в шаблоне, в файле product_listing/product_listing_columns.html или в product_listing/product_listing_list.html (в зависимости от того какой используете) вместо: <a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a> | <a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a> | <a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a> | <a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a> ставим: {if $name_and_price_sorting =='1'}<div class="body_type_title " style="width:auto;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{else} <div class="body_type_title " style="width:auto;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{/if} {#text_sort#} {if $show_name_direction_asc == '1'}<a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a>{/if} {if $show_name_direction_desc == '1'}<a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a>{/if} {if $show_price_direction_asc == '1'}<a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a>{/if} {if $show_price_direction_desc == '1'}<a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a>{/if} {if $name_and_price_sorting =='1'}<ul class="body_type_display" style="position:absolute;background:#fff;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{else} <ul class="body_type_display" style="position:absolute;background:#fff;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{/if} {if $name_and_price_sorting =='0'}<li><a href="{$LINK_sort_delete}">→ delete</a></li>{/if} {if $name_and_price_sorting =='1'} <li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a></li> <li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a></li> <li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a></li> <li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a></li> {/if} {if $show_name_direction_asc == '1'}<li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#} - SELECTED</a></li>{/if} {if $show_name_direction_desc == '1'}<li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#} - SELECTED</a></li>{/if} {if $show_price_direction_asc == '1'}<li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#} - SELECTED</a></li>{/if} {if $show_price_direction_desc == '1'}<li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#} - SELECTED</a></li>{/if} {if $show_name_direction_asc == '0'}<li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a></li>{/if} {if $show_name_direction_desc == '0'}<li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a></li>{/if} {if $show_price_direction_asc == '0'}<li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a></li>{/if} {if $show_price_direction_desc == '0'}<li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a></li>{/if} {if $name_and_price_sorting =='1'}</ul>{else}</ul>{/if} {if $name_and_price_sorting =='1'}</div>{else}</div>{/if} и теперь что-бы оживить все это нада в файле includes/header.php между тегами <head ... вставить: <script type="text/javascript" src="jscript/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.body_type_display').css("display","none"); $(".body_type_title").hover(function(){ $(".body_type_display").fadeIn(); },function() { $(".body_type_display").css("display", "none"); }); }); </script> но есть один момент: я не вкурсе на каких страницах данная сортировка используеться, поэтому подключал для всех страниц сайта, кто помнит где данная сортировка используется, просьба подсказать эти страницы, дабы jquery выводился только там - где он необходим. ну а стили и классы из примера каждый под себя "подгонит" как добавить сортировку товаров в выводе результатов расширеного поиска? что никто не знает? :-[ Кто-то знает. Но длинно описывать не совсем простой процесс - не слишком интересно. Хочу вывести сортировку в результатах расширеного поиска, в advanced_search_result.php вставляю код который приведен здесь выше {if $name_and_price_sorting =='1'}<div class="body_type_title " style="width:auto;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{else} <div class="body_type_title " style="width:auto;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{/if} {#text_sort#} {if $show_name_direction_asc == '1'}<a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a>{/if} {if $show_name_direction_desc == '1'}<a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a>{/if} {if $show_price_direction_asc == '1'}<a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a>{/if} {if $show_price_direction_desc == '1'}<a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a>{/if} {if $name_and_price_sorting =='1'}<ul class="body_type_display" style="position:absolute;background:#fff;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{else} <ul class="body_type_display" style="position:absolute;background:#fff;border:#eb7800 solid 1px; display:inline-block; padding:.2em .5em">{/if} {if $name_and_price_sorting =='0'}<li><a href="{$LINK_sort_delete}">→ delete</a></li>{/if} {if $name_and_price_sorting =='1'} <li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a></li> <li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a></li> <li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a></li> <li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a></li> {/if} {if $show_name_direction_asc == '1'}<li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#} - SELECTED</a></li>{/if} {if $show_name_direction_desc == '1'}<li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#} - SELECTED</a></li>{/if} {if $show_price_direction_asc == '1'}<li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#} - SELECTED</a></li>{/if} {if $show_price_direction_desc == '1'}<li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#} - SELECTED</a></li>{/if} {if $show_name_direction_asc == '0'}<li><a href="{$LINK_sort_name_asc}">↑{#text_sort_name_asc#}</a></li>{/if} {if $show_name_direction_desc == '0'}<li><a href="{$LINK_sort_name_desc}">↓{#text_sort_name_desc#}</a></li>{/if} {if $show_price_direction_asc == '0'}<li><a href="{$LINK_sort_price_asc}">↑{#text_sort_price_asc#}</a></li>{/if} {if $show_price_direction_desc == '0'}<li><a href="{$LINK_sort_price_desc}">↓{#text_sort_price_desc#}</a></li>{/if} {if $name_and_price_sorting =='1'}</ul>{else}</ul>{/if} {if $name_and_price_sorting =='1'}</div>{else}</div>{/if} подскажите ? Хочу вывести сортировку в результатах расширеного поиска, в advanced_search_result.php вставляю код который приведен здесь выше теперь только не пойму куда вставлять код подскажите ? 1. Не понятно, Вы код вставляете или только думаете, куда вставлять? 2. Если только думаете, то попробуйте вставлять в разные места. Скорее всего в любом случае ничего хорошего не выйдет. 3. Этот код сам по себе ужасно кривой. 4. Этот код сам по себе никак не подходит для вставки в указанный файл. ну понятно, допустим я возьму другой код(их тут несколько в теме) куда его вставить? |
|