Вопросы

Как сделать изменение параметров во всех товарах через Console

Добрый день!

Через следующий плагин, меняю в товарах определенного родителя свойства:
<?php
if($scriptProperties['mode']=='upd' && $resource->get("parent") == 15){ 

  $resource->set('color_stone', array('--ФИАНИТЫ--','Бесцветные','Черные','Черно-белые','Зелено-белые','Коньячно-белье','Сиренево-белый','Зелено-белые','Цветные', '-Полудрагоценные камни-','Микс','Хризолит','Гранат','Цитрин','Топаз','Аметист','Раухтопаз','Бирюза','Оникс','Кварц зеленый','Ситал','Аквамарин','Александрит','Турмалин','Лондон топаз','Свис топаз','Родолит'));
  $resource->set('color_metal', array('белый', 'красно-белый','красно-лимонно-белый','красный','лимонно-белый', 'лимонный'));
  $resource->set('size', array('15', '15.5', '16','16.5','17','17.5','18','18.5','19','19.5','20','20.5','21','21.5','22','22.5'));
  $resource->save();
}
Плагину назначено событие: OnDocFormSave
Товаров больше сотни, как через console обработать все товары, чтоб не заходить на каждый и не пересохранять????

Нашла следующий скрипт для обработки в консоле, но он не срабатывает, а я не могу понять как исправить:

<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
    $_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
// Формируем запрос
$q = $modx->newQuery('modResource');
$total = $modx->getCount('modResource', $q);
// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);
$resources = $modx->getCollection('modResource', $q);
// Обработка
foreach ($resources as $resource) {
    print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
    sleep(0.5);
}
// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
  $sucsess = 100;
  $_SESSION['Console']['completed'] = true;
  unset($_SESSION['console_offset']);
} else {
  $sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
  $_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
    if ($i <= $sucsess) {
        print '=';
    } else {
        print '_';
    }
}
$current = isset($_SESSION['console_offset']) ?
           $_SESSION['console_offset'] :
           ($sucsess == 100 ? $total : 0);
print "\n";
print $sucsess.'% ('.$current.')'."\n\n";
Ника
07 декабря 2018, 10:49
modx.pro
1 031
0

xParser, Fenom и регулярные выражения

В связи с появлением такого нужного дополнения, как xParser, у многих могут возникнуть трудности в процессе парсинга. Ведь зачастую из кода приходится удалять много «мусора» в виде ссылок, скриптов и классов.
Поэтому обращаюсь за помощью к опытным программистам, для которых написать регулярное выражение не составляет труда.
Попробую описать несколько типовых ситуаций, в которых лично у меня возникли затруднения с регулярками, а всех, кто может помочь, прошу отписаться в комментариях. Я и многие другие пользователи будут благодарны за такого рода шпаргалку по регуляркам в xParser и Fenom.

1) Как удалить из текста все ссылки?
{$content | preg_replace : 'регулярка для удаления всех ссылок'}
2) Как удалить из текста все скрипты?
{$content | preg_replace : 'регулярка для удаления всех скриптов'}
3) Как удалить из текста все div-ы с содержимым?
{$content | preg_replace : 'регулярка для удаления всех div-ов с содержимым'}
4) Как в тексте заменить все div-ы на p?
{$content | preg_replace : 'регулярка для замены всех div-ов на < p>< /p>'}
Сергей
06 декабря 2018, 22:12
modx.pro
1
2 366
0

Ошибка подключения default.js в minishop 2

Добрый вечер. Вопрос. Установили minishop 2. При добавлении товара в корзину перезагружается страница, фоторама не работает. Просто идут картинки. Обьявление о добавлении товара не выскакивает.
default.js выдает такую ошибку. Весь день мучаюсь помогите пожалуйста.
Вадим
06 декабря 2018, 18:29
modx.pro
1 357
0

Как увеличить время хранения товаров в корзине?

Нужно сделать так чтобы товары хранились в корзине 2-3 недели после того как пользователь их туда добавит. Что нужно для этого сделать? Сейчас товары хранятся в корзине примерно 3 дня.
Олег
06 декабря 2018, 18:12
modx.pro
745
0

[РЕШЕНО] Непонятная ошибка "Permission denied"

Переодически крашится сайт
слетает сессия

в ошибках ничего нет

когда очищаю кэш вот что:
Консоль запущена...
PHP warning: unlink(/home/asd/sites/asd.ru/core/cache/includes/elements/modsnippet/36.include.cache.php): Permission denied
PHP warning: closedir(): supplied resource is not a valid Directory resource
Очистка основного кэша: MinifyX
Обработка дат автоматической публикации
-> 0 документов было опубликовано.
-> 0 документов было снято с публикации.
Восстановление кэша системных настроек: Обновлено успешно!
Восстанавление кэшей контекстов
-> mgr: Обновлено успешно!
-> web: Обновлено успешно!
лечится очисткой папки кэш и затем в менеджере «очистка кэша»

P.S.
snippet с id 36 это самописный снипет для крона
Игорь
06 декабря 2018, 17:26
modx.pro
1 572
0

mspYandexMoney как протестировать оплату?

Привет всем!
помогите протестировать оплату

на демо сайте установлен minishop2+mspYandexMoney
Логин: s16626
Пароль: 8c79gfq1fukD

Никак не могу провести тестовый платеж с использованием компонента mspYandexMoney.

Зарегистрировал приложение на demomoney.yandex.ru, получил идентификатор приложения и OAuth2 client_secret ну и номер демо кошелька.
Создал 2 странички, одна с ошибками внутри вызов сниппета
[[!mspYandexMoneyErrors]]
вторая успешной оплаты со сниппетом
[[!mspYandexMoneyConfirm]]
Все данные внес в системные настройки
Юрий Венедиктович
06 декабря 2018, 16:14
modx.pro
896
0

Migx вложенные tv, проблемы с источником файлов и путями у него.

Всем привет.
Вопрос такой:
Есть tv типа migx, вкладка формы такая:
[{"caption":"Салон", "fields": [
    {"field":"kids","caption":"Детский?","inputTVtype":"checkbox","inputOptionValues":"Да==Да"},
    {"field":"name","caption":"Наименование"},
    {"field":"adress","caption":"Адрес"},
    {"field":"phone","caption":"Телефон"},
    {"field":"slider","caption":"Фото слайдера","inputTV":"contactSliderforMigx"}
  ]
}]
contactSliderforMigx это тоже tv типа migx
У tv contactSliderforMigx вкладка формы такая:
[{"caption":"Изображение", "fields": [ 
{"field":"image","caption":"Изображение","inputTV":"migxImage","sourceFrom":"migx"}
]
}]
Max Roganov
06 декабря 2018, 13:40
modx.pro
2 200
0

Простой фильтр умножения

допустим есть продукт
цена его 37руб. он находится в TV [[+product-price]]
и есть количество продукта в TV [[+product-count]] по умолчанию: 10

и есть input во фронтенде
<input type="number"  value"[[+product-count]]">
теперь я хочу вывести Итоговую цену продукта умноженную на количество вывожу так:
Итого: [[+product-price:mpy=`[[+product-count]]`]]
в итоге получается 370руб., все ок, но как мне сделать что бы с фронтенда человек ввел свое количество в input, и сразу получил итоговую цену?
daemon
06 декабря 2018, 12:48
modx.pro
939
0

Не работает обновление настроек секций тикетов? Tickets

Версия плагина 1.9.2
При создании секции все настройки во вкладках дочерние тикеты и рейтинги сохраняются нормально. Но если редактировать в уже созданном разделе с тикетами то сбивается к заводским.
В логах пусто. Кеш/права чистил.
При обновлении сервер возвращает 200 ответ.
Вкладка основные работает как надо.
Может кто сталкивался и знает как поправить?
Vladislav Lutsky
05 декабря 2018, 22:47
modx.pro
2
912
+1

[РЕШЕНО] как в minishop2 добавить производителя программно?

Всем привет! Как в minishop2 добавить производителя программно?
Как создать товар программно я нашел, а как создать производителя — не знаю…
UPD: ответ нашел modx.pro/help/3298#comment-25813
Roman
05 декабря 2018, 20:55
modx.pro
1 298
0