Евгений Лазарев

Евгений Лазарев

С нами с 06 августа 2018; Место в рейтинге пользователей: #417
Евгений Лазарев
08 декабря 2021, 18:59
0
Добрый день. Подскажите а есть возможность в migx делать зависимость полей. К примеру у меня 2 поля:
1) Продукты типа listbox с Input Option Values:
@SELECT CONCAT(pagetitle,' - ',id), id FROM modx_site_content WHERE template=6 AND deleted=0
2) Модификации типа listbox с Input Option Values:
@SELECT CONCAT(name,' - ',id), id FROM modx_msop_modifications WHERE active=1 AND rid=[[+id]]
То есть опции модификации зависят напрямую от выбранного продукта?
Евгений Лазарев
19 ноября 2021, 12:29
0
Виталий подскажите пожалуйста с версией 1.2.1 почему то для выгрузок в 1000 и более товаров стала прерываться на этапе загрузки изображений с 500 error. В общем логе ничего. Ответ 1С
Отправка запроса на авторизацию.
Отправка запроса на инициализацию, для определения версии обмена данных.
{ОбщийМодуль.Б_ОбщиеПроцедурыИФункцииОбменаССайтом.Модуль(2462)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)
Соединение.ОтправитьДляОбработки(ПолноеИмяФайла, СокрЛП(ПараметрыЗапроса), ИмяФайлаОтвета, СокрЛП(Заголовки));
по причине:
Ошибка при выполнении файловой операции 'assets/components/msync/1c_exchange.php?type=catalog&mode=file&filename=import_files/116327_1.jpg&'
по причине:
Ошибка работы с Интернет: внутренняя ошибка сервера (500). <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
webmaster@yahont.online to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>

по причине:
Ошибка работы с Интернет: внутренняя ошибка сервера (500)
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:\Users\Пользователь\AppData\Local\Temp\3 001 078 109\webdata\000000002\goods\0\import_files\116327_1.jpg).
Ответ сервера:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
webmaster@yahont.online to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>

Ответ сервера: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
webmaster@yahont.online to inform them of the time this error occurred,
and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>
Подскажите в чем может быть проблема. Все лимиты увеличены до упора.
Евгений Лазарев
16 октября 2021, 20:40
0
Попробуйте, если не верите. Просто в настройках оплаты сотрите в параметре доп цены все символы. Дело в том что ниже по коду идет
$cost += $add_price
. А поскольку $add_price = "", то в лог пишется ошибка, что не корректная операция происходит. Заказ создается без сбоев нормально, но в лог +2 ошибки, поскольку во время создания заказа getCost() вызывается 2 раза.
Евгений Лазарев
16 октября 2021, 16:31
0
Уважаемые разработчики замените пожалуйста в новой версии в mspaymenthandler.class.php в метод getCost строку
$add_price = $payment->get('price');
на
$add_price = $payment->get('price') ?: 0;
Сейчас сам столкнулся с тем что менеджеры удаляют параметр доп цены и в лог валится ошибка неверного формата — пустая строка.
Евгений Лазарев
17 июня 2021, 12:23
0
Добрый день. Столкнулся с проблемой: при загрузке нескольких изображений (абсолютно разных с разными именами) выскакивает ошибка. Проблема существует уже давно. Есть топик с решением modx.pro/help/12445. Решение работает, но к сожалению при обновлении Minishop2 это все исчезнет. Если есть возможность исправить в будущем обновлении, был бы благодарен. Спасибо.
Евгений Лазарев
15 июня 2021, 11:35
0
Роман, извините, не хотел Вас обидеть. Эту документацию я уже много раз читал и понимаю что там находится. Там говорится лишь о удобности использования объекта msProduct, который объединяет в себе другие таблицы. Так же там сказано о возможности подключения своих плагинов и рассказан принцип. Я же хочу написать свой компонент (minishop2 в данном случае не установлен). Но спасибо за Ваше участие. Еще раз прошу прощения, если показался грубым.
Евгений Лазарев
15 июня 2021, 11:18
0
Спасибо Роман конечно, но вы уже второй раз не по делу пишите. Тут речь идет о СОЗДАНИИ своего компонента на основе существующего.
Евгений Лазарев
14 июня 2021, 15:57
0
Короче вдруг кому пригодится. Вся магия происходит в msproduct.class.php, пока еще я там не разбирался. Но вызываться этот класс просто так не будет. Чтобы он вызывался, необходимо как в minishop2 добавить существующее поле class key с именем твоего класса
<object class="hdOrder" extends="modResource">
        <field key="class_key" dbtype="varchar" precision="100" phptype="string" null="false" default="hdOrder"/>

        <composite alias="Data" class="hdOrderData" local="id" foreign="id" cardinality="one" owner="local"/>
    </object>
И только после этого msproduct.class.php или в данном случае hdorder.class.php будет вызываться.
Евгений Лазарев
13 июня 2021, 16:48
0
Глупость сказал, не посмотрел на сокращение. Записи не доступны. Я подумал про hdOrderData. Файл hdorder.class.php при die() в __construct ноль внимания. хотя в mysql карту объекта все есть. Единственное различие с minishop2 разве что в том что нет поля class_key.
Евгений Лазарев
13 июня 2021, 16:18
0
Спасибо тебе добрый человек. Я на него думал, но так и не смог понять где он подключается (сам msproduct.class.php).
Евгений Лазарев
11 июня 2021, 19:25
0
Делал на основе modextra. Там автоматическое создание классов. Да через getObject все показывает. Думал может в processor связка какая но нет.
Евгений Лазарев
11 июня 2021, 15:46
0
Уважаемые разработчики. Вопрос не совсем по теме, но все же. Вдруг кто откликнется. Как из своей таблицы добавить данные в $_modx->resource, как это сделано в minishop2? Если что вот ссылка на вопрос. Очень не хватает компетентного ответа. modx.pro/help/21936
Евгений Лазарев
11 июня 2021, 14:58
0
Нет. Это совершенно не то.
Евгений Лазарев
03 июня 2021, 12:57
0
Да спасибо большое. Не хватало hiddenName оказывается. Что самое интересное этот параметр указан при создании, а при обновлении я его упустил.
Евгений Лазарев
13 мая 2021, 13:04
0
Всем привет. Обнаружил ошибку работы данной версии с CKEditor — не работает прикрепление изображения -> выбор на сервере. Открывается пустое окно не показывающее файловую систему для поиска файла. В ошибках доступ запрещен. Сначала подумал на баг, но Слава Богу нашелся сайт с версией 2.8.1 в котором все работало. Провел обновление этого сайта — результат пустое окно.
Евгений Лазарев
26 апреля 2021, 16:38
0
Добрый день. Подскажите. Пришлось письмо от PayPal
PayPal расширяет инфраструктуру мгновенных уведомлений о платежах, которая используется для информирования продавцов о событиях, связанных со статусом операций PayPal. В результате этого изменения к IP-адресам, с которых мгновенные уведомления о платежах отправляются с 18 января 2021 года, добавлены семь новых IP-адресов. 
 
Ниже приведены все IP-адреса, используемые для мгновенных уведомлений о платежах.
 
66.211.170.66
173.0.81.1
173.0.81.0/24
173.0.81.33
173.0.81.65 (новый)
173.0.81.140 (новый)
64.4.240.0/21 (новый)
64.4.248.0/22 (новый)
66.211.168.0/22 (новый)
173.0.80.0/20 (новый)
91.243.72.0/23 (новый)
 
Дальнейшие действия
 
Если к мгновенным уведомлениям о платежах, получаемым от PayPal, применяется фильтрация IP-адресов или список управления доступом, рекомендуется добавить туда до 3 мая 2021 года все указанные выше IP-адреса.
На сколько я знаю реализация работы с PayPal идет с minishop2. Где можно пофиксить данные изменения?
Евгений Лазарев
27 февраля 2021, 17:18
2
0
Уважаемые разработчики, хотел бы попросить. Можно ли в следующем релизе изменить формат телефона в msorderhandler.class.php? Каждый раз приходится строчку менять на
substr(preg_replace('/[^-+()0-9]/iu', '', $value), 0, 16);
Нужен многим формат +7(999)999-99-99, то есть и "+" нужен и скобки, а в общей сумме получается 16 символов. Буду очень признателен.
Евгений Лазарев
31 января 2021, 13:27
+1
Вдруг кому понадобится: я решил этот момент следующим образом:
1) создал кастомный сlass customFilter extends mse2FiltersHandler, возможность создания которого предусмотрена компонентом
2) переназначил функцию constract
public function __construct(mSearch2 &$mse2, array $config = array()) {
		parent::__construct($mse2, $config);
        $this->catalogBanners();
	}
3) В своей функции catalogBanners() выполнил что мне нужно:
public function catalogBanners(){
        $banners = json_decode($this->modx->resource->getTVValue('migx_catbans'),true);

        $fabrics = $_REQUEST['fabric'] ? explode(',',$_REQUEST['fabric']) : [];
        $metals = $_REQUEST['metal'] ? explode(',',$_REQUEST['metal']) : [];

        $key = md5(implode('|', array_merge($fabrics, $metals)));

        if (isset($_SESSION['catbans']) and $_SESSION['catbans']['key'] === $key){
            return true;
        }
        shuffle($banners);

        $is_main = (empty($fabrics) and empty($metals)) ? true : false;

        $catbans = [];
        foreach ($banners as $idx=>$banner){
            $is_good = true;
            $migx_fabric = is_array($banner['fabric']) ? $banner['fabric'] : explode(',',$banner['fabric']);
            if (empty(array_intersect($fabrics, $migx_fabric)) and !empty($banner['fabric']) and !$is_main){
                $is_good = false;
            }
            $migx_metal = is_array($banner['metal']) ? $banner['metal'] : explode(',',$banner['metal']);
            if (empty(array_intersect($metals, $migx_metal)) and !empty($banner['metal']) and !$is_main){
                $is_good = false;
            }
            if ($is_good){
                //Расчет позиции нахождения баннера (3,17,35,49,67)
                $position = 3 + count($catbans) * 14 + intdiv(count($catbans), 2) * 4;
                $catbans[$position] = $banner;
            }
        }

        $_SESSION['catbans'] = $catbans;
        $_SESSION['catbans']['key'] = $key;

        return true;
    }
4) в tpl mFilter2 уже обращаясь к сессии взял что мне нужно:
{var $catbans = $.session.catbans}
{if $catbans[$idx]}
<a href="{$catbans[$idx]['href']}" class="banner">
    <img src="/images/{$catbans[$idx]['img']}" alt="" />
</a>
{/if}
Итого:
— вызывается 1 раз, как и нужно и с появлением контента
— нет причин бояться обновления компонента