В этом вопросе мало кто поможет разобраться. Он слишком объемный, только телепаты могут справиться. Или объявлять бюджет, чтобы кто-то подключился, или самому ковырять. Вариантов больше нет.
class SiteWebPublicMailerProcessor extends modProcessor{
public $body = '';
public function initialize(){
$this->setDefaultProperties(
array(
'from_email' =>'no-replay@'.$_SERVER['HTTP_HOST']
,'from_name' =>$this->modx->getOption('site_name')
,'body' =>'hello world!'
)
);
/*
в моем случае существует ресурс с настройками (Твшки)
оттуда тянем email для отправки */ if ($settings = $this->modx->getObject('modResource',2)){ $this->setProperty('to_email', $settings->getTVValue('email')); }
if (!$this->getProperty('to_email')){
$this->addFieldError('to_email', 'Ошибка получения email адреса.');
}
if ($this->hasErrors()){
return 'Возникли ошибки при отправке сообщения.';
}
return parent::initialize();
}
public function process(){ $this->body = $this->prepareMailBody(); if ($this->SendMail()){ return $this->success('Сообщение успешно отправлено.'); } else { return $this->failure('Сообщение не отправлено.'); } }
public function prepareMailBody(){ return ''; }
public function SendMail(){ $this->modx->getService('mail', 'mail.modPHPMailer'); $this->modx->mail->set(modMail::MAIL_BODY,$this->body); $this->modx->mail->set(modMail::MAIL_FROM,$this->getProperty('from_email')); $this->modx->mail->set(modMail::MAIL_FROM_NAME,$this->getProperty('from_name')); $this->modx->mail->set(modMail::MAIL_SUBJECT,$this->getProperty('subject')); $this->modx->mail->address('to', $this->getProperty('to_email')); $this->modx->mail->setHTML(true); $status = $this->modx->mail->send(); $this->modx->mail->reset(); return $status; }
} return 'SiteWebPublicMailerProcessor';
Имеется произвольный запрос SQL на выборку (строка). Как быстрее всего получить список полей, возвращаемых этим запросом? Запрос может возвращать пустой результат. В этом случае список полей тоже должен быть корректно получен. Можно это реализовать через mysqli + fetch_fields, но этот вариант неуниверсален (только для mysql) и без участия modx. Идеальный вариант = методами modx + универсально (для любой поддерживаемой modx СУБД) + без выполнения запроса (только парсинг запроса) Кто какие варианты может предложить?
Хм, ну на сайте категория создалась. Создались категории: «POS мониторы», «POS моноблоки», «Антивандальные клавиатуры» Вот что говорит error.log # tailf ../../../cache/logs/error.log [2015-05-08 16:09:17] (ERROR @ /assets/components/shopmodx1c/connectors/exchange/catalog/import.php) STEP: 4 [2015-05-08 16:09:17] (ERROR @ /assets/components/shopmodx1c/connectors/exchange/catalog/import.php) Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008' [2015-05-08 16:09:17] (ERROR @ /assets/components/shopmodx1c/connectors/exchange/catalog/import.php) Failure: Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008' Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008' [2015-05-08 16:09:17] (ERROR @ /assets/components/shopmodx1c/connectors/exchange/catalog/import.php) Array ( [0] => Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008' [1] => Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008' ) А вот что в import.xml <?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.05" ДатаФормирования="2015-05-08T21:09:01"> <Классификатор> <Ид>14a06ba4-8cdc-4d03-95e3-3a5b7c5deb92</Ид> <Наименование>Классификатор (Основной каталог товаров)</Наименование> <Владелец> <Ид>35dfefdc-3577-11e3-3693-902b3496047b</Ид> <Наименование>Тайм</Наименование> <ОфициальноеНаименование>Тайм</ОфициальноеНаименование> </Владелец> <Группы> <Группа> <Ид>ddc6d20f-130a-11e4-becb-005056c00008</Ид> <Наименование>POS мониторы</Наименование> </Группа> <Группа> <Ид>ddc6d210-130a-11e4-becb-005056c00008</Ид> <Наименование>POS моноблоки</Наименование> </Группа> <Группа> <Ид>ddc6d214-130a-11e4-becb-005056c00008</Ид> <Наименование>Антивандальные клавиатуры</Наименование> <Группы> <Группа> <Ид>ddc6d22b-130a-11e4-becb-005056c00008</Ид> <Наименование>Встраиваемые антивандальные клавиатуры</Наименование> </Группа> <Группа> <Ид>ddc6d22c-130a-11e4-becb-005056c00008</Ид> <Наименование>Встраиваемые антивандальные клавиатуры с Touchpad</Наименование> </Группа> <Группа> <Ид>ddc6d22d-130a-11e4-becb-005056c00008</Ид> <Наименование>Встраиваемые антивандальные клавиатуры с Trackball</Наименование> </Группа> <Группа> <Ид>ddc6d229-130a-11e4-becb-005056c00008</Ид> <Наименование>Настольные антивандальные клавиатуры c Touchpad</Наименование> </Группа> <Группа> <Ид>ddc6d22a-130a-11e4-becb-005056c00008</Ид> <Наименование>Настольные антивандальные клавиатуры с Trackball</Наименование> </Группа> </Группы> </Группа> Может кто помочь разобраться?
Вдвоем написали примерно одно и то же, просто разными словами)))
То и значит, что категории с артикулом таким нет. Тут надо смотреть приходящие данные. Или категория не создалась, или в выгрузке товар, для которого категории нет, или еще что-то. Однозначного ответа нет при импорте с 1С. Всегда по ситуации…
Копать в сторону раздела с артикулом «ddc6d214-130a-11e4-becb-005056c00008». Очевидно же. Смотрите загруженный на сайт XML-файл, ищите в нем этот раздел, смотрите был ли он создан на сайте. Если нет, то почему и т.д. и т.п. Интеграция с 1С редко бывает проста.
Здравствуйте, а у меня импорт начинается, импортируется пару категорий, а потом в 1С 8.2 ошибка «Не был получен раздел с артикулом 'ddc6d214-130a-11e4-becb-005056c00008'». Кто знает куда копать?