Отправка письма из любого места

  • 5 Ответов
  • 221 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн truba

Здравствуйте, извиняюсь за неграмотность, но нужна помощь, подскажите пожалуйста, как можно инициировать отправку письма из самописного файла php.

Пытаюсь сделать так :
....
    JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_jshopping/models');
    $checkout = JSFactory::getModel('checkout', 'jshop');
    $checkout->sendOrderEmail($order_id);
....

т.е. есть id заказа, нужно инициировать выполнение sendOrderEmail когда мне нужно.

через var_dump понял что спотыкается при построении вида письма в файле /components/com_jshopping/models/checkout.php

вот здесь: $view = new JshoppingViewCheckout($view_config);

Понимаю что если написать плагин то может это всё само рассосется, но всё же хочется понять как обойти создание плагина и напрямую инициировать sendOrderEmail. В чем может быть причина ошибки в этом месте:  $view = new JshoppingViewCheckout($view_config); подойдут даже гипотезы)  Заранее всем спасибо!





*

Оффлайн robert

Re: Отправка письма из любого места
« Ответ #1 : 30.11.2016, 16:35:59 »
Скорее всего, из-за неправильных путей. Обратите внимание на константы JPATH_COMPONENT, JPATH_COMPONENT_SITE, JPATH_COMPONENT_ADMINISTRATOR: они меняются в зависимости от текущего компонента.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн dmitry_stas

Re: Отправка письма из любого места
« Ответ #2 : 30.11.2016, 16:39:54 »
Пытаюсь сделать так :
....
    JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_jshopping/models');
это не нужно.

это
require_once JPATH_SITE . '/components/com_jshopping/lib/factory.php';есть?

ну и хотелось бы вместо построения гипотез
ошибки в этом месте:  $view = new JshoppingViewCheckout($view_config); подойдут даже гипотезы
увидеть какая именно ошибка
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн truba

Re: Отправка письма из любого места
« Ответ #3 : 30.11.2016, 16:50:11 »
Скорее всего, из-за неправильных путей. Обратите внимание на константы JPATH_COMPONENT, JPATH_COMPONENT_SITE, JPATH_COMPONENT_ADMINISTRATOR: они меняются в зависимости от текущего компонента.
JPATH_COMPONENT_SITE да неопределен но я его заменил так было:
include_once(JPATH_COMPONENT_SITE."/views/checkout/view.html.php");
так стало : include_once(JPATH_ROOT."/components/com_jshopping"."/views/checkout/view.html.php");

может конечно и неверно заменил

dmitry_stas,

если убираю JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_jshopping/models'); то ошибка уже тут сразу $checkout = JSFactory::getModel('checkout', 'jshop');

require_once (JPATH_SITE.'/components/com_jshopping/lib/factory.php'); да есть.

ошибку попробую вывести, сейчас просто аяксом запускается php а он ошибку не возвращает, только пишет что 500.
« Последнее редактирование: 30.11.2016, 16:53:21 от truba »

*

Оффлайн truba

Re: Отправка письма из любого места
« Ответ #4 : 30.11.2016, 17:07:40 »
ура, письмо пришло) спасибо вам вместе помогли!
вот это добавил и всё норм стало define('JPATH_COMPONENT_SITE', JPATH_BASE.'/components/com_jshopping' );

ну и без вывода ошибок не справился бы) так что спасибо за подсказки!!

*

Оффлайн dmitry_stas

Re: Отправка письма из любого места
« Ответ #5 : 30.11.2016, 17:29:43 »
а да, виноват, посмотрел- JModelLegacy::addIncludePath выполняется в точке входа в компонент, а не в фактори.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций