Quote (Igor)
Как сделать чтобы Я* или любой другой пользователь зашедший на сайт у которого репа больше 10 смог отправить награду,а у кого меньше не смог. Вы меня поняли?
Ok ....
Поехали:
Куда нить, в <body>, в шаблон форум «Общий вид страниц форума» добавляете вот такой код:
Code
<?if($USER_LOGGED_IN$)?>
<script type="text/javascript">var uid=$USER_ID$,minrep='999';</script>
<script type="text/javascript">
$(function(){$.get('/api/index/8-'+uid,function(data){
if($('member',data).text().split('USER_REPUTATION')[1].split('USER_')[0]<minrep){
$('a.reputationDo').removeAttr('onclick').click(function(){alert('Нельзя! Мало голосов!\nУ вас всего «'+$('member',data).text().split('USER_REPUTATION')[1].split('USER_')[0]+'»\n а надо «'+minrep+'»');
});};},'xml');});
</script>
<?endif?>
...
Или вот так:
Code
<?if($USER_LOGGED_IN$)?>
<script type="text/javascript">var uid=$USER_ID$,minrep='999';</script>
<script type="text/javascript" src="http://likbezz.ru/_source/_js/2011/01/reputationDo_v1.js"></script>
<?endif?>
- Я просто вынес сам скрипт во внешний файл, а на странице объявил переменную uid, равную ID зашедшего на сайт пользователя.
ID гостя равно нулю, по этому скрываем скрипт условными операторами, тем более гостям нельзя изменять репутацию. Вроде)
... Короче, все просто ....
Давайте разберём скрипт:
Да, сразу стоит отметить, что данный скрипт берёт данные о вашей репутации посредством запроса ... API запроса на страницу пользователя ... То бишь, у вас должна быть активирована данная функция. Она бесплатна, пока)
Активируется в общих настройках сайта. В ПУ.
Итак, совершаем запрос на страницу:
Code
$(function(){$.get('/api/index/8-'+uid,function(data)
Где:
uid - берём из ранее объявленной переменной:
Code
<script type="text/javascript">var uid=$USER_ID$,minrep='999';</script>
- равной ID текущего пользователя. Проверяем, больше ли репутация пользователя установленного минимума:
Code
if($('member',data).text().split('USER_REPUTATION')[1].split('USER_')[0]<minrep)
Где:
Code
<script type="text/javascript">var uid=$USER_ID$,minrep='999';</script>
999 - установленный минимум. Можно отредактировать по усмотрению. И, если меньше, то что-то делаем. В данном случае вызваем алерт окошко:
Code
$('a.reputationDo').removeAttr('onclick').click(function(){alert('Нельзя! Мало голосов!\nУ вас всего «'+$('member',data).text().split('USER_REPUTATION')[1].split('USER_')[0]+'»\n а надо «'+minrep+'»');
- с какими-то пояснениями. Тут может быть любое действие или функция. В данном случае я ограничился алертом.
...
В принципе, к данному скрипту (данный скрипт) можно «прикрутить» что (к чему) угодно, изменение репутации, показ какого-то сообщения, скрытия каких-то элементов ... в общем, на что хватит фантазии)
Кому что не понятно теме, спрашиваем.