invoice (счет-фактура) как вставить поля из AdsManager

  • 2 Ответов
  • 666 Просмотров

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

*

biper

  • Осваиваюсь на форуме
  • ***
  • 29
  • -1
необходимо, чтобы в уведомлении об оплате, формируемом компонентом invoice (счет-фактура) указаны были значения полей из adsmanager: заголовок объявления, телефон, категория объявления.. и т.п. Но! штатные настройки позволяют оперировать только теми полями, что в компоненте заданы ... типа {url_invoice}, {customer_id} и т. д.  Может знает кто, как можно сие реализовать ?  :D бо в кодовстве не волшебник...

*

biper

  • Осваиваюсь на форуме
  • ***
  • 29
  • -1
есть поле формы ad_headline, заполняемое пользователем при размещении на сайте объявления. Данные этого поля попадают в базу данных ybiper_info (каждое объявление имеет уникальный id) и хранятся в таблице x742k_adsmanager_ads в столбце ad_headline,
Нужно будет выводить данные из этого поля в формируемое для отправки менеджеру по электронной почте уведомление, т. е. получится сообщение типа "размещено новое объявление, в поле ad_headline указано: ****** " Уведомление создается компонентом в php, которого я не знаю.. :( что нужно сделать.. как сформировать строку запроса чтобы вытащить данные этого поля в "{ad_headline}"=>?

вот так пробую

//обращаюсь к базе данных
<? php $db = mysql_connect ("localhost","user","password");
mysql_select_db("ybiper_info",$db); ?>,

//ищу нужные значения
SELECT ad_headline FROM 'x742k_adsmanager_ads' WHERE ad_headline =>$result

//
//формирую окончательный вид запроса
"{ad_headline}"=>$result

что не так?

*

grinat

  • Давно я тут
  • ****
  • 356
  • 32
Надо для этого вручную корректировать шаблон, где идет заменение данных. Просто invoicng с AdsManager ничего не берет, кроме связывающего ID, в котором идентификатор(точно не помню, то ли счета в paidsystem, то ли id объявления). Можно врезаться в место, где идет замена включенных по умолчанию тэгов и прописать там свои. Это в administrator\components\com_invoicing\helpers\format.php функция replaceTags

Могу ошибаться, но по моему $invoice->generator_key выдаст id объявления AdsManager(если там id чего-то из paidsystem, то сначала запрос к piadsytem, и из него уже точно можно получить id объявления). Зная id можно получить уже остальные данные:
$db =& JFactory::getDBO();
$db->setQuery('SELECT * FROM #__adsmanager_ads WHERE id='. $invoice->generator_key);//также объявление может быть все еще в #__pending_ads, там данные хранятся в json формате, из json в массив их легко можно получить через json_decode
$adinfo = $db->loadObject();

Получив данные об объявлении, уже создаем свои тэги для замены. Там есть большой массив, где правила просиываются: "{customer_email}"=>@$invoice->buyer->email, "{customer_mail}"=>@$invoice->buyer->email, "{customer_zip}"=>$invoice->buyer->zip, и т.д.
туда вставляем что нужно например:
"{ad_headline}"=>@$adinfo->ad_headline,

И тогда если прописать в шаблоне {ad_headline} то отобразиться заголовок объявления.

Там же где врезались, можете в принципе свои правила прописать, например разместить код для отправки email менеджеру и т.д., хотя это не совсем правильно надо по идее делать в том месте где происходит отправка писем, то есть в administrator\components\com_invoicing\helpers\mail.php