Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » Как сделать разворачивающую сортировку новостей?

Как сделать разворачивающую сортировку новостей?


     20.11.2014    Все вопросы » Ламерские вопросы    1958

вопрос
Всем доброго времени суток, скажите пожалуйста, реально ли сделать выдвижную сортировку новостей?
Что-то такого рода как на скриншоте.

Ответа пока нет


8 комментариев

FastFud
Юзер

FastFud - 20 ноября 2014 15:51 -

/engine/modules/functions.php найти
    foreach ( $soft_by_array as $value ) {
        $sort[] = $value['image'] . "<a href=\"#\" onclick=\"dle_change_sort('{$value['value']}','{$value['direction']}'); return false;\">" . $value['name'] . "</a>";
    }
    $sort = "<form name=\"news_set_sort\" id=\"news_set_sort\" method=\"post\" action=\"\" >" . $lang['sort_main'] . "&nbsp;" . implode( " | ", $sort );
    $sort .= <<<HTML
<input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}" />
<input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}" />
<input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}" />
<input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}" />
<script type="text/javascript">
<!-- begin
function dle_change_sort(sort, direction){

  var frm = document.getElementById('news_set_sort');

  frm.dlenewssortby.value=sort;
  frm.dledirection.value=direction;

  frm.submit();
  return false;
};

// end -->
</script></form>
HTML;
и заменить на
    foreach ( $soft_by_array as $value ) {
        
        $sort[] = $value['image'] . "<option data-value=\"{$value['value']}\" data-direction=\"{$value['direction']}\">" . $value['name'] . "</option>";
    }
    
    $sort = "<form name=\"news_set_sort\" id=\"news_set_sort\" method=\"post\" action=\"\" ><select id=\"dle_sort\"><option selected=\"selected\">" . $lang['sort_main'] . "</option>" . implode( " ", $sort );
    
    $sort .= <<<HTML
<input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}" />
<input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}" />
<input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}" />
<input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}" />
<script type="text/javascript">
<!-- begin

    $('#dle_sort').change(function(){
        var value = $(this).find(':selected').data('value'),
        direction = $(this).find(':selected').data('direction');
        var frm = $('#news_set_sort');
        frm.find('#dlenewssortby').val(value);
        frm.find('#dledirection').val(direction);
        frm.submit();
    });
    
// end -->
</script></form>
HTML;

backtoearth
Юзер

backtoearth - 20 ноября 2014 18:14 -

FastFud, И снова тебе огромное спасибо!

Yarik
Юзер

Yarik - 21 ноября 2014 03:48 -

FastFud,а как просто добавить стили для активной (вибраной) силки в место картинки?

backtoearth
Юзер

backtoearth - 21 ноября 2014 03:54 -

пустяк, но все же спрошу, а реально ли сделать так, чтоб оно оставалось в положении которое выбрал "а не сортировать по:"

FastFud
Юзер

FastFud - 21 ноября 2014 12:20 -

        $number_min = 1;
foreach ( $soft_by_array as $value ) {
        $number = $number_min++;
        $sort[] = $value['image'] . "<option data-value=\"{$value['value']}\" data-direction=\"{$value['direction']}\" value=\"" . $number . "\">" . $value['name'] . "</option>";
    }
    
    $sort = "<script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js\"></script><form name=\"news_set_sort\" id=\"news_set_sort\" method=\"post\" action=\"\" ><select id=\"dle_sort\"><option selected=\"selected\">" . $lang['sort_main'] . "</option>" . implode( " ", $sort );
    
    $sort .= <<<HTML
<input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}" />
<input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}" />
<input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}" />
<input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}" />
<script type="text/javascript">
<!-- begin

    if($.cookie('remember_select') != null) {
        $('#dle_sort option[value="' + $.cookie('remember_select') + '"]').attr('selected', 'selected');
    }
    $('#dle_sort').change(function(){
    
        $.cookie('remember_select', $(this).find(':selected').val(), { expires: 90, path: '/'});
    
        value = $(this).find(':selected').data('value'),
        direction = $(this).find(':selected').data('direction'),
        frm = $('#news_set_sort');
        frm.find('#dlenewssortby').val(value);
        frm.find('#dledirection').val(direction);
        frm.submit();
    });
    
// end -->
</script></form>
HTML;

backtoearth
Юзер

backtoearth - 23 ноября 2014 00:35 -

FastFud,
Спасибо огромное!

backtoearth
Юзер

backtoearth - 19 февраля 2015 03:49 -

Подскажите пожалуйста, как вообще после всего этого убрать строчку "сортировать по" ведь при нажатии на неё ничего не происходит и можно запутаться...

LafLer
Гости

LafLer - 22 февраля 2015 14:48 -

FastFud,
а как сделать чтобы у каждого поля был свой селект, чтобы при нажатии на дату можно было выбрать: по дате добавляния, по дате обновления и по дате редактирования

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

Похожие вопросы

наверх