/** * Рассылка Заказчикам о новых проектах. * * @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; }