Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Ламерские вопросы Как сделать разворачивающую сортировку новостей?

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


     20.11.2014    Ламерские вопросы    1486

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

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


Комментарии пользователей (8)

FastFud
50

1599 | 588

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
12 | 1

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

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

Yarik
3

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

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

backtoearth
12 | 1

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

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

FastFud
50

1599 | 588

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
12 | 1

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

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

backtoearth
12 | 1

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

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

LafLer
43 | 3

LafLer - 22 февраля 2015 14:48 - Гости

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

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

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