Фильтр модуля Фотоальбомы

Голоса: +1
Здравствуйте!

Подскажите возможность реализации такой идеи!

Поскольку в модуле Фотоальбомы всего 2 фильтра (что очень мало) как реализовать следующее всего 2 варианта

1. Совмещение условных операторов в шаблоне со стилями а именно например если ID категории такой то, то option  value например значение фильтра 2,5,10, 12 display: none; . Т.е. ввиду нехватки фильтров приходиться все значения вносить в 1 фильтр, и чтобы было красиво и граммотно то надо лишнее убирать где это необходимо

2. если первое не осуществимо то как в CSS сделать такое <option style="display: none;" value="11"></option> Т.е. скрыть вообще значения напрмиер с 1 по 15
| Автор: | Категория: Фотоальбомы
В дополнение чтобы не делать новый вопрос возможно ли сделать вот так http://c2n.me/3j4UfTc фильтр, т.е. в виде блока а не списка, т.е. скрываю согласно скрипта ряд значений и оставляю красивый фильтр
ранее обсуждалось здесь - http://www.ucoz.ru/qa/index.php/14711
Не совсем то, необходимо из раскрывающегося списка фильтра сделать список множественного выбора

Ответов: 3

голоса: +3
 
Лучший ответ

Скрыть определенный value можно так

<script>
$(document).ready(function() {
    $("select[name='filter1'] option[value='2']").css('display', 'none');
});
</script>

В данном случае будет скрыт option с value 2 у фильтра 1. Соответственно, если этот код обернуть условиями, т.е. в каких конкретно категориях нужно скрывать то или иное, то вы получите то, что хотите.

Устанавливать перед </body> в шаблоне категорий альбома

| Автор:
Выбор ответа лучшим | | Автор: Yuri_Geruk

Не подскажите можно ли тут указывать диапазон значений или перечислять конкретный ряд значений

option[value='2']

Можно либо так

$("select[name='filter1'] option[value='2'], select[name='filter1'] option[value='3'], select[name='filter1'] option[value='4']").css('display', 'none');

Либо для удобства в цикле

<script>
$(document).ready(function() {
  for (var i = 1; i <= 100; i++) {
    if ( i==2 || i==4 || i==7 || i==30)
      $("select[name='filter1'] option[value="+i+"]").css('display', 'none');
  };
});
</script>

тут 100 - это сколько у вас всего значений указываете, ну а с i по аналогии. 

UPD Но если из 100 категорий нужно чтоб осталось только 4, то проще чуть-чуть переписать скрипт, чем перечислять 96 цифр))

Если скрипт рабочий - буду очень вам благодарен. У меня тоже похожая проблема была. Но, я пока решил другим путём. Единственно, при плохом интернете срипты могут подвести. Было бы разумнее удачно выстроить разделы и категории в них.
$("select[name='filter1'] option:not([value='2'], [value='4'], [value='6'])").css('display', 'none');

Скроет все option, кроме тех, у которых value = 2, 4, 6

Наверное Вы правы пока что 79 значений но необходимо выводить в определенной категории  5-7 значений не подскажите как переделать и буду тестировать
<?if($URI_ID$ == 'phCat10')?>
<script>
$(document).ready(function() {
    $("select[name='filter1'] option:not([value='2'], [value='4'])").css('display', 'none');
});
</script>
<?endif?>

1 строчка означает, что скрипт сработает только в 10 категории. Такое же условие ставите, например для 15 категории (phCat15)

2 описано выше

А нет идеи как сделать из выпадающего списка именно просто множественный выбор чтобы сразу все значения были видны а не выпадающий список

Как вариант

$("select[name='filter1']").attr('multiple', true).css({'height':'200px','width':'200px'});

Где width и height, как вы понимаете, ширина и высота

В продолжение данной темы хотелось бы уточнить где у меня допущена ошибка

Фильтр имеет 90 значений, для 1 раздела и 50 категорий, в каждой категории хочу выводить свои значения, вот то что было тут http://www.ucoz.ru/qa/index.php/32187/%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F-%D1%84%D0%BE%D1%82%D0%BE%D0%B0%D0%BB%D1%8C%D0%B1%D0%BE%D0%BC%D1%8B не работает как надо

 

вроде фильтрует но в самом списке не сохраняет выбранное значение  вот ссылка на страницу http://www.nosokopt.ru/photo/katalog_produkcii/oao_gamma_g_orel_muzhskie_noski/13-1-0-0-10-0-31

т.е. в списке постоянно значение - фильтр по сезону -

 

Голоса: +1

Здравствуйте! Вот попробуйте сделать так 

<?if($FILTER1_VALUE$='1' || $FILTER1_VALUE$='2'  || $FILTER1_VALUE$='3')?> ТУТ КОД ЧТО БУДЕТ ПОКАЗАН ЕСЛИ ФИЛЬТР РАВЕН 1-3<?else?> ТУТ КОД ЧТО БУДЕТ ПОКАЗАН В СЛУЧАЕ ЕСЛИ ФИЛЬТР РАВЕН ДРУГОМУ ЧЕСЛУ <?endif?>

Чтобы добавить другие значения до 15 добавте вот такую строчку 

 || $FILTER1_VALUE$='1' 

Заменив 1 на нужное вам 4 ,5 , 15 и т.д.

Если вам некоторые номера не нужны просто удалити из кода вот такую строчку 

$FILTER1_VALUE$='1'  || 

с ненужным значением 

| Автор:
Указанный Вами системный код не работает в шаблоне Страница со списком фотографий, он работает только на странице с полной фото, поэтому не совсем актуально
Голоса: +1
Не совсем понятен вопрос (грамотен?). Если в шаблон категории (страница со списком фотографий альбома) вставить $FILTER1_MENU$ и $FILTER2_MENU$, то в они и будут работать в категории и никаких больше условий писать не надо. Кроме того у нас есть $SORTING_MENU$. И поверьте, этого в избытке будет для любого альбома достаточно. Вставить фильтры можно как вам удобнее, или перед $BODY$ или после.
Успехов.
| Автор:
вы не поняли имеется $FILTER1_MENU$  у него 100 значений для всех категорий, но для определенной категории необходимо выводить определенные значения а остальные не должны быть видны, сортировка не подходит. Например такие значения

1 ступень - Носки делятся на 2 ступень Детские, женские, мужские, вторая ступень делиться на сезон в итоге вот так получается http://c2n.me/3j4LWV2 и вот например в альбоме Детские носки мне не  надо чтобы в фильтре выпадало все подряд а именно только касательно детских носков , т.е. 4 значения
...