Установка
Подключите файл стилей:
<link rel="stylesheet" type="text/css" href="/hostcmsfiles/hd_wof/hd_wof-style.css">
JS скрипты
<script src="/hostcmsfiles/hd_wof/transit.js"></script>
<script src="/hostcmsfiles/hd_wof/spinit.js"></script>
$().ready(function() {
$('body').on('click', '#spinneratlas_btn', function() {
$('.pole_popup').addClass('active');
return false;
});
$('body').on('click', '.pole_close', function() {
$(this).parents('.pole_popup:first').removeClass('active');
});
$("#spinneratlas").spinit({
clockwise: true,
startDegree: 0,
turn: 7,
radius: 5,
duration: 6000,
});
$('body').on('submit', '.pole_popup form', function() {
var form = $(this);
form.find('[type=submit]').prop('disabled', true);
var formData = new FormData(form.get(0));
formData.append('barabanSubmit', form.attr('data-id'));
$('#spinneratlas').spinit('serverSpin', function(e) {
$.ajax({
data: formData,
type: "POST",
dataType: 'json',
processData: false,
contentType: false,
success: function (data) {
$('#spinneratlas_btn').remove();
form.parents('.pole_popup:first').removeClass('active').remove();
setTimeout(function() {
alert(data.text);
}, 10);
}
});
});
return false;
});
});
PHP код для вывода колеса
$oWofShow = new HostDev_Wof_Controller_Show(Core_Entity::factory('HostDev_Wof', 1));
$oWofShow
->xsl(Core_Entity::factory('Xsl')->getByName('КолесоУдачи'))
->show();
PHP код обработчика
if (Core::moduleIsActive('hostdev_wof')) {
if (Core_Array::getPost('barabanSubmit')) {
Core_Session::start();
$iWofID = intval(Core_Array::getPost('barabanSubmit'));
if (!isset($_SESSION['wof_' . $iWofID])) {
die(json_encode(array('type' => 'warning', 'message' => 'Сначала покрутите барабан')));
}
$oWheel = Core_Entity::factory('hostdev_wof')->getByid($iWofID);
if (is_null($oWheel)) {
die(json_encode(array('type' => 'error', 'message' => 'Выбранный барабан не найден')));
}
$sName = trim(strip_tags(Core_Array::getPost('name')));
$sPhone = trim(strip_tags(Core_Array::getPost('phone')));
$sEmail = trim(strip_tags(Core_Array::getPost('email')));
$bErrors = false;
if ($sName == '') {
$bErrors = true;
}
$sTmpPhone = preg_replace("/[^0-9]/", '', $sPhone);
if (strlen($sTmpPhone) != 11) {
$bErrors = true;
}
if (!Core_Valid::email($sEmail)) {
$bErrors = true;
}
if (!$bErrors) {
$aVariant = $_SESSION['wof_' . $iWofID];
$sAddText = 'Наш менеджер свяжется с вами в ближайшее время';
$sText = "Колесо удачи «{$oWheel->name}»\r\n";
$sText .= "Имя: {$sName}\r\n";
$sText .= "Телефон: {$sPhone}\r\n";
$sText .= "Email: {$sEmail}\r\n";
$sText .= "Приз: {$aVariant['name']}\r\n\r\n";
$sText .= "Страница: {$url}\r\n";
$oCore_Mail = Core_Mail::instance();
$oCore_Mail
->from($fromEmail)
->to($toEmail)
->subject("Колесо удачи «{$oWheel->name}»")
->message($sText)
->contentType('text/plain')
->send();
$bSent = $oCore_Mail->getStatus();
if ($bSent) {
die(json_encode(array('type' => 'success', 'message' => "Сектор «{$aVariant['name']}» на барабане")));
} else {
die(json_encode(array('type' => 'warning', 'message' => 'Заявка не отправлена')));
}
} else {
die(json_encode(array('type' => 'error', 'message' => 'Заполните поля корректно')));
}
}
}