<?php
require_once('../classes/body.class.php');
require_once('../classes/db.class.php');
require_once('../classes/system.class.php');
$title= new Body;
$title->SetTitle(homeurl.' - Покупка рекламы');
$title->GetHeader();
define('MT', microtime(true));
$errors = [];
echo'<div class="tile"><div class="t-header th-alt bg-teal"><div class="th-title"><i class="zmdi zmdi-widgets"></i><a href="/"style="text-decoration:none; color:white;"> Главная</a> :: Покупка рекламы</div></div></div>';
if (! empty($_POST)) {
if (! empty($_POST['location'])) {
$e = $_POST['location'];
if (! isset($location[$e]))
$errors[] = 'Выберите расположение рекламы';
else if (getCountLinks($e) >= $location[$e]['count_links'])
$errors[] = 'Количество рекламных мест уже закончилось';
else {
$_location = $e;
$cost = $location[$e]['price'];
}
} else {
$errors[] = 'Выберите расположение рекламы';
}
if (! empty($_POST['url'])) {
$e = explode('/', $_POST['url']);
if (isset($e[3]))
$errors[] = 'Введите адрес сайта в виде <b>http://skywap.org</b>';
else if (empty($e[2]))
$errors[] = 'Введите адрес сайта';
else if (! domain_valid(str_replace('http://', '', $_POST['url'])))
$errors[] = 'Введите существующий адрес сайта';
else {
$code = str_replace('.', '_', str_replace('http://', '', $_POST['url']));
if (file_exists(ADV_FOLDER . '/' . $code . '-paid.dat'))
$errors[] = 'Этот сайт уже рекламируется';
else
$url = $_POST['url'];
}
} else {
$errors[] = 'Введите URL-ссылку сайта';
}
// проверяем корректность названия ссылки
if (! empty($_POST['title'])) {
$length = mb_strlen(preg_replace('/\s+/',' ', trim($_POST['title'])), 'utf-8');
if (! ($length >= LEGTH_FROM && $length <= LEGTH_TO))
$errors[] = 'Длинна заголовка не соответствует правилам';
else
$title = htmlspecialchars($_POST['title']);
} else {
$errors[] = 'Введите заголовок ссылки';
}
// проверяем корректность цвета
if (! empty($_POST['color'])) {
if (! preg_match('/^(#[a-f0-9]{6}|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i', $_POST['color']))
$errors[] = 'Цвет введен неверно, используйте <b>#rrggbb</b> или название цвета (silver, navy)';
else {
$color = $_POST['color'];
$cost += PRICE_COLOR;
}
}
// проверяем корректность к-ва дней
if (! empty($_POST['days'])) {
$days = floor($_POST['days']);
if (! ($days >= DAYS_MIN && $days <= DAYS_MAX))
$errors[] = 'Количество дней не соответствует правилам';
}
// проверяем корректность выделения
if (! empty($_POST['bold'])) {
$cost += PRICE_BOLD;
$bold = true;
}
// если ошибок нет, то переходим на следующий этап
if (empty($errors)) {
$price = $cost*$days;
// применяем скидку
$disc = '';
foreach($discounts as $discount)
if ($days >= $discount['days'])
$disc = $discount['percent'];
$price -= ($price/100) * $disc;
$time_end = time() + 86400 * $days;
$scolor = isset($color) ? $color : 'no';
$bolder = isset($bold) ? 'yes' : 'no';
// сохраняем для последующей проверки
$file = fopen(ADV_FOLDER . '/' . $code . '-wait.dat', 'w');
fwrite($file, "{$price};{$url};{$title};{$time_end};{$scolor};{$bolder};{$_location}");
fclose($file);
// информация
echo '<div class="list-group-item media">';
echo 'Цена рекламы: ', '<b>', $price, ' ', CURRENCY_TEXT, '</b>', (! empty($disc) ? ' (скидка ' . $disc . '%)' : ''), '<hr />';
echo 'URL-ссылки: <b>', $url, '</b><br />';
echo 'Заголовок: <b>', $title, '</b><br />';
if (isset($color))
echo 'Цвет: <b>', $color, '</b><br />';
echo 'Количество дней: <b>', $days, '</b><br />';
echo 'Выделение: <b>', isset($bold) ? 'включено' : 'выключено', '</b><hr />';
// кнопка для оплаты
echo '<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">',
'<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="' . $price . '">',
'<input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="' . base64_encode('Покупка рекламы для сайта ' . $url) . '">',
'<input type="hidden" name="LMI_PAYEE_PURSE" value="' . WEBMONEY_PURSE . '">',
'<input type="hidden" name="IDENTIFY" value="' . $code . '">',
'<input type="submit" class="btn btn-primary" value="Перейти к оплате">',
'</form>';
echo '</div>';
exit();
}
}
// выводим ошибки
if (! empty($errors)) {
echo '<div class="alert alert-danger"role="alert">';
foreach ($errors as $message)
echo '<span class="error">', $message, '</span><br/>';
echo '</div>';
}
// форма заказа рекламы
echo '<div class="list-group-item media">';
echo '<form action="' . URL . '/index.php" method="POST">';
echo 'URL ссылки:<br />';
echo '<input type="text" class="form-control" name="url" value="http://"/><br />';
echo 'Название: (от ' . LEGTH_FROM . ' до ' . LEGTH_TO . ' символов)<br />';
echo '<input type="text" class="form-control" name="title"/><br />';
echo 'Цвет названия: (#rrggbb или (silver, navy))<br />';
echo '<input type="text" class="form-control" name="color" size="6"/><br />';
echo 'Количество дней:<br />';
echo '<input type="text" class="form-control" name="days" size="1" value="' . DAYS_MIN .'"/><br />';
echo '<div class="info">Минимально ' . DAYS_MIN . ', максимально ' . DAYS_MAX . ' дней</div>';
echo '<input type="checkbox" name="bold" value="yes"/> выделить <b>жирным</b><br />';
echo 'Расположение:<br />';
echo '<select class="form-control" name="location">';
foreach($location as $key => $val)
if (getCountLinks($key) < $val['count_links'])
echo '<option value="' . $key . '" />' . $val['name'] . ', ' . $val['price'] . ' ' . CURRENCY_TEXT . '</option>';
else
echo '<option value="' . $key . '" />' . $val['name'] . ', мест нет</option>';
echo '</select>';
echo '<br/><br/>';
echo '<input class="btn btn-primary" type="submit" value="Подтвердить"/><br />';
echo '</form>';
echo '</div>';
echo '<div class="tile"><div class="t-header th-alt bg-teal"><div class="th-title"><i class="zmdi zmdi-widgets"></i> Дополнительно</div></div></div>';
echo '<div class="list-group-item media">';
echo 'Цвет ссылки: <b>', PRICE_COLOR, '</b> ', CURRENCY_TEXT,'<br />';
echo 'Выделение: <b>', PRICE_BOLD, '</b> ', CURRENCY_TEXT, '<br/>';
echo 'Скидки:<br />';
foreach($discounts as $discount)
echo '- <b>', $discount['percent'], '%</b> при заказе от ', $discount['days'], ' дней<br/>';
echo '</div>';
$title->GetMenu();
$title->GetFooter();
?>