Сортировка товара как в админке Есть решение

Вот клевое решение:

http://www.webasyst.ru/help/1288/sortirovka-tovara...

Но мне надо чтобы было в точь точь как в админке в настройке категорий, все пункты кроме вручную конечно же, как это сделать?

Т.е. как бы надо чтобы было самые дешевые и самые дорогие, в общем как стоит в админке, то и отображается, если в ручную, то стандартом популярные и новые...

1 ответ

  • 1
    Афанасий 26 марта 2015 04:44 # Решение

    Ели сам за мудрил как это сделать:

    {if !empty($sorting)}
    <pre>
    {$sort_fields = ['rating' => '[`Customer rating`]', 'total_sales' => '[`Bestsellers`]', 'price' => '[`Price`]', 'name' => '[`Name`]', 'create_datetime'=>'[`Date added`]', 'stock' => '[`In stock`]']}
    {$sort_default = ['rating' => 'asc', 'total_sales' => 'asc', 'price' => 'asc', 'name' => 'asc', 'create_datetime'=>'asc', 'stock' => 'asc']}
    {$sort_default2 = ['rating' => 'desc', 'total_sales' => 'desc', 'price' => 'desc', 'name' => 'desc', 'create_datetime'=>'desc', 'stock' => 'desc']}
    {if !isset($active_sort)}
    {$active_sort = $wa->get('sort', 'create_datetime')}
    {/if}
    [`Sort by`]:
    <select id="product-sort">
    <option {if !$active_sort} class="selected" selected{/if} value="{$wa->currentUrl(0, 1)}">[`New & Popular`]</option>

    {foreach $sort_fields as $sort => $name}
    <option value="?sort={$sort}&order={$sort_default2[$sort]}" {if $active_sort == $sort && $wa->get("order") != $sort_default[$sort] } class="selected" selected{/if}>{$name} &uarr; (Я-А)</option>
    <option value="?sort={$sort}&order={$sort_default[$sort]}" {if $active_sort == $sort && $wa->get("order") != $sort_default2[$sort] } class="selected" selected{/if}>{$name} &darr; (А-Я)</option>
    {/foreach}
    </select></pre>

    <pre><script type="text/javascript">
    $("#product-sort").change(function(){
    location.assign($(this).val());
    });
    </script></pre>
    {/if}



    Если надо что-то в одном экземпляре вывести то просто через условия:

    {if условие}

    <option value="?sort={$sort}&order={$sort_default2[$sort]}" {if $active_sort == $sort && $wa->get("order") != $sort_default[$sort] } class="selected" selected{/if}>{$name} &uarr; (Я-А)</option>
    <option value="?sort={$sort}&order={$sort_default[$sort]}" {if $active_sort == $sort && $wa->get("order") != $sort_default2[$sort] } class="selected" selected{/if}>{$name} &darr; (А-Я)</option>

    {else}

    <option value="?sort={$sort}&order={$sort_default2[$sort]}" {if $active_sort == $sort && $wa->get("order") != $sort_default[$sort] } class="selected" selected{/if}>{$name} &uarr; (Я-А)</option>

    {/if}


    Название также через условия можно определить, допустим заместо слова цена, одному Самые дешевые, другому Самые дорогие, я не стал пока замарачиваться, сделал стрелками и скобочки для пояснения, а то с этими стрелочками сам запутался что есть, что :))))

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите