Максим Кузнецов

Максим Кузнецов

Был в сети 04 августа 2021, 21:51
Заказы принимаю
Адаптивность (по ширине), как правило, формируется из двух составляющих:
1. нужные элементы и их потомки имеют процентный параметр width или max-width
2. использование media-запросов для изменения логики отображения нужных элементов при определенной ширине

Если у вас не адаптируется какой-то элемент (хотя должен, исходя из пунктов выше), вы можете проинспектировать их через консоль (f12 в хроме или пкм по проблемному объекту -> просмотреть код) и таким образом локализовать проблему. Дальше применяем пункты 1 и 2.
То есть ровно то, что я описал в варианте 2?

Только:
— при чем здесь именно Office? (HybridAuth, Login, ...)
— зачем сохранять id, а потом при каждой загрузке страницы делать доп. запрос к таблице пользователей? И зачем для этого OnUserSave, если данные статичны.

И да, все же — что в итоге входит в мифические 90%? Триггер события OnUserSave?

UPD: не поймите меня неправильно, вашим решением тоже можно натянуть сову на глобус. Просто оно хуже.
У вас, условно, есть 2 варианта реализации страницы пользователя:

1. Виртуальная страница (напрямую не существует в БД, данные собираются на лету исходя из запрошенного урл). Пример такой реализации — modx.pro.
(
способ реализации)

2. Полноценная страница (точно такая же, как и любая другая страница, создаваемая через интерфейс ресурсов MODX и хранящаяся в БД. Создается при регистрации/активации пользователя и, при изменении профиля пользователя, новые данные проецируются на страницу).
(способ реализации)
Если наценка указана в процентах (присутствует соответствующий символ) — то считаем наценку и прибавляем, иначе просто прибавляем.

В вашем случае достаточно свитчить $cart['total_cost'] и, в зависисимости от требуемых условий, приплюсовывать к $cost нужную сумму.
Последняя попытка, если не поможет — мой скайп justbekami, давайте туда.

У вас сейчас при переключении фильтров записывается его id (вы смотрите результат с примесью старых записей, их нужно очистить):
"{"mse2_tv_pol_0":"checked","mse2_tv_pol_1":"checked"}"
(смотрю по dev.nosi.ru)

А в чанке мы ищем по name. Или замените в скрипте .attr('value') на .attr('name') или в чанке ищите по айди:
{var $filter_condition = $filters_condition['mse2_' ~ $table ~ '_' ~ $filter ~ '_' ~ $idx]}
Так… смотрите:

1. Содержимое $.cookie('filters_condition') хранит json-строку с шаблоном
«name-фильтра»:«состояние фильтра».
2. Ваша задача в шаблоне фильтра получить нужную переменную куки и преобразовать её в массив:
$.cookie['filters_condition'] | fromJSON
3. Далее, вам нужно получить состояние конкретного фильтра по ключу массива (по-умолчанию, поле name):
{var $filter_condition = $filters_condition[$table ~ '_' ~ $filter]}
4. И, наконец, в зависимости от полученного состояния, проставить checked для фильтра.

Сейчас вы на шаге 3 — смотрите содержимое получаемого массива и, в частности, значение $filter_condition.
Скорее всего, мы ищем не по тому ключу (сравните передаваемое значение со значением name фильтра).
Примерно сюда:

{var $filters_condition = $.cookie['filters_condition'] | fromJSON}
{var $filter_condition = $filters_condition[$filter_key]}

//Многоточие копировать не нужно - заместо них у вас будут родные переменные чанка для инпута
<input type="checkbox" ... {$filter_condition == 'checked' ? 'checked' : ''}  />