Андрей Шевяков

Андрей Шевяков

С нами с 28 сентября 2016; Место в рейтинге пользователей: #62

Еще немного про сессии MODX, компонент smartSessions

Всем привет!

Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.

В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.

Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!


Наумов Алексей
28 июля 2021, 10:51
modx.pro
15
6 050
+29

[miniShop2] Группируем поля на вкладке "Свойства товара"

Всем привет, небольшая инструкция про кастомизацию вкладки «Свойства товара» у miniShop2.
Наумов Алексей
20 июля 2021, 17:09
modx.pro
15
2 117
+13

Изменение цены в зависимости от типа валюты (в tv-параметре)

<?php
switch($modx->event->name) { 
    case 'msOnGetProductFields':
        $returned_values = & $modx->event->returnedValues;
        $values =  $modx->event->params['data'];

        $product = $modx->getObject('msProduct', $product->id);
        $currency_type = $product->getTVValue('valuta'); //Тип валюты
        $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
        
        if (isset($currency)) {
            $returned_values['price'] = round($values['price'] * $currency); // Округление цены;
        }       
        
        $modx->log(1,'returned_price - ' . $returned_values['price'] );
        $modx->log(1,'current_type - ' . $currency_type );
        $modx->log(1,'currency - ' . $currency );
        break;
}
Почему-то логи пишет корректно, но цена не меняется.
Если убрать эти строки
$product = $modx->getObject('msProduct', $product->id);
        $currency_type = $product->getTVValue('valuta'); //Тип валюты
        $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
, работает. С ними все ломается…
Валентина Павлова
08 июля 2021, 15:25
modx.pro
1
761
0

Как сделать количество товара в minishop2 дробным?

Приветствую, вопрос этот встречался мне не один раз тут и здесь и ещё вон там, но решения, которое не требует вмешательства в исходники и подробно расписанное, я не нашёл. Поэтому, взяв за основу этот комментарий и получив подсказку от @PG, я сделал следующее:
Артур Шевченко
20 июня 2021, 19:26
modx.pro
3
1 720
+1

Сортировка mfilter2 по проценту скидки [РЕШЕНО]

Можно ли как-то сделать так, что бы сортировалось по размеру скидки?
Что-то вроде такого хочу получить:
<a type="button" class="sort btn" href="#" data-sort="ms|discount" data-dir="desc" class="sort sort_name">Скидке<span></span></a>
Поля discount не существует (я простокак пример привел). Хочется что бы процент где-то там высчитывался автоматически.

Спасибо заранее
Ivan
05 июня 2021, 16:45
modx.pro
2
845
0

Поиск источника ошибки Instantiated a derived class

Всем привет!

На одном из сайтов стала появляться ошибка следующего содержания:
Instantiated a derived class CollectionContainer that is not a subclass of the requested class ArticlesContainer

которая забивала Журнал ошибок за 2-а дня на 60 мб.

Поиск источника по БД, через сниппеты, через Batcher и другие способы не принесли результата.

Иван Бочкарев
23 мая 2021, 22:39
modx.pro
4
1 557
+17

[СДЕЛАЙ САМ] Авторизация и регистрация по СМС

Всем привет. Я ни на что не претендую, прекрасно понимаю, что вариантов решения данной задачи много, и мой, наверное, не лучший, но меня попросили написать решение и эту инструкцию, поэтому поехали.
Нам понадобится:
  1. Console
  2. CMP Generator
  3. AjaxForm
  4. miniShop2
!!! ВАЖНО!!! Корзина и оформление заказа должны быть разными страницами.
Артур Шевченко
17 мая 2021, 00:31
modx.pro
5
5 677
+1

msPaidOptions. Платные опции к товару

Компонент позволяет создавать дополнительные опции к товару, которые могут повлиять на его итоговую стоимость.


Aleksandr Huz
06 мая 2021, 10:13
modx.pro
8
2 438
+18

[СДЕЛАЙ САМ] Фильтрация по множественным значениям.

Приветствую!
Задача: сделать фильтр по регионам в которых доступен продукт, при условии, что один продукт может быть доступен в нескольких регионах сразу.
В решении использовались раздел из документации и статья @Илья Уткин
Артур Шевченко
29 апреля 2021, 16:05
modx.pro
3
1 799
+5

Интерфейс бана пользователя

Смотрю, что-то заметка про аватар пользователя оказалась слишком простой, поднимем немного градус.
Покажу как будет выглядеть интерфейс бана пользователя по итогу.



Ниже представлен код, куски которого когда-то писали коллеги по данному сайту и чатику в телеграме.
А я уже дописал чего не хватало и собрал все в кучку.
Евгений Webinmd
27 апреля 2021, 10:49
modx.pro
3
1 172
+15