Андрей Шевяков
С нами с 28 сентября 2016; Место в рейтинге пользователей: #62Еще немного про сессии MODX, компонент smartSessions
Всем привет!
Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.
В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.
Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!
Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.
В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.
Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!
[miniShop2] Группируем поля на вкладке "Свойства товара"
Всем привет, небольшая инструкция про кастомизацию вкладки «Свойства товара» у miniShop2.
Изменение цены в зависимости от типа валюты (в 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)); //Значение курса
, работает. С ними все ломается… Как сделать количество товара в minishop2 дробным?
Приветствую, вопрос этот встречался мне не один раз тут и здесь и ещё вон там, но решения, которое не требует вмешательства в исходники и подробно расписанное, я не нашёл. Поэтому, взяв за основу этот комментарий и получив подсказку от @PG, я сделал следующее:
Сортировка mfilter2 по проценту скидки [РЕШЕНО]
Можно ли как-то сделать так, что бы сортировалось по размеру скидки?
Что-то вроде такого хочу получить:
Спасибо заранее
Что-то вроде такого хочу получить:
<a type="button" class="sort btn" href="#" data-sort="ms|discount" data-dir="desc" class="sort sort_name">Скидке<span></span></a>
Поля discount не существует (я простокак пример привел). Хочется что бы процент где-то там высчитывался автоматически.Спасибо заранее
Поиск источника ошибки Instantiated a derived class
Всем привет!
На одном из сайтов стала появляться ошибка следующего содержания:
которая забивала Журнал ошибок за 2-а дня на 60 мб.
Поиск источника по БД, через сниппеты, через Batcher и другие способы не принесли результата.
На одном из сайтов стала появляться ошибка следующего содержания:
Instantiated a derived class CollectionContainer that is not a subclass of the requested class ArticlesContainer
которая забивала Журнал ошибок за 2-а дня на 60 мб.
Поиск источника по БД, через сниппеты, через Batcher и другие способы не принесли результата.
[СДЕЛАЙ САМ] Авторизация и регистрация по СМС
Всем привет. Я ни на что не претендую, прекрасно понимаю, что вариантов решения данной задачи много, и мой, наверное, не лучший, но меня попросили написать решение и эту инструкцию, поэтому поехали.
Нам понадобится:
Нам понадобится:
- Console
- CMP Generator
- AjaxForm
- miniShop2
msPaidOptions. Платные опции к товару
Компонент позволяет создавать дополнительные опции к товару, которые могут повлиять на его итоговую стоимость.


[СДЕЛАЙ САМ] Фильтрация по множественным значениям.
Приветствую!
Задача: сделать фильтр по регионам в которых доступен продукт, при условии, что один продукт может быть доступен в нескольких регионах сразу.
В решении использовались раздел из документации и статья @Илья Уткин
Задача: сделать фильтр по регионам в которых доступен продукт, при условии, что один продукт может быть доступен в нескольких регионах сразу.
В решении использовались раздел из документации и статья @Илья Уткин
Интерфейс бана пользователя
Смотрю, что-то заметка про аватар пользователя оказалась слишком простой, поднимем немного градус.
Покажу как будет выглядеть интерфейс бана пользователя по итогу.

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

Ниже представлен код, куски которого когда-то писали коллеги по данному сайту и чатику в телеграме.
А я уже дописал чего не хватало и собрал все в кучку.