} } if (empty($_POST) || $masssending->error) { // восстанавливаем сессию, если она существует и ее время не вышло if (!empty($_SESSION['masssending'])) { $params = $_SESSION['masssending']; if (mktime() - $params['savetime'] > masssending::SESS_TTL) { unset($_SESSION['masssending']); $masssending->ClearTempFiles(session_id()); $params = array(); } } else { $params = array(); $masssending->ClearTempFiles(); } if ($dc) { $calc = $masssending->Calculate($uid, array('professions' => array($dc))); } else { $calc = $masssending->Calculate($uid, array()); $calc['count'] = 0; $calc['cost'] = 0; $calc['pro'] = array('count' => 0, 'cost' => 0); } $tariff = $masssending->GetTariff(); $js_file = array('masssending.js'); $content = 'content.php'; } } $css_file = array('masssending.css', '/css/nav.css'); $footer = "../footer.html"; include '../template2.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/masssending.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/quick_payment/quickPaymentPopupMasssending.php'; session_start(); $id = __paramInit('int', 'id'); //Должен быть id рассылки if (!$id) { include ABS_PATH . '/404.php'; exit; } $uid = get_uid(false); if (!$uid) { include ABS_PATH . '/404.php'; exit; } $masssending = new masssending(); $params = $masssending->getAccepted($id, $uid); if (!$params) { //должна существовать одобренная неоплаченная рассылка, принадлежащая текущему пользователю. include ABS_PATH . '/404.php'; exit; } $text = reformat($params['msgtext'], 1000, false, true); $calc = $masssending->Calculate(get_uid(false), array($params)); //print_r($calc);exit; quickPaymentPopupMasssending::getInstance()->init(array('count' => $params['all_count'], 'count_pro' => $params['pro_count'], 'price' => $params['pre_sum'], 'send_id' => $id)); $stretch_page = true; $header = '../header.php'; $footer = '../footer.html'; $content = 'tpl.masssending_pay.php'; include '../template2.php';
function Calculate($params) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/masssending.php'; $masssending = new masssending(); session_start(); $uid = get_uid(false); $params['savetime'] = mktime(); $params['msg'] = stripslashes($params['msg']); if (!empty($_SESSION['masssending']['files'])) { $params['files'] = $_SESSION['masssending']['files']; } $_SESSION['masssending'] = $params; //serialize($params); $response = new xajaxResponse(); // преобразуем js массив в формат для masssending::Calculate() if (!empty($params['locations']) && is_array($params['locations'])) { $tmp = array(); foreach ($params['locations'] as $value) { if (!empty($value['country']['id'])) { $tmp[] = intval($value['country']['id']) . ':' . intval($value['city']['id']); } } $params['locations'] = $tmp; } if (!empty($params['professions']) && is_array($params['professions'])) { $tmp = array(); foreach ($params['professions'] as $value) { if (!empty($value['group']['id'])) { $tmp[] = intval($value['group']['id']) . ':' . intval($value['profession']['id']); } } $params['professions'] = $tmp; } if (!empty($params['costs']) && is_array($params['costs'])) { $params['cost_from'] = array(); $params['cost_to'] = array(); $params['cost_period'] = array(); $params['cost_type'] = array(); foreach ($params['costs'] as $value) { if (!empty($value['cost_from']) || !empty($value['cost_to'])) { $params['cost_from'][] = $value['cost_from']; $params['cost_to'][] = $value['cost_to']; $params['cost_period'][] = $value['cost_period']; $params['cost_type'][] = $value['cost_type']; } } unset($params['costs']); } $calc = $masssending->Calculate($uid, $params); // преобразуем обратно $locations = array(); foreach ($calc['locations'] as $location) { $locations[] = "{ country: {$location['country']}, city: {$location['city']}, count: {$location['count']}, cost: {$location['cost']} }"; } $professions = array(); foreach ($calc['professions'] as $profession) { $professions[] = "{ group: {$profession['group']}, profession: {$profession['id']}, count: {$profession['count']}, cost: {$profession['cost']} }"; } $response->script("\n\t\tspam.calc = { count: {$calc['count']}, cost: {$calc['cost']} };\n\t\tspam.calc.pro = { count: {$calc['pro']['count']}, cost: {$calc['pro']['cost']} };\n\t\tvar tmp = [ " . implode($locations, ',') . ' ]; for (var i=0; i<locations.values.length; i++) { locations.values[i].count = 0; locations.values[i].cost = 0; for (var j=0; j<tmp.length; j++) { if (locations.values[i].country.id == tmp[j].country && locations.values[i].city.id == tmp[j].city) { locations.values[i].count = tmp[j].count; locations.values[i].cost = tmp[j].cost; break; } } } var tmp = [ ' . implode($professions, ',') . ' ]; for (var i=0; i<professions.values.length; i++) { professions.values[i].count = 0; professions.values[i].cost = 0; for (var j=0; j<tmp.length; j++) { if (professions.values[i].group.id == tmp[j].group && professions.values[i].profession.id == tmp[j].profession) { professions.values[i].count = tmp[j].count; professions.values[i].cost = tmp[j].cost; break; } } } spam.recalculation(); '); return $response; }