Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
02 августа 2014, 14:19
+1
Нужно для каждого пользователя создать свою настройку с языком админки. Она переопределит системную настройку.

Безопасность — Управление пользователями — Редактировать — Настройки, там создаем manager_language
Наумов Алексей
29 июля 2014, 13:41
0
Снимай просто эти ресурсы с публикации и все.
Наумов Алексей
29 июля 2014, 13:40
0
Заморочить URI ))) настройка-огонь!)
Наумов Алексей
29 июля 2014, 10:28
0
Очень часто нужно несколько галерей на странице:

Текст текст текст
Фотоальбом, 5 фото
Текст текст текст
Фотоальбом, 3 фото
Текст текст текст
Фотоальбом 8 фото

Как это лучше всего реализовать через ms2gallery? Альбомы должен добавлять само собой менеджер сайта, а не программист.
Наумов Алексей
25 июля 2014, 13:39
0
А, немного упустил этот момент, писал по памяти.

Пункт 3 из моего комментария переделываем:
<div class="ms2_discount [[+hide_discount]]">Скидка: <span class="ms2_discount_price">[[+discount]]</span></div>
<div class="ms2_margin [[+hide_margin]]">Наценка: <span class="ms2_margin_price">[[+margin]]</span></div>

а в конце чанка еще и так:
<!--minishop2_hide_margin style="display:none;"-->
<!--minishop2_hide_discount style="display:none;"-->
Сниппет msCart копируем в msCartEx и вызываем на странице его.
в нем (в конце, после цикла foreach ($cart as $k => $v) ) добавляем примерно это:
$outer['hide_margin'] = !$outer['margin'] = $miniShop2->cart->getCartMargin();
$outer['hide_discount'] = !$outer['discount'] = $miniShop2->cart->getCartDiscount();
$outer['total_cost'] = $miniShop2->cart->calcTotalCostEx($outer['total_cost'], $outer['margin'], $outer['discount']);
Вообще вещь индивидуальная для каждого сайта, поэтому подгоняйте для себя.

т.е. тут у нас 2 действия:
1. проставляем margin и discount
2. скрываем или показываем строчку со скидкой.
Наумов Алексей
25 июля 2014, 09:37
1
+2
Да, сделал!

1. Переопределяем msCartHahdler. В частности функцию status:
public function status($data = array()) {
        $status = parent::status($data);

        // margin && discount
        $status['margin'] = $this->getCartMargin();
        $status['discount'] = $this->getCartDiscount();
        $status['total_cost'] = $this->calcTotalCostEx($status['total_cost'], $status['margin'], $status['discount']);

        return $status;
    }

public function calcTotalCostEx($total_cost, $margin, $discount){
        $result = $total_cost;
        if(!empty($margin)){
            $result = $total_cost + $margin;
        }
        if(!empty($discount)){
            $result = $total_cost - $discount;
        }
        return $result;
    }
getCartMargin, getCartDiscount — считайте скидку и наценку как хотите в них, для этого у вас есть $this->cart — корзина с товарами.

2. Копируем файл minishop2.js, указываем в настройках новый путь к нему, добавляем логику:

2.1 Метод miniShop2.Cart… setup
miniShop2.Cart.margin = '.ms2_margin';
miniShop2.Cart.discount = '.ms2_discount';
2.2. Метод status:
if(status['margin'] > 0){
                    $(miniShop2.Cart.margin).show();
                    $(miniShop2.Cart.margin + ' .ms2_margin_price').text(status['margin']);
                }
                else{
                    $(miniShop2.Cart.margin).hide();
                }
                if(status['discount'] > 0){
                    $(miniShop2.Cart.discount).show();
                    $(miniShop2.Cart.discount + ' .ms2_discount_price').text(status['discount']);
                }
                else{
                    $(miniShop2.Cart.discount).hide();
                }
3. Ну и добавляем в чанк cart.Outer строчки с наценкой и скидкой:
<div class="ms2_discount">Скидка: <span class="ms2_discount_price"></span></div>

<div class="ms2_margin">Наценка: <span class="ms2_margin_price"></span></div>
Наумов Алексей
22 июля 2014, 11:17
0
Чего только стоит механизм добавления своих полей в минишоп bezumkin.ru/modx/minishop2/classes/910/. Это гораздо удобнее и быстрее TV-шек.
Наумов Алексей
22 июля 2014, 10:54
+1
Если есть что-то типа каталога товаров/услуг с фиксированными полями типа цена/наличие, я бы однозначно сделал это через минишоп. Удобнее, возможностей больше.
Наумов Алексей
11 июля 2014, 20:57
+1
Посмотри небольшое дополнение Personalize, выводит один чанк для авторизованных, а другой для неавторизованных пользователей.
Наумов Алексей
11 июля 2014, 10:04
0
1. Увеличиваем время работы скрипта. Если есть свой VPS — вроде нормальный вариант) Я всегда так делал.
2. Делаем импорт партиями, например вызывая скрипт импорта через аякс, и импортируя то кол-во товара, которое заведомо отработает. Реализация, конечно же, посложнее.
Наумов Алексей
10 июля 2014, 10:32
0
DebugParcer попробуйте запустить, правда он немного платный)
Наумов Алексей
08 июля 2014, 10:10
0
Что некорректно работает?

Был неприятный момент с указанием w, h и опцией zc=0, картинка начинала тянуться. Решается путем добавления far=0.
Наумов Алексей
01 июля 2014, 15:02
0
При обновлении существующих сайтов проблем из-за отсутствия в текущих заказах этого поля не будет?
Наумов Алексей
23 июня 2014, 14:24
1
+3
Я обычно хук spam применяю все же, делаю поле, которое как настоящее, но скрываю его каким либо образом. Hidden поле не катит почти не когда. Часто бывает что спама нет совсем, а потом — как прорывает. То ли кто-то в ручную проверяет, какое поле не заполнять, и спамер-программе указывает это. В этом случае поле переименовываю)
Наумов Алексей
01 июня 2014, 23:01
0
Если у тебя 6 разных tv полей (set,vid,ogrn,inn,pochta,date), то вроде все так. Но если у тебя 1 TV поле типа migx, а в нем 6 полей, то совсем не так =) В этом случае, допустим, имя этого поля filed, то выводить надо вроде как [[+tv.field.set]]
Наумов Алексей
30 мая 2014, 19:25
0
А, в скрипте то да, там есть =)

Я же свой скрипт писал, ну и не сразу подумал о том, что надо ошибки сбрасывать. Подозреваю что автор топика тоже свой скрипт писал.
Наумов Алексей
30 мая 2014, 19:04
0
Да вот только сегодня делал импорт, напоролся на это, minishop2 ставил из modx.com репозитория вчера или позавчера.
Наумов Алексей
30 мая 2014, 15:13
+1
Перед импортом каждой строки добавляем
$modx->error->reset();
Это сбрасывает ошибки, накопившиеся во время импорта прошлого товара. Подозреваю, что при импорте изображений эти ошибки должны были сброситься, но почему то этого не происходит.
Наумов Алексей
29 мая 2014, 16:20
0
Или tplStart чуть изменить, вытащив wrapper за пределы li