Александр Мельник

Александр Мельник

С нами с 02 сентября 2016; Место в рейтинге пользователей: #64

modrestcurlclient.class.php в modx 2.7.3 - что за зверь? Создает миллион ошибок в логе

Скачал с офф сайта modx 2.7.3.
После установки смотрю лог ошибок, а там несколько тысяч
[2020-07-02 10:29:47] (ERROR in xPDO::getService @ /home/site/public_html/core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
[2020-07-02 10:29:47] (ERROR in modRestCurlClient::__construct @ /home/site/public_html/core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
Судя по пути, это что то из комплекта самого ядра modx.
Кто то сталкивался?
Как то не хочется начинать разработку на сайте, который сразу после установки завалил меня ошибками.
Александр Мельник
02 июля 2020, 11:18
modx.pro
1 089
0

Рассылка большого количества писем. Нужны советы.

Поделитесь опытом, кто сталкивался с ограничениями при отправке большого количества писем с сайта?
Как побеждали?
Есть магазин на modx. Он не занимается спамом, но писем клиентов отсылает много.
На данный момент заказ там совершается каждые 30 секунд, плюс много дополнительных писем (с промокодами, с личными данными для входа в кабинет) и по итогу наверное в минуту уходит 200-500 писем.

Сначала нас послал куда подальше хостинг, на котором находился почтовый сервер. Я перенастроил отправку через gmail (у заказчика куплен дорогой тариф у google), но сегодня google отрубил и эту почту.

Какие вообще в природе существуют способы отправки большого количества писем? Это нужно какие-то свои почтовые сервера поднимать?
Александр Мельник
29 июня 2020, 09:41
modx.pro
500
0

phpStorm со скидкой в 50 процентов

Если кто раздумывает над покупкой лицензии на phpStorm — вроде бы обещает официальную скидку от jetBrains в 50 процентов
www.jetbrains.com/lp/php-25/
Александр Мельник
09 июня 2020, 21:49
modx.pro
1 644
0

mFilter2 может вернуть на страницу min max стоимости?

Можно ли ни в чанках, которые отрисовывают фильтр, а в дальнейшем коде страницы получить данные о минимальной и максимальной стоимости товаров в этой категории?
как это работает например с плейсхолдером total для общего количества товаров?
Александр Мельник
09 июня 2020, 13:10
modx.pro
365
0

Господа, а как в modx писать данные в удаленную базу, да еще и не mysql а oracle?

Ну собственно весь вопрос в названии)
В тексте могу поделиться просто предисторией.
Один наш клиент решил вести учет своего товара на складе. И поскольку находятся они в Коррее, они наняли каких-то по-моему мексиканцев, которые пообещали им разработать программу для учета товаров и интегрировать ее с сайтом. 3 месяца никто не мог добиться от них информации, а что собственно они вообще делают, а вот на днях они сказали, мол все мы молодцы, мы закончили и уходим. Когда их резонно спросили, так не работает же ничего, главный хлопнул себя по голове, достал из кармана листок, на котором написано три строки — данные для подключения к базе oracle, на каком-то неизвестном сервере и сказал, что вот мол — пусть в эту базу сайт пишет данные а мы пить текилу.
Я вот признаюсь, для меня работа с удаленной базой, это вообще черный ящик. А еще и из modx. Ну в целом если у кого есть что сказать — буду рад.
Александр Мельник
04 июня 2020, 21:10
modx.pro
495
0

MODX и Microsoft_Dynamics_NAV, бывал ли у кого опыт?

Добрый день.
Хочу поинтересоваться, не сталкивался ли кто-то в работе с вот таким зверем
ru.wikipedia.org/wiki/Microsoft_Dynamics_NAV
Был ли опыт интеграции с modx?

Заказчик мило запамятовал, что им нужен не просто магазин, а неожиданно так полная интеграция с сервисом от microsoft, которым они пользуются в 50 магазинах и на 4 складах.
Александр Мельник
03 июня 2020, 15:09
modx.pro
335
0

кому не лень, поделитесь опытом по javascript

Решил я вот в одной из своих программ избавиться от jquery
Его там реально 4 строчки и нет смысла его тянуть.
Но что то я туплю.
У меня был некий обработчик события change у формы
$(document).on('change', this.config.filterWrapper, function () {
const filterData = $(this).serializeArray();
}
где this.config.filterWrapper это идентификатор формы.
Работает как нужно — события изменения любого элемента этой формы запускают этот код и что важно — this всегда ссылается на форму. Что позволяет следующей строкой получить в переменную все значения всех элементов формы, неважно какой именно был изменен.

Начинаю разбираться с событиями в javascript.
Опираюсь на это learn.javascript.ru/introduction-browser-events
и там описывается три способа создать реакцию на событие.
Есть три способа назначения обработчиков событий:
Атрибут HTML: onclick="...".
DOM-свойство: elem.onclick = function.
Специальные методы: elem.addEventListener(event, handler[, phase]) для добавления, removeEventListener для удаления.
Ну работать с инлайновым js и вписывать его в html не солидно, путаюсь понять работу addEventListener.
Пишу вот такое
document.addEventListener('change', function (event) {
            console.log(event.target);
        })
смущает тот факт, что отслеживаются все события change возникающие в документе
Александр Мельник
30 мая 2020, 17:53
modx.pro
1 174
0

Пропали все приложения из магазина modstore

Пока что на трех сайтах наблюдаю такую картину — перехожу в установку приложений, выбираю поставщик modstore и вижу надпись Всего пакетов у этого поставщика: 0
Александр Мельник
13 мая 2020, 16:25
modx.pro
543
0

Алгебраическое пересечение массивов

Вечно вы мне умные мысли подсказываете, может и сейчас так случиться.
Есть у меня вот такой ассоциативный массив
array (size=4)
  'width' => 
    array (size=2)
      0 => string '4' (length=1)
      1 => string '3' (length=1)
  'height' => 
    array (size=3)
      0 => string '5' (length=1)
      1 => string '4' (length=1)
      2 => string '3' (length=1)
  'presure' => 
    array (size=3)
      0 => string '5' (length=1)
      1 => string '4' (length=1)
      2 => string '3' (length=1)
  'nice' => 
    array (size=2)
      0 => string '5' (length=1)
      1 => string '3' (length=1)
Количество записей в этом массиве (ключей — width,height и так далее) так и количество данных может быть любым.
Мне для решения задачи нужно найти так называемое алгебраическое пересечение — то есть массив, в котором будут только те данные, которые есть в каждом из перечисленных выше. Конкретно для этого примера — я должен получить число 3 (ну в данном случае строку но не важно)
В php есть функция как раз подходящая
Александр Мельник
12 мая 2020, 00:24
modx.pro
428
0

ох уж это where

Хочу составить условие для нахождения товаров, по передаваемым значениям опций.
Вот часть кода
$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => 'height', 'msProductOption.value:IN'=> [152]));
$q->where(array(
    'msProductOption.key' => 'presure', 
    'msProductOption.value:IN'=> [900],

));
Идея в том, чтобы отобрать товары у которых И высота равна 152 и одновременно и давление 900.
Данный код в виде SQL выглядит так
SELECT DISTINCT(msProductOption.value), msProduct.id FROM `modx_ms2_product_options` AS `msProductOption` JOIN `modx_site_content` `msProduct` ON msProduct.id=msProductOption.product_id WHERE ( ( `msProductOption`.`key` = 'height' AND `msProductOption`.`value` IN ('152') ) AND ( `msProductOption`.`key` = 'presure' AND `msProductOption`.`value` IN ('900') ) ) ORDER BY msProductOption.value ASC
и ничего не возвращает, как в modx так и напрямую выполненный в mysql.
Хотя товар есть, который должен попасть под эту выборку.
Александр Мельник
06 мая 2020, 13:19
modx.pro
1 156
0