Колесо удачи (фортуны)
Установка
Купите и установите модуль
Подключите файл стилей:
Copy
<link rel="stylesheet" type="text/css" href="/hostcmsfiles/hd_wof/hd_wof-style.css">
JS скрипты
Copy
<script src="/hostcmsfiles/hd_wof/transit.js"></script><script src="/hostcmsfiles/hd_wof/spinit.js"></script>
Copy
$().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, //wheel turn startDegree: 0, turn: 7, // Default wheel board turn times radius: 5, // To avoid flapper too near on the line duration: 6000, // Define animation timing in mileseconds }); $('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 код для вывода колеса
Copy
$oWofShow = new HostDev_Wof_Controller_Show(Core_Entity::factory('HostDev_Wof', 1));$oWofShow ->xsl(Core_Entity::factory('Xsl')->getByName('КолесоУдачи')) ->show();
PHP код обработчика
Copy
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' => 'Заполните поля корректно'))); } } }