Beispiel #1
0
 /**
  * Рассылка Заказчикам о новых проектах.
  * 
  * @param int  сколько выбирать проектов
  * @param int  сколько выбирать юзеров за запрос
  *
  * @return int всего отправлено писем адресатам
  */
 public function EmpNewProj($show_limit = 10, $min_users = 200)
 {
     //$show_limit = 10;//выбирать проектов
     //$min_users = 200;//выбирать юзеров за запрос
     $projects = projects::GetNewProjectsPreviousDay($error, false, $show_limit, true);
     $projects_count = count($projects);
     if (!$projects_count) {
         return false;
     }
     $page = 0;
     $count = 0;
     $message = '';
     $current_date = time();
     $current_date_sufix = '_' . date('dmy', $current_date);
     //format:_270314
     foreach ($projects as $prj) {
         $message .= Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/emp_new_projects/project.tpl.php', array('url' => $GLOBALS['host'] . getFriendlyURL('project', array('id' => $prj['id'], 'name' => $prj['name'])), 'name' => $prj['name'] ? reformat($prj['name'], 50, 0, 1) : '', 'descr' => $prj['descr'], 'host' => $GLOBALS['host'], 'project_kind' => $prj['kind'], 'project_pro_only' => $prj['pro_only'] == 't', 'project_verify_only' => $prj['verify_only'] == 't', 'project_urgent' => $prj['urgent'] == 't', 'price' => $prj['cost'] ? CurToChar($prj['cost'], $prj['currency']) . getPricebyProject($prj['priceby']) : null, 'end_date' => $prj['end_date'], 'create_date' => $prj['create_date'], 'utm_param' => $this->_addUtmUrlParams('email', 'emp%UTM_CONTENT%', 'day_projects' . $current_date_sufix)));
     }
     //Подтягиваем баннер для работодателей
     $settings = new settings();
     $banner_file = $settings->GetVariable('newsletter', 'emp_banner_file');
     $banner_link = $settings->GetVariable('newsletter', 'emp_banner_link');
     $this->subject = 'Новые проекты на FL.ru';
     $this->message = Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/emp_new_projects/project_layout.tpl.php', array('projects' => $message, 'host' => $GLOBALS['host'], 'projects_cnt' => $projects_count, 'date' => strtotime('- 1 day'), 'join_url' => $GLOBALS['host'] . '/public/?step=1&kind=1', 'unsubscribe_url' => '%UNSUBSCRIBE_URL%', 'track_url' => '%TRACK_URL%', 'banner_file' => $banner_file, 'banner_link' => $banner_link));
     $this->recipient = '';
     $massId = $this->send('text/html');
     $statistics = array();
     while ($users = employer::GetPrjRecps($error, ++$page, $min_users)) {
         $this->recipient = array();
         foreach ($users as $user) {
             if (!$user['unsubscribe_key']) {
                 $user['unsubscribe_key'] = users::GetUnsubscribeKey($user['login']);
             }
             if ($user['last_years_ago'] > 0) {
                 $utm_content = $user['last_years_ago'] > 3 ? '_3y' : '_1-3y';
             } else {
                 $utm_content = $user['reg_days_ago'] > 7 ? '_1y' : '_new';
             }
             $utm = $this->_addUtmUrlParams('email', 'emp' . $utm_content, 'unsubscr_day_projects' . $current_date_sufix);
             //Накапливаем статистику
             $stat_idx = $user['reg_days_ago'] > 7 ? $user['reg_date_year'] : 'new';
             ++$statistics[$stat_idx];
             $this->recipient[] = array('email' => sprintf('%s %s [%s] <%s>', $user['uname'], $user['usurname'], $user['login'], $user['email']), 'extra' => array('USER_NAME' => $user['uname'], 'USER_SURNAME' => $user['usurname'], 'USER_LOGIN' => $user['login'], 'UTM_CONTENT' => $user['reg_days_ago'] > 7 ? $user['reg_date_year'] : '_new', 'UNSUBSCRIBE_URL' => "/unsubscribe/?type=new_projects&ukey={$user['unsubscribe_key']}" . $utm, 'TRACK_URL' => $GLOBALS['host'] . StatisticHelper::track_url(1, $stat_idx, $current_date, $user['login'] . $user['uid'])));
             ++$count;
         }
         $this->bind($massId, true);
     }
     //Собранную статистику отправляем в GA
     $statistics['total'] = $count;
     $ga = StatisticFactory::getInstance('GA');
     $ga->newsletterNewProjectsEmp($statistics, $current_date);
     return $count;
 }