Александр

Александр

С нами с 16 августа 2013; Место в рейтинге пользователей: #221
Александр
25 августа 2016, 19:06
0
Можно написать простейший плагин, тут главное получить каким-то образом нужный город (id, короткое наименование транслитом и.т.п.). Это зависит от реализации на сайте.

<?php
switch ($modx->event->name) {
    case 'msOnSubmitOrder':
    $city = $_POST['city']'
    $modx->setOption('ms2_email_manager', $modx->getOption('ms2_email_manager_сity_'.$_POST['city']));
    break;
}

Плагин переопределяет настройку с почтой менеджера(ов) в момент оформления заказа. Новую настройку он берет из другой системной настройки созданной вами в ручную, например ms2_email_manager_сity_spb. В форме заказа должна быть city.
Александр
23 августа 2016, 19:03
+2
Смотрим схему miniShop2

<object class="msCategory" extends="modResource">
...
<composite alias="CategoryOptions" class="msCategoryOption" local="id" foreign="category_id" cardinality="many" owner="local"/>
</object>

Небольшой код:

$cat = $modx->getObject('msCategory', $id);
$opts = $cat->getMany('CategoryOptions');

// далее работа со списком опций $opts для категории

Создать связь — «категория — опция»:

$cat = $modx->newObject('msCategoryOption', array('option_id' => 2, 'category_id' => 1, 'active' => 1));
$cat->save();
Александр
23 августа 2016, 18:21
0
$miniShop2->addService('payment', 'CustomerAccount',
        '[[+core_path]]components/msprofile/model/msprofile/customeraccount.class.php'
    );
Исходя из примера по выше приведенной ссылке можно предположить, что вам нужно создать файл customeraccount.class.php в директории [[+core_path]]components/msprofile/model/msprofile/

Где регистрировать через этот метод?

Регистрировать видимо надо в самописном сниппете или в плагине на нужное вам событие. Тут нужно понимать для каких целей вы это делаете.
Александр
18 августа 2016, 18:08
0
По идее можно реализовать работу такой галереи можно на пакете ms2Gallery. Каждая галерея привязывается к ресурсу определенному. Вот для этих ресурсов и нужно сделать необходимые права на просмотр и редактирование, не уверен что это получится сделать стандартными средствами modx. Скорее всего нужно писать плагин на проверку

Возможно вам стоит смотреть пакет MoreGallery, там есть настройка прав на работу с функционалом галереи. Не пользовался пакетом, точно какие есть права не знаю.

Оба пакета могут использовать источник файлов Amazon S3. А вот насчет одной лишь физической папки на сервере для пользователя, то это навряд ли возможно если использовать данные пакеты
Александр
12 августа 2016, 19:08
+1
Слишком мало информации. У вас страница с корзиной заказа оформляет заказ? Страница с параметром msorder появляется?
Александр
12 августа 2016, 19:06
+1
Нужно искать в репозитории modstore (https://modstore.pro/info/connection)
Александр
12 августа 2016, 19:03
1
+5
Речь идет видимо о уведомления PNotify которые использую в выше обозначенном пакете. Вам необходимо поменять js компонента который работает с jGrowl. Вы не уточнили компонент, который выводит окошки. Если нужно поменять скрипт для всех событий на сайте связанных с отображением окошек оповещений, то для это нужно проделать операцию описанную ниже для всех компонентов. Принцип работ один и тот-же.

На примере компонента miniShop2 скопируйте файл по пути написанному ниже в отдельную папку чтобы не затрагивать исходники минишопа. Пропишите новый путь в системную настройку ms2_frontend_js (данная настройка есть у AjaxForm также и у других стандартных компонентов из modstore)

/assets/components/minishop2/js/web/default.js

Подключите на сайте: PNotify

<script type="text/javascript" src="pnotify.custom.min.js"></script>
<link href="pnotify.custom.min.css" media="all" rel="stylesheet" type="text/css" />

Найдите следующий кусок кода в js файле:

if (typeof($.fn.jGrowl) != 'function') {
                $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () {
                    miniShop2.Message.initialize();
                });
            }
            else {
                $.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>';
                miniShop2.Message.close = function () {
                    $.jGrowl('close');
                };
                miniShop2.Message.show = function (message, options) {
                    if (message != '') {
                        $.jGrowl(message, options);
                    }
                }
            }

Удалите следующий код:

if (typeof($.fn.jGrowl) != 'function') {
                $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () {
                    miniShop2.Message.initialize();
                });
            }
            else {
...... не удаляемое ....

}

Замените данный код:

$.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>';
                miniShop2.Message.close = function () {
                    $.jGrowl('close');
                };
                miniShop2.Message.show = function (message, options) {
                    if (message != '') {
                        $.jGrowl(message, options);
                    }
                }

на это:

miniShop2.Message.close = function () {
                    PNotify.removeAll()
                };
miniShop2.Message.show = function (message, options) {
                    if (message != '') {
new PNotify({
            title: 'Сообщение',
            text: message
        });
}
                }

Данная инструкция условная, не проверялась.
Александр
09 августа 2016, 23:59
+2
&validate=`page_name,name,phone:required
У вас в приведенном коде кавычки не закрыты соответветственно последующие параметры не будут функционировать и форма в результате не будет работать.
Александр
22 апреля 2016, 23:09
+1
Мне кажется, что про первый день они смогут рассказать только завтра)
Александр
28 февраля 2016, 01:37
0
Включение создания виртуальных чанков перенесено в настройки
Спасибо. Наконец-то не нужно править плагин после установки. Создание виртуальных чанков не очень хорошо работает (в данной версии еще не смотрел).
Александр
19 февраля 2016, 12:09
0
Напишите свой парсер. Подключитесь к базе где хранятся пути к картинкам. Каталог с картинками переместите на новый сайт. Подключитесь к ней и переберите массив данных. Чтобы скачать картинку (указывайте путь для большой картинки) используйте file_put_contents($path, file_get_contents($url)); далее вы делаете функцию rename где используйте $resource->get('article') (это если товар miniShop2) + id $resource->get('id'). Для хранения картинок лучше использовать msGallery, но в вашем случае скорее подойдёт обычная твшка так как требуется специфическое название картинки… Создаёте тв product_image, а в парсере напишите $resource->setTVValue('product_image', путь к картинке). Для оптимизации картинки на фронте лучше использовать pThumb если msGallery не юзаеться. В случае с msGallery нужно использовать процессоры
Александр
04 февраля 2016, 19:49
0
Вот это автору поста стоило на самом верху написать :) Теперь понятно для чего это.
Александр
04 февраля 2016, 19:48
1
+1
В теории немного правок и можно к Тикетам прикрутить

$response = $modx->runProcessor('file/upload .... array('processors_path' => MODX_CORE_PATH.'components/tickets/processors/web/')
Александр
23 января 2016, 17:36
0
Вы использовали &showLog=`1`? Он отобразит готовый запрос, будет легче понять проблему
Александр
14 января 2016, 16:59
0
Там есть выбор каналов, не обязательно сидеть на нашем канале. Активность в Slack постоянна. Много обсуждений, вроде там сидят многие разработчики MODx. Мне вот автор пакета MIGX как-то помог с проблемой. У нас большинство народу залипло на Скайпе, им так привычнее)
Александр
14 января 2016, 16:45
+1
Чат в телеграме есть уже один, но особо никто так его и не юзает. Гораздо лучше развивать чат в Slack
Александр
01 января 2016, 14:08
+1
Всех с наступившим Новым Годом!
Александр
03 сентября 2015, 17:35
0
Было бы здорово встроить вкладки (как бы новый файл) и в каждой запускать свой код. А еще лучше сохранять эти вкладки (как черновики) на сервере с написанным кодом а не только в сессии (ну сделать как опцию).