|
|
Модератор форума: Yuri_G |
Сообщество uCoz » Вебмастеру » Общие вопросы от вебмастеров » Таймаут на вручение наград |
Таймаут на вручение наград |
Мыдаров, панель управления - инструменты - награды - в списке наград надо жать на разводной ключ напротив каждой - в открывшемся окне будет тайм аут на вручение
|
webanet, в общем, либо тогда это баг, либо так и задумано.
Этот таймаут действует только на один подарок, т.е. одному и тому же пользователю можно надарить все имеющиеся подарки в один день. Вот пример - http://onlinecomics.ru/index/8-5374 Этот человек зарегал ещё один аккаунт и за сегодня надарил сам себе все эти подарки, тем самым накрутил баллы за которые можно кое что приобрести на сайте. Можно ли как то установить таймаут на все подарки разом? Чтобы одному пользователю можно было подарить только один подарок в день, а не все сразу? |
Мыдаров, Простейшее решение на JQuery, Вам осталось лишь воткнуть куки, сами сможете?
Сообщение отредактировал udevlife - Воскресенье, 06 Дек 2015, 23:35:43
|
udevlife, привязать на нажатие по кнопке "Вручить награду"? Но если пользователь не завершит действие, т.е ему вдруг под конец приспичит сменить награду на другую и он закроет ajax окно, то повторно он уже этого сделать не сможет, а награду так и не вручил. Но всё равно спасибо, одно из решений.
|
Мыдаров, Повесить отмену куков по клику на закрытие окна + если мы уже заговорили о куках, вырезать условие "Вы уже скачали", оно не потребуется и будет только мешать с куками.
Сообщение отредактировал udevlife - Воскресенье, 06 Дек 2015, 23:45:57
|
Мыдаров, Хороший вопрос, скоро вернусь...
Добавлено (07 Дек 2015, 15:56:29) Код <?if($AWARDS_READ_URL$ || $_REP_READ_URL$)?> <div id="block25" class="udtb"><div class="udtlb">Поощрения:</div> <?if($AWARDS_READ_URL$)?><a href="$AWARDS_READ_URL$" title="Список наград">Награды (<b>$AWARDS$</b>)</a> <?if($AWARDS_DO_URL$)?><a href="$AWARDS_DO_URL$" id="awardLink">+</a><?endif?><?endif?> <script> $(document).ready(function() { var x = get_cookie ( "<?substr($_EMAIL$,0,4)?>" ); if (x == "true") { document.getElementById('awardLink').remove(); } $("#awardLink").click(function() { $(this).hide(500); var date = new Date(new Date().getTime() + 86400 * 1000); document.cookie = "<?substr($_EMAIL$,0,4)?>=true; expires=" + date.toUTCString(); }); $(document).on('click', '.xt-close', function(){ $("#awardLink").show(500); var date = new Date(0); document.cookie = "<?substr($_EMAIL$,0,4)?>=true; expires=" + date.toUTCString(); }); $(document).on('click', '.myBtnCenter', function(){ location.reload(); }); }); function get_cookie (cookie_name) { var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' ); if (results) return (unescape (results[2] )); else return null; } </script> Добавлено (07 Дек 2015, 15:58:59) |
udevlife, ого, не ожидал что вы напишите готовый скрипт, это круто, спасибо. Вот только он не работает, даже на вашей тестовой странице, я не смог вручить награду этому пользователю - http://ulife-testzone.ucoz.com/index/8-2
После нажатия добавить, окошко закрывается и всё, но награда так и не вручается. И ещё один минус, после того как кнопка + пропадает, можно открыть окно со списком всех наград и закрыть его, таким образом куки затирается, и после обновления страницы кнопка + снова появляется. Добавлено (07 Дек 2015, 22:59:56) Код document.cookie = "Адре=true; expires=" + date.toUTCString(); |
Мыдаров, Поправил, кажется всё идеально.
Код <script> $(document).ready(function() { var x = get_cookie ( "user$_USER_ID$" ); if (x == "true") { document.getElementById('awardLink').remove(); } $("#awardLink").click(function() { $(this).hide(500); var date = new Date(new Date().getTime() + 86400 * 1000); document.cookie = "user$_USER_ID$=true; expires=" + date.toUTCString(); }); if (document.getElementById('awardLink') != null) { $(document).on('click', '.xt-close', function(){ $("#awardLink").show(500); var date = new Date(0); document.cookie = "user$_USER_ID$=true; expires=" + date.toUTCString(); }); $(document).on('click', '.myBtnCenter', function(){ setTimeout(function() { location.reload(); }, 2000) }); } }); function get_cookie (cookie_name) { var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' ); if (results) return (unescape (results[2] )); else return null; } </script> Добавлено (07 Дек 2015, 23:50:29) Добавлено (07 Дек 2015, 23:57:38) Код var date = new Date(new Date().getTime() + 86400 * 1000); |
| |||
| |||