Александр Иващенко

Александр Иващенко

С нами с 04 декабря 2012; Место в рейтинге пользователей: #522
Александр Иващенко
01 апреля 2018, 17:34
0
заменил. теперь:
$.cookie('filters_condition')
выдает:
"{"tv_pol_1":"checked"}"
я перехожу с dev.nosi.ru/noski/
на dev.nosi.ru/majki-futbolki/
и
$.cookie('filters_condition')
выдает
"{"mse2_tv_pol_1":"checked","мужской":"checked"}"
Александр Иващенко
01 апреля 2018, 17:28
0

я видимо чего то не понимаю. спасибо, что помогаете
вот код js:
$(document).on('change', '.filter-class', function(e) {
	//В примере все состояния фильтров хранятся в одной переменной куков 'filters_condition' в json-формате
	var filters_condition = $.cookie('filters_condition');
			
	//Смотрим, существует ли она уже, чтобы не затирать другие значения
	if (typeof filters_condition !== 'undefined' && filters_condition !== null) {
		var params = filters_condition != "" ? $.parseJSON(filters_condition) : {};
	}
	else {
		var params = {};
	}
	
	var filter_condition;
			
	if ($(this).is(':checked')) {
		filter_condition = 'checked';
	}
	else {
		filter_condition = 'not_checked';
	}

	//Уникальный атрибут, по которому будет находиться фильтр, в моем случае - name
	//Если есть риск существования одинаковых значений инпутов/селекторов в разных формах, то можно переназначить на id
	params[$(this).attr('value')] = filter_condition;
		
	$.cookie('filters_condition', JSON.stringify(params));
});
вот чанк tpl.mFilter2.filter.checkbox:
<label for="mse2_[[+table]]_[[+filter]]_[[+idx]]" class="[[+disabled]]">
{var $filters_condition = $.cookie['filters_condition'] | fromJSON}
{var $filter_condition = $filters_condition[$table ~ '_' ~ $filter]}

	<input type="checkbox" {$filter_condition == 'checked' ? 'checked' : ''} class="filter-class" name="[[+table]]_[[+filter]]" id="mse2_[[+table]]_[[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup>
</label>
Александр Иващенко
01 апреля 2018, 17:18
0
ничего не изменилось
<label for="mse2_[[+table]]_[[+filter]]_[[+idx]]" class="[[+disabled]]">
{var $filters_condition = $.cookie['filters_condition'] | fromJSON}
{var $filter_condition = $filters_condition[$table ~ '_' ~ $filter]}

	<input type="checkbox" {$filter_condition == 'checked' ? 'checked' : ''} class="filter-class" name="[[+table]]_[[+filter]]" id="mse2_[[+table]]_[[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup>
</label>
Александр Иващенко
01 апреля 2018, 17:10
0
вот содержимое чанка tpl.mFilter2.filter.checkbox
<label for="mse2_[[+table]]_[[+filter]]_[[+idx]]" class="[[+disabled]]">
{var $filters_condition = $.cookie['filters_condition'] | fromJSON}
{var $filter_condition = $filters_condition[$filter_key]}
	<input type="checkbox" {$filter_condition == 'checked' ? 'checked' : ''} class="filter-class" name="[[+table]]_[[+filter]]" id="mse2_[[+table]]_[[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup>
</label>
который у меня тут:
[[!mFilter2?
&class=`msProduct`

&tplFilter.row.default=`tpl.mFilter2.filter.checkbox`

]]
Александр Иващенко
01 апреля 2018, 17:03
0
подлючил библиотеку, что вы дали и не работает.
checked не передается.
а куда нужно писать:
{var $filters_condition = $.cookie['filters_condition'] | fromJSON}

//$filter_key - переменная чанка mFilter2, содержащая name фильтра
{var $filter_condition = $filters_condition[$filter_key]}
это я понял куда (tpl.mFilter2.filter.checkbox):
//В нужном месте инпута/селектора выводим состояние:
{$filter_condition == 'checked' ? 'checked' : ''}
Александр Иващенко
01 апреля 2018, 17:00
0
так текущий код
$.cookie('filters_condition')
выдает
"{"tv|pol":"","mse2_tv|pol_1":"checked","mse2_tv_pol_0":"checked"}"
Александр Иващенко
01 апреля 2018, 15:23
0
спасибо, исправил ошибки.
{$filter_condition == 'checked' ? 'checked' : ''}
ничего не добавляет.
Александр Иващенко
01 апреля 2018, 15:14
0
у меня тут tpl.mFilter2.filter.checkbox так:
<label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
{var $filters_condition = $.cookie['filters_condition'] | fromJSON}

{var $filter_condition = $filters_condition[$filter_key]}
	<input type="checkbox" {$filter_condition == 'checked' ? 'checked' : ''} class="filter-class" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup>
</label>
Александр Иващенко
01 апреля 2018, 15:13
0
наверное я как то 3 шаг не делаю правильно
Александр Иващенко
01 апреля 2018, 15:09
0
посмотрите тут я сделал так как написали но после перехода по ссылке категории на пример с обувь в одежду у меня обнуляется значение… я тут скрипт написал ваш я не понимаю что то а есил просто на той же странице убираю /?tv|pol=мужской и нажимаю enter то переменная остается
Александр Иващенко
01 апреля 2018, 15:07
0
просто переменную объявить нужно?
Александр Иващенко
01 апреля 2018, 15:01
0
main.js:31 Uncaught ReferenceError: current_condition is not defined
ругается на:
//Уникальный атрибут, по которому будет находиться фильтр, в моем случае - name
	//Если есть риск существования одинаковых значений инпутов/селекторов в разных формах, то можно переназначить на id
	params[$(this).attr('value')] = current_condition;
Александр Иващенко
01 апреля 2018, 14:35
0
помогите новичку пожалуйста
Александр Иващенко
30 марта 2018, 16:23
-1
можете дать ссылку на сайт где это реализовано? у меня не получается что то
Александр Иващенко
13 марта 2018, 01:44
0
Кто то еще подскажет вариант решения? или примером поможет?
Александр Иващенко
11 марта 2018, 19:40
0
А пример с фильром где то существует?
Александр Иващенко
24 февраля 2018, 15:22
0
разобрался. только не понял почему)
array('class_key' => 'msProduct') — нужно передавать класс получается?

// Проходимся по всем товарам
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct'));
foreach ($products as $product) {
    // Получаем оригиналы их картинок
    $array = $product->getTVValue('12');
    echo $array;
    //$files = $product->getMany('Files', array('parent' => 0));
}
Александр Иващенко
24 февраля 2018, 15:16
0
$docs = $modx->getIterator('msProduct');

foreach($docs as $doc){
    $array = $doc->getTVValue('12');
    echo $array;
break;
не выводит ничего. ему нельзя все id передавать разве?
Instantiated a derived class modDocument that is not a subclass of the requested class msProduct
ка мне выбирать именно товары?
Александр Иващенко
24 февраля 2018, 15:03
0
вот блин, круто, спасибо