Перейти к содержимому


Фотография
- - - - -

Оповещение пользователя о появлении материала

оповещение

  • Закрытая тема Тема закрыта
Сообщений в теме: 18

#11 usersJbzoo

usersJbzoo

Отправлено 26 May 2015 - 11:26

Весь код:


	$app = self::app();

        $submission = $event->getSubject(); // получаем объект события
        $params = $event->getParameters(); // получаем доп параметры
 
        $appParams = $params['appParams'];
        $item      = $params['item'];
        $subject   ='Письмо...'; 
       
        $elementCategId = $item->getPrimaryCategoryID();
              
        if ($elementCategId =2) 
        {
            $elementIMEI = $item->getElement('52d6af12-239b-46f0-967f-b457e8f52b49'); 
            $dataIMEI = (array)$elementIMEI->data(); // получаем данные элемента IMEI
         
            $elementsFinde = array(
            '_itemcategory' => '1',
            '52d6af12-239b-46f0-967f-b457e8f52b49'=>$dataIMEI['value']);
          
	    $items = JBModelFilter::model()->search($elementsFinde,'and',false,1,false,0,1,'');

 	  if (count($items) > 0) { 
  	 //отправляем письмо 
 		$userEmail = JFactory::getUser($items[0]->created_by)->email;
                if ($userEmail) {
                    $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout-payment');
                    $app->jbemail->sendByItem($userEmail, $subject, $items[0], $userLayout);
                }
        }

Получаем ошибку на search. 

1146 - Table 'galove_checkimei.yizyb_zoo_jbzoo_index_' doesn't exist SQL=SELECT DISTINCT tItem.id as id FROM yizyb_zoo_item AS tItem LEFT JOIN yizyb_zoo_jbzoo_index_ AS tIndex ON tIndex.item_id = tItem.id LEFT JOIN yizyb_zoo_jbzoo_sku AS tSku ON tSku.item_id = tItem.id LEFT JOIN yizyb_zoo_category_item AS tCategoryItem ON tCategoryItem.item_id = tItem.id WHERE tItem.access IN (1,5) AND tItem.state = '1' AND (tItem.publish_up = '0000-00-00 00:00:00' OR tItem.publish_up <= '2015-05-26 10:09:58') AND (tItem.publish_down = '0000-00-00 00:00:00' OR tItem.publish_down >= '2015-05-26 10:09:58') AND tItem.searchable = '1' AND tItem.application_id = '1' AND (tCategoryItem.category_id IN (1)) ORDER BY tItem.priority DESC LIMIT 1

Параметры exact и type оставили по умолчанию, не знаем что это.


  • 0

#12 usersJbzoo

usersJbzoo

Отправлено 26 May 2015 - 12:10

Причина ошибки была в параметре type.

$items = JBModelFilter::model()->search($elementsFinde,'and','product',1,false,0,1,'');


  • 0

#13 SmetDenis

SmetDenis

Отправлено 26 May 2015 - 12:29

Параметры exact и type оставили по умолчанию, не знаем что это.


exact - точный или полнотекстовый поиск (true / false).
type - алиас типа материала

Получается вопрос с API решен? заработало?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#14 usersJbzoo

usersJbzoo

Отправлено 26 May 2015 - 12:42

С фильтром разобрались, не получается с отправкой письма пользователю в найденном материале

 if ($userEmail) {
                    $app->jbemail->sendByItem($userEmail, $subject, $items[0], 'notif_mail.php');
                }

notif_mail.php взяли для проверки ordermail.php

 

Возможно $userEmail почему то пустой.

 

Подскажите, ссылку на пример формирования письма (работы с отправкой писем)?


  • 0

#15 SmetDenis

SmetDenis

Отправлено 26 May 2015 - 12:56

$app->jbemail->sendByItem($userEmail, $subject, $items[0], 'notif_mail.php');
Последним аргументом нужно указать шаблон материала, который будет использоваться как тело письма.

Раньше туда приходила строка "item.order.orderemail"
Видимо у вас должно быть что-то вроде "item.<ТИП МАТЕРИАЛА>.notif_mail"
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#16 usersJbzoo

usersJbzoo

Отправлено 26 May 2015 - 14:34

Как получить доступ к найденному item (он единственный должен вернуться из search)  из массива $items?

По индекс [0] - возвращает пустой. Обнаружили, что возвращает найденный item, если индекс  равен значению id_item (id элемента).


  • 0

#17 usersJbzoo

usersJbzoo

Отправлено 27 May 2015 - 06:51

Ошибка была в параметре фильтра - $dataIMEI['value'] - пустое значение. Из-за этого фильтр всегда возвращал один элемент.

Необходимо использовать $dataIMEI[0]['value'].

Далее используем foreach ($items as $itemf ) для доступа к элементу массива.


  • 0

#18 SmetDenis

SmetDenis

Отправлено 27 May 2015 - 22:19

Возможно вам поможет jbdump - https://github.com/smetdenis/jbdump
Помогает понять, что хранится в переменной.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#19 usersJbzoo

usersJbzoo

Отправлено 30 May 2015 - 05:08

Спасибо!

Почтовый отправитель jbemail, фильтрует тело письма. Что можете посоветовать, для создания письма с сылкой?


  • 0




Click to return to top of page in style!