Изменение репутации на форуме
|
|
[16] pssergey [16.10.2013, 22:40] |
вообще-то этот скрипт просто ставит галочку на пункте «повысить репутацию» и все.. ничего он не заменяет и тем более внешний вид окна. Спасибо! - это понятно, но и галочка не ставилась... В общем, по примерам в сети вставил ещё вот такое в "общий вид страниц форума" Цитата <script type="text/javascript"> function repchange(val,id){ repval=val; ajaxtime=setInterval('checkajax'+id+'()',500);} </script> и заменил в "кнопке" checkajax$ID$(); - на - repchange('plus','$ID$')(); и заработало всё.
Добавлено (16.10.2013, 22:40) --------------------------------------------- Но тот, "автоматический" скрипт тоже интересный. Не нравится в нём: 1. Ссылка прописыватся не на пост, а на страницу. В идеале, для меня, было бы не плохо переделать скрипт: 1. Ссылку убрать совсем, как не нужную т.к. и так в истории есть ссылка "источник". - пока не понимаю, как туда ссылка попадает. 2. А нельзя сразу команду дать на обновление страницы?
Цитата <script type="text/javascript"> function checkajax$ID$(){ forms=document.getElementsByTagName('form'); for(f=0;f<forms.length;f++){ if(forms[f].id=='frm981'){ if(repval=='minus'){document.getElementById('a1').checked='true'; forms[f].reason.value='Плохой пост:'+window.location.href; document.getElementById('submfrm981').click(); document.getElementById('sbt981').onclick=null; clearInterval(ajaxtime);}// by Vanofuture else{document.getElementById('a2').checked='true'; forms[f].reason.value='Хороший пост:'+window.location.href; document.getElementById('submfrm981').click(); document.getElementById('sbt981').onclick=null; clearInterval(ajaxtime);}}}} </script>
Сообщение отредактировал pssergey - Среда, 16.10.2013, 22:42 |
|
[17] likbezz [16.10.2013, 22:51] |
pssergey, 1. Ссылка прописыватся не на пост, а на страницу. 1. - брать ссылку с поста - с номера сообщения или собирать операторами - форум_id + тема_id + пост_id
2. убрать: Код forms[f].reason.value='Хороший пост:'+window.location.href;
3. можно на событие субмит повесить релоад. |
|
[18] pssergey [20.10.2013, 23:14] |
можно на событие субмит повесить релоад.
likbezz, Спасибо большущее! Пошёл убирать... и вешать релоад...
Добавлено (17.10.2013, 00:45) --------------------------------------------- likbezz, СПАСИБО, за подсказки. Ура! Получилось. Посмотреть, опробовать можно тут http://volkodav-vluki.ucoz.ru/forum/2-15-1 К сожалению, гости кнопку "Спасибо" не видят. Выглядит вот так: В итоге: 1. Имеем кнопку "Спасибо" работающую действительно в ОДИН клик... жмём кнопку, появляется окошко репутации на мгновение и страница обновляется с +1 в репутацию. Просто таким образом благодарим собеседника или присоединяемся к его мнению без лишних телодвижений - удобно это. 2. Репутацию так же можно изменять стандартным способом - это если хочется понаписать стихов, хозяин - барин...
Сложу по порядку действия, может поможет кому-то: управление дизайном модуля/ общий вид страниц форума, после <head> вставляем вот это: Код <script type="text/javascript"> function repchange(val,id){ repval=val; ajaxtime=setInterval('checkajax'+id+'()',500);} </script> В вид материалов после $USER_DETAILS_ICON_BAR$ вставляем: Код <script type="text/javascript"> function checkajax$ID$(){ forms=document.getElementsByTagName('form'); for(f=0;f<forms.length;f++){ if(forms[f].id=='frm981'){ if(repval=='minus'){document.getElementById('a1').checked='true'; document.getElementById('submfrm981').click(); document.getElementById('sbt981').onclick=null; clearInterval(ajaxtime);}// by Vanofuture else{document.getElementById('a2').checked='true'; forms[f].reason.value='СПАСИБО' document.getElementById('submfrm981').click(); document.getElementById('sbt981').onclick=location.reload(); clearInterval(ajaxtime);}}}} </script> Следом за этим вставляем саму кнопку: Код <?if($DO_REP_URL$)?><a href="$DO_REP_URL$"><img onclick="repchange('plus','$ID$')();" height="22" title="Сказать спасибо" src="ссылка на картинку кнопки" border="0" /></a> <?endif?> Прошу проверить по ссылке работоспособность, может глюк какой вылезет.
Добавлено (20.10.2013, 23:14) --------------------------------------------- Прошу проверить по ссылке работоспособность, может глюк какой вылезет. Приветствую. В общем, вроде бы работает. Только добавил ещё задержку перед обновлением страницы, без неё не всегда обновляется с уже добавленной репутацией. В коде, который вставляется в вид материалов вот это: заменил на это: Код setTimeout(function() {window.location.reload();}, 1200); 1200 - время в миллисекундах. Проверял в броузерах: мозила, хром, яндекс, опера мини на простом телефоне - пока глюков не наблюдаю. Есть недостаток. т.к. тайм-аут на повторное изменение репутации отключен, хотелось бы закрыть возможность повторного повышения репутации в конкретном сообщении... Прошу подсказать, есть такая возможность?
Сообщение отредактировал pssergey - Воскресенье, 20.10.2013, 23:31 |
|
[19] волчара [23.08.2014, 13:18] |
Спасибо все работает, правда время я уменьшил до 1000 |
|