コード例 #1
0
ファイル: Subscribe.php プロジェクト: dram1008/bogdan
 /**
  * Добавляет записи для рассылки в таблицу рассылки
  *
  * @param SiteContentInterface | \app\models\SubscribeItem $item тема письма
  */
 public static function add($item)
 {
     if ($item instanceof SiteContentInterface) {
         $subscribeItem = $item->getMailContent();
     } else {
         $subscribeItem = $item;
     }
     switch ($subscribeItem->type) {
         case self::TYPE_NEWS:
             $where = ['subscribe_is_news' => 1];
             break;
         case self::TYPE_SITE_UPDATE:
             $where = ['subscribe_is_site_update' => 1];
             break;
         case self::TYPE_MANUAL:
             $where = ['subscribe_is_tesla' => 1];
             //                $where = ['subscribe_is_test' => 1];
             break;
     }
     $emailList = User::query($where)->select('email')->andWhere(['not', ['email' => null]])->andWhere(['not', ['email' => '']])->andWhere(['is_active' => 1])->column();
     //        VarDumper::dump(count($emailList),3,false);exit;
     $rows = [];
     foreach ($emailList as $email) {
         $urlUnSubscribe = Url::to(['subscribe/unsubscribe', 'mail' => $email, 'type' => $subscribeItem->type, 'hash' => self::hashGenerate($email, $subscribeItem->type)], true);
         SubscribeMailItem::insert(['text' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->text), 'html' => str_replace('{linkUnsubscribe}', $urlUnSubscribe, $subscribeItem->html), 'subject' => $subscribeItem->subject, 'mail' => $email, 'date_insert' => time()]);
         $rows[] = $email;
     }
     \Yii::info($rows, 'tg\\subscribe');
 }