Файл: InstantSocial/uploud/components/reklama/frontend.php
Строк: 599
<?php
function reklama(){
$inCore = cmsCore::getInstance();
$inPage = cmsPage::getInstance();
$inDB = cmsDatabase::getInstance();
$inUser = cmsUser::getInstance();
global $_CFG;
$inCore->loadModel('reklama');
$model = new cms_model_reklama();
define('IS_BILLING', $inCore->isComponentInstalled('billing'));
if (IS_BILLING) { $inCore->loadClass('billing'); }
global $_LANG;
$id = $inCore->request('id', 'int', 0);
$do = $inCore->request('do', 'str', 'view');
$inPage->addHeadCSS('templates/'.$_CFG['template'].'/css/modconfig.css');
$inPage->addHeadCSS('templates/'.$_CFG['template'].'/css/nyromodal.css');
$inPage->addHeadJS('templates/'.$_CFG['template'].'/js/nyromodal.js');
$config = $model->getConfig();
if ($do == 'view'){
$head_title = 'Реклама';
$config = $model->getConfig();
$smarty = $inCore->initSmarty('components', 'com_reklama_view.tpl');
$smarty->assign('config', $config);
$smarty->assign('size_xy', $config['width']+6);
$smarty->assign('folder_number', $config['width']);
$smarty->assign('max_text', $model->maxText($config['width']));
$smarty->assign('witdh_class', $model->widthClass($config['width']));
$smarty->assign('head_title', $head_title);
$smarty->assign('is_user', $inUser->id);
$smarty->display('com_reklama_view.tpl');
return;
}
if ($do == 'add'){
$inPage->addHeadJS('components/reklama/js/text.js');
if ($inUser->id){
$config = $model->getConfig();
$head_title = 'Новое объявление';
if ($_POST){
$inCore->includeGraphics();
$msg = false;
if (!empty($_REQUEST['text'])) {
$text = $_REQUEST['text'];
} else { $msg = true; cmsCore::addSessionMessage('Не указан текст объявления.', 'error'); }
// if (!empty($_REQUEST['gourl'])) {
$gourl = $_REQUEST['gourl'];
// if(!preg_match("/^(?:http://)?[-0-9a-z._]*.w{2,4}[:0-9]*$/", $gourl)){
// $msg = true; cmsCore::addSessionMessage('Не правильно указан URL объявления.', 'error');
// }
// } else {
// $msg = true; cmsCore::addSessionMessage('Не указан URL объявления.', 'error');
// }
$text1 = $_REQUEST['text1'];
$max = $_REQUEST['max'];
$day = $_REQUEST['day'];
$sutki = $_REQUEST['sutki'];
$published = 1;
$bannertext = $text.'<br>'.$text1;
if($msg){$inCore->redirect('/reklama/ads.html');}
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/images/tizers/';
if (!is_dir($uploaddir)) { @mkdir($uploaddir); }
$realfile = $_FILES['img']['name'];
$path_parts = pathinfo($realfile);
$ext = strtolower($path_parts['extension']);
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'bmp' || $ext == 'png'){
$filename = $realfile;
$uploadfile = $uploaddir . $realfile;
if (@move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile)) {
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small80/$filename", 80, 80, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small90/$filename", 90, 90, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small100/$filename", 100, 100, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small110/$filename", 110, 110, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small120/$filename", 120, 120, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/smallcfg/$filename", $config['img_w'], $config['img_h'], 1);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small80/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small90/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small100/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small110/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small120/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/smallcfg/$filename", 0777);
$sql = "INSERT INTO cms_reklama (user_id,
img,
max,
day,
sutki,
hity,
clics,
pubdate,
text,
gourl,
published,
bal,
blocking)
VALUES ('$inUser->id',
'$filename',
'$max',
'$day',
'$sutki',
0,
0,
NOW(),
'$bannertext',
'$gourl',
'$published',
0,
1)";
$inDB->query($sql);
cmsCore::addSessionMessage('Ваше обьявление создано.', 'info');
cmsUser::sendMessage(1, 1, 'Компонент "Реклама". Принято обьявление на модерацию.');
} else { cmsCore::addSessionMessage('Ошибка загрузки, картинка обьявления не загружена!', 'error'); }
} else {
cmsCore::addSessionMessage('Формат файла не поддерживается. Допустимые форматы (jpg, jpeg, gif, bmp, png).', 'error');
}
$sql = "SELECT * FROM cms_reklama_balans WHERE user_id = {$inUser->id}";
$result = $model->inDB->query($sql);
if (!$model->inDB->num_rows($result)){
if($config['poochrenie']){
$model->inDB->query("INSERT INTO cms_reklama_balans (user_id, balans) VALUES ({$inUser->id}, '{$config['poochrenie']}')");
$last_id = $model->lastId();
$model->inDB->query("UPDATE cms_reklama SET bal=1 WHERE id=$last_id");
cmsCore::addSessionMessage('Система начислила Вам '.$config['poochrenie'].' пробных показов', 'info');
}else{
$model->inDB->query("INSERT INTO cms_reklama_balans (user_id, balans) VALUES ({$inUser->id}, 0)");
}
}else{
$usbal = $inDB->fetch_assoc($result);
if($usbal['balans'] > 0){
$model->inDB->query("UPDATE cms_reklama SET bal = 1 WHERE user_id = {$inUser->id}");
}
}
$inCore->redirect('/reklama/ads.html');
}
$smarty = $inCore->initSmarty('components', 'com_reklama_add.tpl');
$smarty->assign('head_title', $head_title);
$smarty->assign('size_xy', $config['width']+6);
$smarty->assign('witdh_class', $model->widthClass($config['width']));
$smarty->assign('folder_number', $config['width']);
$smarty->assign('max_text', $config['simbols']);
$smarty->assign('messages', cmsCore::getSessionMessages());
$smarty->assign('moybalans', $model->getBalans($inUser->id));
$smarty->display('com_reklama_add.tpl');
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
return;
}
if ($do == 'edititem'){
$inPage->addHeadJS('components/reklama/js/text.js');
if ($inUser->id){
$config = $model->getConfig();
$item = $model->getItem($id, $inUser->id);
$head_title = 'Редактирование';
$texts = explode("<br>", $item['text']);
if ($_POST){
$inCore->includeGraphics();
$msg = false;
if (!empty($_REQUEST['text'])) {
$text = $_REQUEST['text'];
} else { $msg = true; cmsCore::addSessionMessage('Не указан текст объявления.', 'error'); }
if (!empty($_REQUEST['gourl'])) {
$gourl = $_REQUEST['gourl'];
if(!preg_match("#http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*'%$]*.(html?|php|pl|cgi|ru)#i", $gourl)){
$msg = true; cmsCore::addSessionMessage('Не правильно указан URL объявления.', 'error');
}
} else {
$msg = true; cmsCore::addSessionMessage('Не указан URL объявления.', 'error');
}
$text1 = $_REQUEST['text1'];
$max = $_REQUEST['max'];
$day = $_REQUEST['day'];
$sutki = $_REQUEST['sutki'];
$bannertext = $text.'<br>'.$text1;
if($msg){$inCore->redirect('/reklama/ads.html');}
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/images/tizers/';
if (!is_dir($uploaddir)) { @mkdir($uploaddir); }
$realfile = $_FILES['img']['name'];
$path_parts = pathinfo($realfile);
$ext = strtolower($path_parts['extension']);
$filename = $realfile;
$uploadfile = $uploaddir . $realfile;
$img = '';
if ($_FILES['img']['size'] > 0){
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'bmp' || $ext == 'png'){
@move_uploaded_file($_FILES['img']['tmp_name'], $uploadfile);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small80/$filename", 80, 80, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small90/$filename", 90, 90, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small100/$filename", 100, 100, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small110/$filename", 110, 110, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/small120/$filename", 120, 120, 1);
@img_resize($_SERVER['DOCUMENT_ROOT']."/images/tizers/$filename", $_SERVER['DOCUMENT_ROOT']."/images/tizers/smallcfg/$filename", $config['img_w'], $config['img_h'], 1);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small80/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small90/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small100/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small110/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/small120/$filename", 0777);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/tizers/smallcfg/$filename", 0777);
$img = $filename;
} else {
$msg = true; cmsCore::addSessionMessage('Формат файла не поддерживается. Допустимые форматы (jpg, jpeg, gif, bmp, png).', 'error');
}
}else{
$img = $item['img'];
}
if (!$msg){
$sql = "UPDATE cms_reklama SET
img='{$img}',
max='{$max}',
day='{$day}',
sutki='{$sutki}',
text='{$bannertext}',
gourl='{$gourl}',
blocking=1 WHERE id=$id LIMIT 1";
$inDB->query($sql);
$itempro = $model->getItem($id, $inUser->id);
if ($itempro['hity'] >= $itempro['max']){
$inDB->query("UPDATE cms_reklama SET maxlimit = 1 WHERE id = {$id}");
}else{
$inDB->query("UPDATE cms_reklama SET maxlimit = 0 WHERE id = {$id}");
}
$datehit = date('Y-m-d');
$sql = "SELECT hity FROM cms_reklama_hits WHERE reklama_id = {$id} AND hitdate = '{$datehit}'";
$result = $inDB->query($sql);
$hit = $inDB->fetch_assoc($result);
if($itempro['day'] == 0){
$inDB->query("UPDATE cms_reklama SET daylimit = 0 WHERE id = {$id}");
}else{
if ($hit['hity'] >= $itempro['day']){
$inDB->query("UPDATE cms_reklama SET daylimit = 1 WHERE id = {$id}");
}else{
$inDB->query("UPDATE cms_reklama SET daylimit = 0 WHERE id = {$id}");
}
}
cmsCore::addSessionMessage('Ваше обьявление отредактировано.', 'info');
cmsUser::sendMessage(1, 1, 'Компонент "Реклама". Принято обьявление на модерацию.');
}
$inCore->redirect('/reklama/ads.html');
}
$smarty = $inCore->initSmarty('components', 'com_reklama_edit.tpl');
$smarty->assign('head_title', $head_title);
$smarty->assign('item', $item);
$smarty->assign('size_xy', $config['width']+6);
$smarty->assign('folder_number', $config['width']);
$smarty->assign('max_text', $model->maxText($config['width']));
$smarty->assign('witdh_class', $model->widthClass($config['width']));
$smarty->assign('text1', $texts[0]);
$smarty->assign('text2', $texts[1]);
$smarty->assign('messages', cmsCore::getSessionMessages());
$smarty->assign('moybalans', $model->getBalans($inUser->id));
$smarty->display('com_reklama_edit.tpl');
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if ($do == 'ads'){
if ($inUser->id){
$head_title = 'Мои обьявления';
$itemid = $_POST['itemid'];
if ($_POST['vikluchit']){
$model->inDB->query("UPDATE cms_reklama SET published = 0 WHERE id = $itemid");
}
if ($_POST['vkluchit']){
$model->inDB->query("UPDATE cms_reklama SET published = 1 WHERE id = $itemid");
}
if ($_POST['delete']){
$model->inDB->query("DELETE FROM cms_reklama WHERE id = $itemid");
$model->inDB->query("DELETE FROM cms_reklama_hits WHERE reklama_id = $itemid");
}
$sql = "SELECT * FROM cms_reklama WHERE user_id = '$inUser->id'";
$result = $model->inDB->query($sql);
if ($model->inDB->num_rows($result)){
while($item = $model->inDB->fetch_assoc($result)){
$item['vsego_hity'] = $item['hity'];
$item['vsego_click'] = $item['clics'];
$item['vsego_ctr'] = round((($item['clics']/$item['hity']) * 100), 2).'%';
$item['seg_hity'] = $model->segHits($item['id']);
$item['seg_click'] = $model->segClick($item['id']);
$item['seg_ctr'] = round((($item['seg_click']/$item['seg_hity']) * 100), 2).'%';
$item['vchera_hity'] = $model->vcheraHits($item['id']);
$item['vchera_click'] = $model->vcheraClick($item['id']);
$item['vchera_ctr'] = round((($item['vchera_click']/$item['vchera_hity']) * 100), 2).'%';
$items[] = $item;
}
}
foreach($items as $item){}
$smarty = $inCore->initSmarty('components', 'com_reklama_ads.tpl');
$smarty->assign('head_title', $head_title);
$smarty->assign('items', $items);
$smarty->assign('size_xy', $config['width']+6);
$smarty->assign('folder_number', $config['width']);
$smarty->assign('witdh_class', $model->widthClass($config['width']));
$smarty->assign('messages', cmsCore::getSessionMessages());
$smarty->assign('moybalans', $model->getBalans($inUser->id));
$smarty->display('com_reklama_ads.tpl');
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
return;
}
if ($do=='click'){
$banner_id = $inCore->request('id', 'int', 0);
if (!$banner_id) { $inCore->halt(); }
$banner = $model->getBanner($banner_id);
if ($banner){
$model->clickBanner($banner_id);
$inCore->redirect($banner['gourl']);
} else {
$inCore->halt('BANNER NOT FOUND');
}
}
if ($do=='statistic'){
include_once 'graph/open_flash_chart_object.php';
$baseURL = "http://".$_SERVER['HTTP_HOST'].'/graph/';
open_flash_chart_object( 800, 500, $baseURL.'chart-data.php?id='.$id, false, $baseURL );
$inCore->halt();
}
if ($do=='balans'){
if ($inUser->id){
$head_title = 'Мой баланс';
$sql = "SELECT * FROM cms_reklama_balans WHERE user_id = {$inUser->id}";
$result = $model->inDB->query($sql);
if (!$model->inDB->num_rows($result)){
$model->inDB->query("INSERT INTO cms_reklama_balans (user_id, balans) VALUES ({$inUser->id}, 0)");
}else{
$balans = $model->getBalans($inUser->id);
}
if (IS_BILLING) {
$price_bill = cmsBilling::getAction('reklama', 'add_pokazi');
foreach($price_bill['point_cost'] as $key=>$price){
if($inUser->group_id == $key){
$price_billing = $price;
}
}
}
$smarty = $inCore->initSmarty('components', 'com_reklama_balans.tpl');
$smarty->assign('head_title', $head_title);
$config = $model->getConfig();
$smarty->assign('config', $config);
$smarty->assign('price_billing', $price_billing);
$smarty->assign('balans', $balans);
$smarty->assign('moybalans', $model->getBalans($inUser->id));
$smarty->display('com_reklama_balans.tpl');
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if ($do=='billing'){
if ($inUser->id){
$user_balans = cmsBilling::getBalance($inUser->id);
$pokazi = $inCore->request('pokazi', 'str');
if($pokazi > 0){
$price_bill = cmsBilling::getAction('reklama', 'add_pokazi');
foreach($price_bill['point_cost'] as $key=>$price){
if($inUser->group_id == $key){
$price_billing = $price;
}
}
$summ = $price_billing * $pokazi;
if($user_balans < $summ){
echo '<h1 class="con_heading">Произошла ошибка при оплате!</h1>';
echo 'Не достаточно средств на баллансе! <br>';
echo '<input type="submit" value="Пополнить баланс" onclick="location.href='/billing'">';
echo '<input type="submit" value="Продолжить »" onclick="location.href='/reklama'">';
$success = false;
}else{
$success = true;
}
}else{
echo '<h1 class="con_heading">Произошла ошибка при оплате!</h1>';
echo 'Сума указана не верно! <br>';
echo '<input type="submit" value="Продолжить »" onclick="location.href='/reklama'">';
$success = false;
}
if ($success){
if (IS_BILLING) {
cmsBilling::process('reklama', 'add_pokazi', $summ);
}
$points = $pokazi * 1000;
$bal = $model->inDB->get_field('cms_reklama_balans', 'user_id = '.$inUser->id, 'balans');
$balans = $bal + $points;
$model->inDB->query("UPDATE cms_reklama_balans SET balans={$balans} WHERE user_id = {$inUser->id}");
$model->inDB->query("UPDATE cms_reklama SET bal = 1 WHERE user_id = {$inUser->id}");
echo '<h1 class="con_heading">Оплата произведена успешно</h1>';
echo 'С вшего баланса списано '.$summ.' баллов. <br>';
echo 'Вам начислено '.$points.' показов. <br>';
echo '<input type="submit" value="Продолжить »" onclick="location.href='/reklama'">';
}
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if($do == 'webmoney'){
if ($inUser->id){
$config = $model->getConfig();
$type_mw = $inCore->request('type_wm', 'str');
$pokazi = $inCore->request('pokazi', 'int');
$kurs = $config[$type_mw];
$summ = $pokazi*$config['price'];
$summ_pokazi = $pokazi*1000;
if($type_mw == 'wm_kurs_z'){
$pay_purse = $config['wmz'];
$summa = round($summ/$kurs, 2);
$type_summ = 'WMZ';
}elseif($type_mw == 'wm_kurs_u'){
$pay_purse = $config['wmu'];
$summa = round($summ/$kurs, 2);
$type_summ = 'WMU';
}elseif($type_mw == 'wm_kurs_r'){
$pay_purse = $config['wmr'];
$summa = round($summ*$kurs, 2);
$type_summ = 'WMR';
}
$summa = str_replace(',','.',$summa);
$reklama_pay['user_id'] = $inUser->id;
$reklama_pay['secret_key'] = md5(session_id());
$reklama_pay['summ'] = $summa;
$reklama_pay['purse'] = $pay_purse;
$reklama_pay['type_wm'] = $type_mw;
$reklama_pay['pokazi'] = $summ_pokazi;
$model->deleteExpiredReklamaPay(session_id());
$reklama_pay['id'] = $model->addReklamaPay($reklama_pay);
$numberpay = $reklama_pay['id'];
echo '<h1 class="con_heading">Покупка показов с помощью Webmoney</h1>';
if (!$summa){ echo'<div style="color:red;">Не выбрано количество показов! <input name="back" type="button" id="back" value="Назад" onclick="window.history.back();"/></div>'; return;}
echo 'Подтверждение оплаты рекламных показов на сумму <strong>'.$summa.' '.$type_summ.'</strong>';
echo'<form method="POST" action="'.$config['url_pay'].'">
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="'.$summa.'">
<input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение баланса показов рекламы">
<input type="hidden" name="LMI_PAYMENT_NO" value="'.$numberpay.'">
<input type="hidden" name="LMI_PAYEE_PURSE" value="'.$pay_purse.'">
<input type="hidden" name="LMI_SIM_MODE" value="'.$config['sim_mode'].'">
<input type="hidden" name="user_id" value="'.$inUser->id.'">
<input type="hidden" name="secr" value="'.$reklama_pay['secret_key'].'" />
<input type="submit" value="Пополнить">
</form>';
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if($do == 'webmoney_result'){
$reklama_pay = $model->getReklamaPay($_POST['LMI_PAYMENT_NO']);
if($_POST['LMI_PREREQUEST']==1) {
if(!$reklama_pay['id'] or $reklama_pay['id']=="") {
$err=1;
echo "ERR: НЕТ ТАКОГО ТОВАРА";
exit;
}
if(trim($reklama_pay['summ'])!=trim($_POST['LMI_PAYMENT_AMOUNT'])) {
$err=1;
echo "ERR: НЕВЕРНАЯ СУММА ".$_POST['LMI_PAYMENT_AMOUNT'];
exit;
}
if(trim($_POST['LMI_PAYEE_PURSE'])!=$reklama_pay['purse']) {
$err=1;
echo "ERR: НЕВЕРНЫЙ КОШЕЛЕК ПОЛУЧАТЕЛЯ ".$_POST['LMI_PAYEE_PURSE'];
exit;
}
if(!$err)
echo "YES";
}else{
$config = $model->getConfig();
$secret_key = $config['secret_key'];
// Склеиваем строку параметров
$common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
$_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
$_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
// Шифруем полученную строку в MD5 и переводим ее в верхний регистр
$hash = strtoupper(md5($common_string));
// Прерываем работу скрипта, если контрольные суммы не совпадают
if($hash!=$_POST['LMI_HASH']) return 'ERR: Контрольные суммы не совпали';
$bal = $inDB->get_field('cms_reklama_balans', 'user_id = '.$reklama_pay['user_id'], 'balans');
$kurs = $config[$reklama_pay['type_wm']];
$summ = $_POST['LMI_PAYMENT_AMOUNT'];
if($reklama_pay['type_wm'] == 'wm_kurs_z'){
$type = 'Webmoney Z';
$summa = round($summ*$kurs, 2);
}elseif($reklama_pay['type_wm'] == 'wm_kurs_u'){
$type = 'Webmoney U';
$summa = round($summ*$kurs, 2);
}elseif($reklama_pay['type_wm'] == 'wm_kurs_r'){
$type = 'Webmoney R';
$summa = round($summ, 2);
}
$count = $summa/$config['price'];
$points = $reklama_pay['pokazi'];
$balans = $bal + $points;
$model->inDB->query("UPDATE cms_reklama_balans SET balans={$balans} WHERE user_id = {$reklama_pay['user_id']}");
$model->inDB->query("UPDATE cms_reklama SET bal = 1 WHERE user_id = {$reklama_pay['user_id']}");
$model->inDB->query("INSERT INTO cms_reklama_psys_stat (user_id, pay_sys, price, pubdate) VALUES ({$reklama_pay['user_id']}, '{$type}', {$_POST['LMI_PAYMENT_AMOUNT']}, NOW())");
}
}
if ($do=='robokassa'){
if ($inUser->id){
if($_POST){
$config = $model->getConfig();
$money = $inCore->request('money', 'str');
$login = $config['mon_login'];
$amount = floatval($money);
$idd = $inUser->id;
$pwd1 = $config['mon_pwd1'];
$signature = md5($login . ":" . $amount . ":" . $idd . ":" . $pwd1);
$inv_desc = $config['mon_desc'];
echo '<h1 class="con_heading">Покупка показов с помощью Robokassa</h1>';
if ($money<$config['price']){ echo'<div style="color:red;">Не выбрано количество показов! <input name="back" type="button" id="back" value="Назад" onclick="window.history.back();"/></div>'; return;}
echo 'Подтверждение оплаты рекламных показов на сумму <strong>'.$amount.' руб.</strong>';
echo '<form method="post" action="'.$config['mon_url'].'">';
echo '<input type="hidden" name="MrchLogin" value="'.$login.'" />';
echo '<input type="hidden" name="OutSum" value="'.$amount.'" />';
echo '<input type="hidden" name="InvId" value="'.$idd.'" />';
echo '<input type="hidden" name="Desc" value="'.$inv_desc.'" />';
echo '<input type="hidden" name="SignatureValue" value="'.$signature.'" />';
echo '<input type="submit" value="Подтвердить" />';
echo '</form>';
}
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if ($do=='result_robokasa'){
$config = $model->getConfig();
$id = intval($_POST['InvId']); // получаем номер транзакции
$pwd2 = $config['mon_pwd2'];;
if ( strtolower($_POST['SignatureValue']) != strtolower(md5($_POST['OutSum'] . ":" . $id . ":" . $pwd2)) ) {
// не совпадает подпись
echo "ERR: invalid signature";
exit();
}
// и если все нормально:
// принимаем платеж, помечаем у себя в базе его, как выполненный
// и выводим положительный ответ Робокассе
$bal = $model->inDB->get_field('cms_reklama_balans', 'user_id = '.$id, 'balans');
$count = $_POST['OutSum']/$config['price'];
$points = 1000 * $count;
$balans = $bal + $points;
$model->inDB->query("UPDATE cms_reklama_balans SET balans={$balans} WHERE user_id = {$id}");
$model->inDB->query("UPDATE cms_reklama SET bal = 1 WHERE user_id = {$id}");
$model->inDB->query("INSERT INTO cms_reklama_psys_stat (user_id, pay_sys, price, pubdate) VALUES ({$id}, 'RoboKassa', {$_POST['OutSum']}, NOW())");
echo "OK";
exit();
}
if ($do == 'pay_success') {
if ($inUser->id){
$balans = $model->getBalans($inUser->id);
echo '<h1 class="con_heading">Оплата успешо произведена!</h1>';
echo '<div>У вас на балансе <strong>'.$balans['balans'].'</strong> показов</div>';
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
if ($do == 'pay_fail') {
if ($inUser->id){
echo '<h1 class="con_heading">Произошла ошибка при оплате!</h1>';
echo '<input type="submit" value="Продолжить »" onclick="location.href='/reklama'">';
} else {
echo 'Доступ запрещен! <a href="/login">Авторизуйтесь</a> пожалуйста или <a href="/registration">зарегистрируйтесь</a>.';
}
}
}
?>