Колесо удачи (фортуны)

Установка
Купите и установите модуль
Подключите файл стилей: 
<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, //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 код для вывода колеса
$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' => 'Заполните поля корректно')));             }         }     }

Документация Колесо удачи (фортуны)