예제 #1
0
 /**
  * Конструктор класса.
  *
  * @param integer $year год, для которого инициализируем данные
  *
  * @return void
  */
 public function __construct($year)
 {
     $this->regFromTm = strtotime($this->periods[$year][0]);
     $this->regToTm = strtotime($this->periods[$year][1]) + 24 * 3600;
     $this->year = $year;
     $status = settings::GetVariable('birthday' . $this->year, 'status');
     $this->isClosed = !$status && (time() < $this->regFromTm || time() > $this->regToTm) || $status == 'close';
 }
예제 #2
0
 /**
  * Вывод страницы для оплаты пластиковыми картами.
  */
 public function cardAction()
 {
     front::og('tpl')->page = 'index';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php';
     $user = new users();
     $user->GetUser($_SESSION['login']);
     $city = $user->city ? city::GetCityName($user->city) : '';
     $reqv = sbr_meta::getUserReqvs($user->uid);
     $card_account = new card_account();
     $card_account->account_id = $this->account->id;
     $order_id = $card_account->Add();
     $sum = round(trim($_REQUEST['sum']), 4);
     $merchant = settings::GetVariable('billing', 'card_merchant');
     front::og('tpl')->sum = $sum;
     front::og('tpl')->card_account = $card_account;
     front::og('tpl')->order_id = $order_id;
     front::og('tpl')->city = $city;
     front::og('tpl')->user = $user;
     front::og('tpl')->reqv = $reqv[sbr::FT_PHYS];
     front::og('tpl')->script = '/scripts/bill2.js';
     if ($order_id > 0) {
         $tpl_file = '';
         if ($merchant) {
             $tpl_file = '_dol';
         }
         front::og('tpl')->display("bill/bill_card_step2{$tpl_file}.tpl");
     }
 }
예제 #3
0
switch ($action) {
    case 'delete':
        $id = trim($_GET['id']);
        if ($id) {
            $error = birthday08::Delete($id);
        }
        break;
    case 'status':
        $msettings->SetVariable('birthday08', 'status', $_GET['value']);
}
$users = birthday08::GetAll();
?>
<script src="/scripts/warning.js" type="text/javascript"></script>

<?php 
if ($msettings->GetVariable('birthday08', 'status') == 'open') {
    ?>
		<B>Статус регистрации: Открыта</B> &nbsp;&nbsp;&nbsp; &raquo; <A href="./?action=status&value=close" class="blue">Закрыть</A>

<?php 
} else {
    ?>

		<B>Статус регистрации: Закрыта</B> &nbsp;&nbsp;&nbsp; &raquo; <A href="./?action=status&value=open" class="blue">Открыть</A>

<?php 
}
?>

<br><br><br>
예제 #4
0
define('MAX_SIZE', 5 * 1024 * 1024);
//5Mb
$action = __paramInit('string', 'action', 'action');
$type = __paramInit('bool', 'type', 'type');
$type_prefix = $type == 1 ? 'emp_' : '';
$settings = new settings();
switch ($action) {
    case 'save':
        $uploaded_file = new CFile($_FILES['file']);
        $uploaded_file->server_root = 1;
        $uploaded_file->max_size = MAX_SIZE;
        $uploaded_file->allowed_ext = array('jpg', 'jpeg', 'gif', 'png');
        $filename = $uploaded_file->MoveUploadedFile(BANNER_PATH);
        if (!count($uploaded_file->error) && $filename) {
            $settings->AddVariable('newsletter', $type_prefix . 'banner_file', WDCPREFIX . '/' . $uploaded_file->path . $uploaded_file->name);
            $settings->AddVariable('newsletter', $type_prefix . 'banner_link', __paramInit('string', null, 'link'));
        }
        header_location_exit('./#' . ($type == 1 ? 'emp' : 'frl'));
        break;
    case 'delete':
        $settings->SetVariable('newsletter', $type_prefix . 'banner_file', null);
        $settings->SetVariable('newsletter', $type_prefix . 'banner_link', null);
        break;
}
$newsletter_banner_file = $settings->GetVariable('newsletter', 'banner_file');
$newsletter_banner_link = $settings->GetVariable('newsletter', 'banner_link');
$newsletter_emp_banner_file = $settings->GetVariable('newsletter', 'emp_banner_file');
$newsletter_emp_banner_link = $settings->GetVariable('newsletter', 'emp_banner_link');
$content = '../content.php';
$inner_page = 'inner_index.php';
include $rpath . 'template2.php';
예제 #5
0
 /**
  * Инициализируем тип оплаты на странице.
  *
  * @todo: более данный механизм не используется, хотя можно было на его базе попробовать использовать ЯДКассу
  * 
  * @param string $type_payment Название тип оплаты (передается в $_GET['type'])
  */
 public function setPaymentMethod($type_payment)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/exrates.php';
     switch ($type_payment) {
         case 'sber_print':
             $this->payment_template = 'bank/tpl.bank_fiz_print.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             break;
         case 'sber':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/bank_payments.php';
             $this->payment_template = 'bank/tpl.bank_fiz.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->pm = new bank_payments();
             $this->pm->bank_code = __paramInit('int', null, 'bc', bank_payments::BC_SB);
             $this->pm->sum = __paramInit('float', null, 'Sum');
             $bp_reqv = bank_payments::GetLastReqv($this->pm->bank_code, $this->user['uid']);
             $this->pm->fio = $bp_reqv['fio'];
             $this->pm->address = $bp_reqv['address'];
             if (!$this->pm->bill_num) {
                 $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']);
             }
             if (isset($_POST['action']) && $_POST['action'] == 'payment') {
                 $this->pm->fio = substr(__paramInit('string', null, 'fio'), 0, 128);
                 $this->pm->is_gift = false;
                 $this->pm->address = substr(__paramInit('string', null, 'address'), 0, 255);
                 $this->pm->bank_code = __paramInit('int', null, 'bc');
                 $this->pm->sum = __paramInit('float', null, 'sum');
                 setlocale(LC_ALL, 'en_US.UTF-8');
                 // гребанная бета! (это не мое)
                 $this->pm->fm_sum = $bp->sum / EXCH_TR;
                 $id = __paramInit('int', null, 'id');
                 if ($this->pm->sum < 10) {
                     $alert['sum'] = 'Минимальная сумма платежа 10 рублей';
                 }
                 if (!$this->pm->fio) {
                     $alert['fio'] = 'Поле заполнено некорректно.';
                 }
                 if (!$this->pm->address) {
                     $alert['address'] = 'Поле заполнено некорректно.';
                 }
                 if (!$alert) {
                     if ($id) {
                         $this->pm->bank_code = null;
                         $this->pm->Update($id, " AND user_id = {$this->user['uid']} AND accepted_time IS NULL");
                     } else {
                         $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']);
                         $this->pm->user_id = $this->user['uid'];
                         $this->pm->op_code = 12;
                         $id = $this->pm->Add($error, true);
                     }
                     if (!$error) {
                         $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                         if ($prepare) {
                             header("Location: /bill/payment/print/?type=sber_print&id={$id}");
                             exit;
                         }
                     }
                 }
                 $this->error = $alert;
             }
             $this->bank = bank_payments::GetBank($bp->bank_code);
             break;
         case 'bank_print':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
             if ($_GET['order'] > 0) {
                 $this->payment_template = 'bank/tpl.bank_jur_transfer.php';
                 $this->tid = intval($_GET['order']);
             } else {
                 $this->payment_template = 'bank/tpl.bank_jur_print.php';
             }
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->bank_sum = $_SESSION['sum_bank_print'];
             $this->bank_id = $_SESSION['id_bank_print'];
             unset($_SESSION['sum_bank_print'], $_SESSION['id_bank_print']);
             break;
         case 'bank':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
             $this->payment_template = 'bank/tpl.bank_jur.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->pm = new reqv();
             $reqvByUid = $this->pm->GetByUid($this->user['uid']);
             $reqvs_ord = new reqv_ordered();
             $this->pm->billNum = sizeof($reqvs_ord->GetByUid($this->user['uid']));
             $this->pm->BindRequest($reqvByUid[0]);
             if (isset($_POST['action']) && $_POST['action'] == 'payment') {
                 $_POST['country'] = country::getCountryName($_POST['country_db_id']);
                 $_POST['city'] = city::getCityName($_POST['city_db_id']);
                 $this->pm->BindRequest($_POST);
                 $this->error = $this->pm->CheckInput();
                 if ($_POST['sum'] < 10) {
                     $this->error['sum'] = 'Минимальная сумма платежа 10 рублей';
                 }
                 if (!$this->error) {
                     $this->pm->user_id = $this->user['uid'];
                     if ($reqvByUid[0]['id'] > 0) {
                         $id = $reqvByUid[0]['id'];
                         $this->pm->Update($id, " AND user_id= {$this->user['uid']}");
                     } else {
                         $id = $this->pm->Add($err, true);
                     }
                     $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                     if ($prepare) {
                         $_SESSION['id_bank_print'] = $id;
                         $_SESSION['sum_bank_print'] = intval($_POST['sum']);
                         header('Location: /bill/payment/print/?type=bank_print');
                         exit;
                     }
                 }
             }
             break;
         case 'alphabank':
             $this->payment_template = 'bank/tpl.alphabank.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             if (isset($_POST['action']) && $_POST['action'] == 'reserve') {
                 header('Location: /bill/');
                 exit;
             }
             break;
         case 'card':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/cardpay.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/onlinedengi_cards.php';
             $this->payment_template = 'card/tpl.card.php';
             $this->type_menu_block = 'card';
             $this->payment_type = exrates::CARD;
             $this->card_merchant = settings::GetVariable('billing', 'card_merchant');
             if ($this->card_merchant) {
                 $card_account = new card_account();
                 $card_account->account_id = $this->acc['id'];
                 $this->pm = new onlinedengi_cards();
                 if (!$this->not_init_pm) {
                     $this->pm->order_id = $card_account->Add();
                 }
             } else {
                 $this->pm = new card_account();
                 $this->pm->account_id = $this->acc['id'];
                 if (!$this->not_init_pm) {
                     $this->pm->order_id = $this->pm->Add();
                 }
                 $this->pm->reqv = sbr_meta::getUserReqvs($this->user['uid']);
             }
             break;
         case 'qiwi':
             $this->payment_template = 'terminal/tpl.qiwi.php';
         case 'svyasnoy':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.svyasnoy.php';
         case 'euroset':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.euroset.php';
             $this->type_menu_block = 'terminal';
             $this->payment_type = exrates::OSMP;
             if ($_POST['action'] == 'osmp') {
                 $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                 if (!$this->test && $prepare !== false) {
                     header('Location: /bill/');
                     exit;
                 }
             } else {
                 $this->error = 'Ошибка создания списка оплаты';
             }
             break;
         case 'megafon_mobile':
             $this->payment_template = 'mobile/tpl.m_megafon.php';
         case 'beeline_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_beeline.php';
         case 'mts_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_mts.php';
         case 'matrix_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_matrix.php';
             $this->type_menu_block = 'mobilesys';
             $this->payment_type = exrates::MOBILE;
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php';
             $this->pm = new qiwipay($this->user['uid']);
             if ($_POST['operator'] == 'megafon' || $_POST['operator'] == 'beeline' || $_POST['operator'] == 'mts' || $_POST['operator'] == 'matrix') {
                 $phone = __paramValue('string', $_POST['phone']);
                 $phone = str_replace(array('+7', '+77'), '', $phone);
                 $err = 0;
                 switch ($_POST['operator']) {
                     case 'megafon':
                         if (!(strpos($phone, '34') === 0 || strpos($phone, '62') === 0 || strpos($phone, '82') === 0 || strpos($phone, '92') === 0 || strpos($phone, '35') === 0 || strpos($phone, '63') === 0 || strpos($phone, '83') === 0 || strpos($phone, '93') === 0 || strpos($phone, '69') === 0 || strpos($phone, '99') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Мегафон';
                             $err = 1;
                         }
                         break;
                     case 'beeline':
                         if (!(strpos($phone, '90') === 0 || strpos($phone, '96') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Beeline';
                             $err = 1;
                         }
                         break;
                     case 'mts':
                         if (!(strpos($phone, '91') === 0 || strpos($phone, '98') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети МТС';
                             $err = 1;
                         }
                         break;
                     case 'matrix':
                         if (!(strpos($phone, '958') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Matrix';
                             $err = 1;
                         }
                         break;
                 }
                 if (!$err) {
                     $sum = __paramValue('float', $_POST['sum']);
                     $request = array('phone' => $phone, 'sum' => $sum, 'oper_code' => $_POST['operator']);
                     $created = $this->pm->createBill($request);
                     if (!$created) {
                         $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                         if (!$this->test && $prepare !== false) {
                             header('Location: /bill/');
                             exit;
                         }
                     } else {
                         $this->error = $created;
                     }
                 }
             }
             break;
         case 'webpay':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::WEBM;
             $this->payment_template = 'psys/tpl.webpay.php';
             break;
         case 'qiwipurse':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php';
             $this->pm = new qiwipay($this->user['uid']);
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::QIWIPURSE;
             $this->payment_template = 'psys/tpl.qiwipurse.php';
             if ($_POST['action'] == 'qiwipurse') {
                 $phone = __paramValue('string', $_POST['phone']);
                 $phone = str_replace(array('+7', '+77'), '', $phone);
                 $sum = __paramValue('float', $_POST['sum']);
                 $request = array('phone' => $phone, 'sum' => $sum);
                 $created = $this->pm->createBill($request);
                 if (!$created) {
                     $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                     if (!$this->test && $prepare !== false) {
                         header('Location: /bill/');
                         exit;
                     }
                 } else {
                     $this->error = $created;
                 }
             }
             break;
         case 'yandex':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::YM;
             $this->payment_template = 'psys/tpl.yandex.php';
             break;
         case 'webmoney':
             $this->type_menu_block = 'psys';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php';
             $this->payment_type = exrates::WMR;
             $this->payment_template = 'psys/tpl.webmoney.php';
             $this->pm = new pmpay();
             break;
         case 'okpay':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::OKPAY;
             $this->payment_template = 'psys/tpl.okpay.php';
             break;
     }
     $this->type_payment = $type_payment;
 }
예제 #6
0
 /**
  * @todo: замена NewProj
  * 
  * Рассылка о новых проектах за предыдущий день. Вызывается раз в день из hourly.php
  * 
  * @param array $uids - массив идентификаторов пользователей, которых нужно исключить
  *
  * @return int количество получивших рассылку
  */
 public function NewProj2($uids = array())
 {
     $show_pro_limit = 25;
     $show_limit = 25;
     $projects = projects::GetNewProjectsPreviousDay($error, true);
     $groups = professions::GetAllGroupsLite(true);
     $page = 0;
     $count = 0;
     $projects_count = count($projects);
     if (!$projects_count) {
         return false;
     }
     //Получаем баннеры
     $settings = new settings();
     $banner_file = $settings->GetVariable('newsletter', 'banner_file');
     $banner_link = $settings->GetVariable('newsletter', 'banner_link');
     $this->subject = 'Новые проекты на FL.ru';
     $this->message = Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/new_projects/project_layout.tpl.php', array('projects' => '%MESSAGE%', 'host' => $GLOBALS['host'], 'title' => '%TITLE%', 'unsubscribe_url' => '%UNSUBSCRIBE_URL%', 'date' => strtotime('- 1 day'), 'track_url' => '%TRACK_URL%'));
     $this->recipient = '';
     $massId = $this->send('text/html');
     $project_ids = array();
     foreach ($projects as $i => $prj) {
         $descr = $prj['descr'];
         $descr = htmlspecialchars($descr, ENT_QUOTES, 'CP1251', false);
         $descr = reformat(LenghtFormatEx($descr, 180), 50, 0, 1);
         $price = $prj['cost'] ? CurToChar($prj['cost'], $prj['currency']) . getPricebyProject($prj['priceby']) : null;
         $projects[$i]['html'] = Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/new_projects/project.tpl.php', array('url' => $GLOBALS['host'] . getFriendlyURL('project', array('id' => $prj['id'], 'name' => $prj['name'])), 'name' => $prj['name'] ? reformat(htmlspecialchars($prj['name'], ENT_QUOTES, 'CP1251', false), 50, 0, 1) : '', 'descr' => $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' => $price, 'end_date' => $prj['end_date'], 'create_date' => $prj['create_date'], 'utm_param' => '%UTM_PARAM%'));
         $project_ids[] = $prj['id'];
     }
     //Собираем юзеров у которых есть ответы на новые проекты
     $offers_exist = array();
     $offers = projects_offers::AllFrlOffersByProjectIDs($project_ids);
     if (count($offers)) {
         foreach ($offers as $offer) {
             if (!isset($offers_exist[$offer['project_id']])) {
                 $offers_exist[$offer['project_id']] = array();
             }
             $offers_exist[$offer['project_id']][$offer['user_id']] = true;
         }
     }
     $strtotime_3y_ago = strtotime('- 3 year');
     $strtotime_1y_ago = strtotime('- 1 year');
     $strtotime_1w_ago = strtotime('- 1 week');
     $current_date = time();
     $current_date_sufix = '_' . date('dmy', $current_date);
     //format:_270314
     $statistics = array();
     while ($users = freelancer::GetPrjRecps($error, ++$page, 200, $uids)) {
         $this->recipient = array();
         foreach ($users as $user) {
             //Если ли у фрилансера уточнение по категориям
             $is_mailer_str = strlen($user['mailer_str']) > 0;
             $subj = array();
             if ($is_mailer_str) {
                 foreach ($groups as $group) {
                     if (freelancer::isSubmited($user['mailer_str'], array(array('category_id' => $group['id'])))) {
                         $subj[$group['id']] = $group['name'];
                     }
                 }
             }
             $message_pro = '';
             $cnt_pro = 0;
             $message = '';
             $cnt = 0;
             $cnt_submited = 0;
             $cnt_user_submited = 0;
             foreach ($projects as $prj) {
                 //Подписан ли фрилансер на специализацию к которой относится проект
                 if ($is_mailer_str && !freelancer::isSubmited($user['mailer_str'], $prj['specs'])) {
                     continue;
                 }
                 //Считаем все проекты по выбранным специализациям
                 ++$cnt_submited;
                 //Условия не попадания в письмо
                 if ($prj['is_blocked'] == 't' || $prj['closed'] == 't' || $prj['state'] == projects::STATE_MOVED_TO_VACANCY || $prj['kind'] == projects::KIND_PERSONAL) {
                     continue;
                 }
                 //Если у фрилансера ответ на проект то не добавляем его в рассылку
                 if (isset($offers_exist[$prj['id']][$user['uid']])) {
                     continue;
                 }
                 if ($prj['pro_only'] == 't') {
                     if ($cnt_pro < $show_pro_limit) {
                         $message_pro .= $prj['html'];
                         ++$cnt_pro;
                     }
                 } else {
                     if ($cnt < $show_limit) {
                         $message .= $prj['html'];
                         ++$cnt;
                     }
                 }
                 ++$cnt_user_submited;
             }
             $message = $message_pro . $message;
             if (empty($message)) {
                 continue;
             }
             if ($cnt_user_submited <= $show_pro_limit + $show_limit) {
                 $cnt_submited = $cnt_user_submited;
             }
             //Формирует UTM метки аналитики
             $reg_date = strtotime($user['reg_date']);
             $reg_year = date('Y', $reg_date);
             $utm_content = $reg_date >= $strtotime_1w_ago ? '_new' : $reg_year;
             //$utm_content = ($user['reg_days_ago'] > 7)?$user['reg_date_year']:'_new';
             $utm_param = $this->_addUtmUrlParams('email', 'free' . $utm_content, 'day_projects' . $current_date_sufix);
             $message = str_replace('%UTM_PARAM%', $utm_param, $message);
             //Собираем шаблон
             $message = Template::render($_SERVER['DOCUMENT_ROOT'] . '/templates/mail/new_projects/project_list.tpl.php', array('projects' => $message, 'spec_list' => implode(' / ', $subj), 'setup_url' => $GLOBALS['host'] . "/users/{$user['login']}/setup/mailer/", 'other_count' => $cnt_submited - $cnt_pro - $cnt, 'more_url' => $GLOBALS['host'] . $utm_param, 'banner_file' => $banner_file, 'banner_link' => $banner_link));
             if (!$user['unsubscribe_key']) {
                 $user['unsubscribe_key'] = users::GetUnsubscribeKey($user['login']);
             }
             /*
             $date = strtotime($projects[0]['post_date']);
             $date = date( 'j', $date ) . ' ' . monthtostr(date('n', $date),true);
             */
             $projects_count_txt = $cnt_submited . ' ' . plural_form($cnt_submited, array('новый', 'новых', 'новых')) . ' ' . plural_form($cnt_submited, array('проект', 'проекта', 'проектов'));
             //$title = "{$projects_count_txt} за {$date}";
             $last_time = strtotime($user['last_time']);
             if ($last_time < $strtotime_3y_ago) {
                 $utm_content = '_3y';
             } elseif ($last_time >= $strtotime_3y_ago && $last_time <= $strtotime_1y_ago) {
                 $utm_content = '_1-3y';
             } elseif ($reg_date < $strtotime_1w_ago) {
                 $utm_content = '_1y';
             }
             /*
              * @todo: EXTRACT медленней
              
             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';
             }
             */
             //Накапливаем статистику
             $stat_idx = $reg_date >= $strtotime_1w_ago ? 'new' : $reg_year;
             ++$statistics[$stat_idx];
             $this->recipient[] = array('email' => $user['uname'] . ' ' . $user['usurname'] . ' [' . $user['login'] . '] <' . $user['email'] . '>', 'extra' => array('USER_NAME' => $user['uname'], 'USER_SURNAME' => $user['usurname'], 'USER_LOGIN' => $user['login'], 'MESSAGE' => $message, 'UNSUBSCRIBE_URL' => "/unsubscribe/?type=new_projects&ukey={$user['unsubscribe_key']}" . $this->_addUtmUrlParams('email', 'free' . $utm_content, 'unsubscr_day_projects' . $current_date_sufix), 'TITLE' => $projects_count_txt, 'TRACK_URL' => $GLOBALS['host'] . StatisticHelper::track_url(0, $stat_idx, $current_date, $user['login'] . $user['uid'])));
             ++$count;
         }
         $this->bind($massId, true);
     }
     //Собранную статистику отправляем в GA
     $statistics['total'] = $count;
     $ga = StatisticFactory::getInstance('GA');
     $ga->newsletterNewProjectsFrl($statistics, $current_date);
     return $count;
 }
예제 #7
0
switch ($action) {
    case "delete":
        $id = trim($_GET['id']);
        if ($id) {
            $error = birthday08::Delete($id);
        }
        break;
    case "status":
        $msettings->SetVariable("birthday08", "status", $_GET['value']);
}
$users = birthday08::GetAll();
?>
<script src="/scripts/warning.js" type="text/javascript"></script>

<?php 
if ($msettings->GetVariable("birthday08", "status") == "open") {
    ?>
		<B>Статус регистрации: Открыта</B> &nbsp;&nbsp;&nbsp; &raquo; <A href="./?action=status&value=close" class="blue">Закрыть</A>

<?php 
} else {
    ?>

		<B>Статус регистрации: Закрыта</B> &nbsp;&nbsp;&nbsp; &raquo; <A href="./?action=status&value=open" class="blue">Открыть</A>

<?php 
}
?>

<br><br><br>