$(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('name')] = current_condition;
$.cookie('filters_condition', JSON.stringify(params));
});
3. В чанках, отображающие фильтры в mFilter2 перехватываем нужные данные в куках, после чего выставляем результат:
Пример демонстрационный, для наибольшей наглядности. То же состояние $filters_condition в шаблоне лучше единожды распарсить из JSON-a, после чего записывать в плейсхолдер, чтобы в последствии данные дергать уже из него.
Посмотрел на примере у Владимира и там тоже самое если перейти на EN и посмотреть ссылку в шапке на логотипе, то она ведет на русский контекст
Как правильно выводить линк на главную страницу того (псевдо) контекста где сейчас находится пользователь а не посылать его на основной по умолчанию web
2. В js создается событие на изменение всех или только нужных вам фильтров, в котором будет запоминаться их состояние, примерно таким образом:
3. В чанках, отображающие фильтры в mFilter2 перехватываем нужные данные в куках, после чего выставляем результат:
Пример демонстрационный, для наибольшей наглядности. То же состояние $filters_condition в шаблоне лучше единожды распарсить из JSON-a, после чего записывать в плейсхолдер, чтобы в последствии данные дергать уже из него.
site.com/ru/ и site.com/en/
в HTTP HOST (localizator) прописано site.com/ru/ и site.com/en/
вывожу
{'site_url' | option} или {$_modx->config.site_url}и получаю site.com/ а должно быть site.com/ru/ или /en/Посмотрел на примере у Владимира и там тоже самое если перейти на EN и посмотреть ссылку в шапке на логотипе, то она ведет на русский контекст
Как правильно выводить линк на главную страницу того (псевдо) контекста где сейчас находится пользователь а не посылать его на основной по умолчанию web
<a class="site-logo" href="{'site_url' | option}">Site</a>или<a class="site-logo" href="{'site_url' | option}{'cultureKey' | option}/">Site</a>и вызови его на странице после mFilter2 — увидишь все выставленные плейсхолдеры.
Поэтому решаю эту задачу одним из способов:
1. Выставляю канонический урл
2. Или добавляю в .htaccess код
Работает гарантировано.