Файл: Arhmobi_esdcms/pages/my.invitations.php
Строк: 125
<?php
include_once '../sys/inc/start.php';
$doc = new document(1);
$doc->title = __('Пригласительные');
if (isset($_GET['id'])) {
$id_inv = (int)$_GET['id'];
$q = $db->prepare("SELECT * FROM `invations` WHERE `id` = ? AND `id_user` = ? AND `id_invite` IS NULL LIMIT 1");
$q->execute(Array($id_inv, $user->id));
if (!$inv = $q->fetch()) {
header('Refresh: 1; url=?');
$design->err(__('Пригласительный не найден'));
$design->ret(__('К пригласительным'), '?');
$design->head($title); // шапка страницы
$design->title($title); // заголовок страницы
$design->foot(); // ноги
exit;
}
if (isset($_POST['delete']) && $inv['time_reg'] < TIME - 86400) {
$res = $db->prepare("DELETE FROM `invations` WHERE `id` = ? LIMIT 1");
$res->execute(Array($inv['id']));
header('Refresh: 1; url=?');
$doc->msg(__('Пригласительный успешно удален'));
$doc->ret(__('К пригласительным'), '?');
exit;
}
if (isset($_POST['email']) && !$inv['email']) {
if (!is_valid::mail($_POST['email']))
$doc->err(__('Указан не корректный E-mail'));
else {
$email = $_POST['email'];
$inv['code'] = passgen();
$t = new design();
$t->assign('title', __('Пригласительный'));
$t->assign('login', $user->login);
$t->assign('site', $dcms->sitename);
$t->assign('url', 'http://' . $_SERVER['HTTP_HOST'] . '/reg.php?invite=' . $inv['code']);
if (mail::send($email, __('Приглашение'), $t->fetch('file:' . H . '/sys/templates/mail.invite.tpl'))) {
$res = $db->prepare("UPDATE `invations` SET `email` = ?, `time_reg` = ?, `code` = ? WHERE `id` = ? LIMIT 1");
$res->execute(Array($email, TIME, $inv['code'], $inv['id']));
header('Refresh: 1; url=?');
$doc->msg(__('Пригласительный успешно отправлен'));
$doc->ret(__('К пригласительным'), '?');
exit;
} else
$doc->err(__('Ошибка при отправке email, попробуйте позже'));
}
}
$doc->title = __("Пригласительный #%s", $inv['id']);
$doc->ret(__('К пригласительным'), '?');
if ($inv['email']) {
echo __('Пригласительный отправлен на email: %s', $inv['email']) . "<br />";
echo __("Отправлен: %s", misc::when($inv['time_reg'])) . "<br />";
if ($inv['time_reg'] < TIME - 86400) {
if (isset($_GET['delete'])) {
$form = new form(new url());
$form->bbcode(__('Подтвердите удаление пригласительного'));
$form->bbcode(__('Его место займет новый пригласительный'));
$form->button(__('Удалить'), 'delete');
$form->display();
}
$doc->act(__('Удалить приглашение'), "?id=$inv[id]&delete");
} else {
echo __("В случае ошибки или отказа от пригласительного его можно будет удалить по истечению суток с момента отправки");
}
} else {
$form = new form(new url());
$form->input('email', __('Email'));
$form->button(__('Отправить'));
$form->display();
}
exit;
}
$k_inv = (int)($user->balls / $dcms->balls_for_invite); // количество пригласительных
$doc->msg(__("У Вас %s пригласительны" . misc::number($k_inv, 'й', 'x', 'х'), $k_inv), 'invations');
$res_cnt_inv = $db->prepare("SELECT COUNT(*) FROM `invations` WHERE `id_user` = ?");
$res_cnt_inv->execute(Array($user->id));
$k = $res_cnt_inv->fetchColumn();
if ($k_inv > $k) {
// пополняем список пригластельных
$k_add = $k_inv - $k;
$arr_ins = array();
$res = $db->prepare("INSERT INTO `invations` (`id_user`) VALUES (?);");
for ($i = 0; $i < $k_add; $i++) {
$res->execute(Array($user->id));
}
}
$res_cnt_inv->execute(Array($user->id));
$pages = new pages();
$pages->posts = $res_cnt_inv->fetchColumn(); // количество пригласительных
$q = $db->prepare("SELECT * FROM `invations` WHERE `id_user` = ? ORDER BY (`id_invite` IS NULL) DESC, (`email` IS NULL) ASC, `id` ASC LIMIT " . $pages->limit);
$q->execute(Array($user->id));
$listing = new listing();
if ($arr = $q->fetchAll()) {
foreach ($arr AS $inv) {
$post = $listing->post();
$post->icon('invite');
if ($inv['id_invite']) {
$ank = new user($inv['id_invite']);
$post->time = misc::when($inv['time_reg']);
$post->content = __('Использован');
$post->title = $ank->nick();
$post->url = '/profile.view.php?id=' . $ank->id;
} elseif ($inv['email']) {
$post->url = '?id=' . $inv['id'];
$post->title = __('Пригласительный #%s', $inv['id']);
$post->content = __('Отправлен на email: %s', $inv['email']) . '<br />';
if (!$inv['code']) {
$post->content .= __('Активирован');
}
if ($inv['time_reg'] < TIME - 86400) {
// 86400 секунд = 1 сутки - вчемя, через которое можно деактивировать неиспользованный пригласительный
$post->action('delete', "?id={$inv['id']}&delete");
}
} else {
$post->title = "<a href='?id=$inv[id]'>" . __('Пригласительный #%s', $inv['id']) . "</a>";
$post->content = __('Не использован');
}
}
}
$listing->display(__('Список пригласительных пуст'));
$pages->display('?'); // вывод страниц
$doc->ret(__('Личное меню'), '/menu.user.php');