Форум русской поддержки Joomla!® CMS
07.12.2016, 12:40:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 450 раз)
0 Пользователей и 1 Гость смотрят эту тему.
biper
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Сообщений: 30


« : 31.05.2016, 09:36:53 »

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

Репутация: +0/-1
Offline Offline

Сообщений: 30


« Ответ #1 : 10.06.2016, 13:15:58 »

есть поле формы ad_headline, заполняемое пользователем при размещении на сайте объявления. Данные этого поля попадают в базу данных ybiper_info (каждое объявление имеет уникальный id) и хранятся в таблице x742k_adsmanager_ads в столбце ad_headline,
Нужно будет выводить данные из этого поля в формируемое для отправки менеджеру по электронной почте уведомление, т. е. получится сообщение типа "размещено новое объявление, в поле ad_headline указано: ****** " Уведомление создается компонентом в php, которого я не знаю.. Sad что нужно сделать.. как сформировать строку запроса чтобы вытащить данные этого поля в "{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
Давно я тут
****

Репутация: +34/-2
Offline Offline

Пол: Мужской
Сообщений: 352



« Ответ #2 : 14.08.2016, 17:45:06 »

Надо для этого вручную корректировать шаблон, где идет заменение данных. Просто 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
« Последнее редактирование: 14.08.2016, 17:52:05 от grinat » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet