Сергей Водолагин

Сергей Водолагин

С нами с 22 марта 2014; Место в рейтинге пользователей: #199

VersionX переполнил базу данных

Друзья привет.
столкнулся с болью обнаружил что на обном из сайтов БД выросла но неимоверных размеров!
После недолгого копания выяснилось что VersionX хранит в БД все что произошло за год в размере 3,4 гигов.


И это печаль.

Итак вопрос как говорится к старшим товарищам что с этим можно безопасно сделать?
Мои варианты:
  1. Очистить эту таблицу в БД — тут я не великий специалист боюсь угробить сайт...
  2. Понять как работает дополнение и встроить настройку чтоб сохранялось только 3 последних версий — я тут совсем не специалист.
  3. Написать автору дополнения и просить помощи
Приоритетно конечно попытаться решить какой то малой кровью если кто подскажет, поможет буду благодарен.
Владимир Ульяновский
12 сентября 2017, 15:02
modx.pro
6
4 305
+1

Minishop2 количество товаров в корзине

Доброго времени дня!
Необходимо вывести в мини корзине количество товаров (кол-во строк в корзине).
Как вывести на странице разобрался:
count(($miniShop2->cart->get()));
А как сделать что бы при добавлении нового товара автоматически обновлялось не знаю.

Плейсхолдер {$total_count} видел, не подходит. Он выводит общее количество товара. В моем случае товар продается метрами.
Например: кладем в корзину 5 метров одного товара и 3 метра другого. Плейсхолдер
{$total_count} выведет 8, а надо 2 (т.к. в корзине 2 товара)

Решение:
1) Расширил класс корзины:
<?php
if(!class_exists('msCartHandler')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/mscarthandler.class.php';
}
class myCartHandler extends msCartHandler implements msCartInterface{

    public function status($data = array())
    {
        $status = array(
            'total_count' => 0,
            'total_cost' => 0,
            'total_weight' => 0,
            'total_num' => 0,
        );
        foreach ($this->cart as $item) {
            if (empty($item['ctx']) || $item['ctx'] == $this->ctx) {
                $status['total_count'] += $item['count'];
                $status['total_cost'] += $item['price'] * $item['count'];
                $status['total_weight'] += $item['weight'] * $item['count'];
                $status['total_num']++;
            }
        }

        return array_merge($data, $status);
    }
}
— теперь у нас появился новый плейсхолдер — total_num

2) Что бы при добавлении в корзину у нас мини корзина сразу обновлялась дописал колбеки:
/* Добавление твоаров в корзине */
miniShop2.Callbacks.Cart.add.response.success = function(response) {
    //console.log(response.data['total_num']);
    miniShop2.Cart.totalNum = '.ms2_total_num';
    $(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
/* Изменение твоаров в корзине */
miniShop2.Callbacks.Cart.change.response.success = function(response) {
    miniShop2.Cart.totalNum = '.ms2_total_num';
    $(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
3) Добавляем в чанк с мини корзиной плейсхолдер и класс.
<span class="ms2_total_num">{$total_num}</span>
П.с. за наводку спасибо пользователю — Алексей
Руслан Сафин
04 сентября 2017, 14:06
modx.pro
6
8 491
0

Sendex и AjaxForm - подписка на рассылку ч/з ajax

Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
mngatoff
26 августа 2017, 19:52
modx.pro
26
5 683
+8

msOptionsPrice2 и составной товар


Возникла необходимость при помощи msOptionsPrice2 реализовать составной товар. Оказалось, что компонент не умеет прибавлять к начальной цене товара несколько цен из модификаций одной опции.
Например, есть опция Наполнители, у нее около 20 значений. На фронте, при выборе каждого из значений, цена товара должна увеличиваться на N рублей. Проблема заключается в том, что имена тегам чекбоксов мы даем в виде массива:
<input type="checkbox" name="cb[]">
Компонент, в свою очередь, с таким работать не умеет. Предлагаю решение в четыре простых шага!
Павел Гвоздь
12 августа 2017, 06:56
modx.pro
34
8 517
+14

Мультидоменность контекстами


В сообществе часто проскакивают вопросы про мультидоменность на одной копии MODX. А у меня, как раз, сайты демо версий компонентов реализованы таким образом. Думаю, информация будет полезной!
Павел Гвоздь
10 августа 2017, 16:01
modx.pro
36
7 153
+29

pdoResources вывод потомков с родителем

Добрый день!
Никак не могу вывести материалы через pdoResources. Есть четыре категории, в них по 10 материалов. Необходимо при клике на категорию вывести материалы этой категории, а когда находишься на странице одного из 10 материалов вывести оставшиеся 9 материалов и ссылку на родителя (одну из четырех категорий). Вызов сейчас такой:
[[pdoResources?
&parents=`[[*parent]]`
&resources=`-[[*id]]`
&sortby=`menuindex`
&sortdir=`ASC`
&tpl=`@INLINE <a href="{$uri}" title="{$pagetitle}" />{$pagetitle}</a>
`
]]
Материалы выводит, а родителя нет. Подскажите, кто в курсе? Спасибо.
Алексей
24 июля 2017, 09:10
modx.pro
1
3 350
0

Amp для modx

Наткнулся на плагин для revo AMP модх.
ссылка на github репозиторий

Кто реализовывал AMP на modx? Поделитесь любой информацией.
Oleh
23 июля 2017, 16:22
modx.pro
11
7 726
0

[xLike] Идеальная система лайков с оптимистичным интерфейсом и правильной формулой

Пакет довольно прост и одновременно функционален. Выполняет систему рейтинга для любого объекта, по-умолчанию, для ресурсов. Чем-то напоминает систему лайков на YouTube, в частности, в пакете реализован оптимистичный интерфейс.


Также, особенностью компонента является правильный подсчет рейтинга на основе вычисления нижней границы доверительного интервала Вильсона для параметра Бернулли. По-простому: эта формула не даст встать новым записям с 1 лайком и 0 дизлайками выше более старых записей с сильным рейтингом.

Список преимуществ:
  1. Оптимистичный интерфейс,
  2. Наиболее правильная формула вычисления рейтинга,
  3. Работа с любыми объектами (modResource, modUser, кастомные объекты),
  4. Голосование гостями,
  5. Анимированное изменение полосы/числа рейтинга,
  6. Событие плагина — xLikeOnVote.
Павел Гвоздь
16 июля 2017, 18:05
modx.pro
18
12 887
+34

Редирект на свою страницу после оформления заказа

Для Minishop2 версий >= 2.4.* Думаю, информация будет полезна начинающим разработчикам: можно на простой задаче заодно и немного разобраться в логике работы магазина.
Алексей Шумаев
02 июня 2017, 22:06
modx.pro
20
7 371
+7

pdoTools фильтр по TV

[[!pdoPage?
&element=`msProducts`
&limit=`8`
&pageLimit=`4`
&tvFilters=`postavka==10`
]]
при этом ни один товар не выводится, но имеется с таким TV
Максим
31 мая 2017, 17:36
modx.pro
1
3 452
0