На вопрос зачем… отвечаю. рейтинг можно привязать к валюте сайта. За рейтинг можно скачивать файлы отправлять подарки и так далее. Например пользователь не хочет участвовать в жизни сайта на зарабатывания рейтинга… а вот скачать файл за 50 рейтинга или отправить подарок за 50 рейтинга уж очень хочет. А рейтинга у него 0.Вот тут и пригодится кнопочка
Кнопка будет под аватаром возле кнопки наградить. При нажатии всплывает окно, там вводим количество баллов, нажимаем ОК и все. Рейтинг поднят…
Шаг 1.
В файле шаблона com_users_profile.tplВ разделе
{* ==========меню в профиле=========== *} ........... .......... ........
<td><a href="/users/{$usr.id}/giveaward.html" title="{$LANG.TO_AWARD}"><img src="/components/users/images/profilemenu/award.gif" border="0"/></a></td>
<td><a href="javascript: addRating()" title="Поднять рейтинг"><img src="/components/users/images/profilemenu/rating.gif" border="0"/></a></td>
Шаг 2.
В файле components\users\js\profile.jsдобавим функцию:
function addRating(){ var rating = prompt('Количество баллов:'); var user_id = $('input[@name=user_id]').val(); if (rating) { $.post('/components/users/ajax/rating.php', {'rating': rating, 'user_id': user_id}, function(data){ alert(data); }); } }
Шаг 3.
Откроем блокнот.Создадим текстовый файл с таким содержанием:
<?php include(PATH.'/core/cms.php'); $inCore = cmsCore::getInstance(); $inCore->loadClass('config'); //конфигурация $inCore->loadClass('db'); //база данных $inCore->loadClass('user'); $inDB = cmsDatabase::getInstance(); $inUser = cmsUser::getInstance(); $inUser->update(); $points = $inCore->request('rating', 'int', ''); $user_id = $inCore->request('user_id', 'int', ''); if ($points>1000){ $points = 1000; } // больше 1000 поднять за один раз нельзя!!! if ($inCore->userIsAdmin($inUser->id) && $points>0){ $sql = "UPDATE cms_users SET rating = rating + {$points} WHERE id = {$user_id}"; $inDB->query($sql); echo 'Рейтинг успешно изменен!'; } else { echo 'Ошибка!!!';} return; ?>
Теперь закинем его в папку components\users\ajax\
Если ровными ручками делать, должно получиться с первого раза.
Исходники не даю. Учимся переписывать правильно…
под аватаром… немного не доработка… можна было сделать как текстом так и иконками
Эту кнопку видит только администратор. Если и он не знает где меню находится — это печально
Саш урок в действие.Получилось вот как.
Буду говорить за себя. Переписываю правильно в 95% случаев правки кода. 5% — ошибок стараюсь сам же понять, где напортачил. За советом обращаюсь крайне редко, обычно к тому времени появляется много наводящих комментариев😊Неужели вы переписывать правильно научились???
Извините за оффтоп
Вроде все как написано сделал. Хочу поднять рейтинг на 100
И после нажатия на ОК выскакивает вот такая штука
И рейтинг не увеличивается
помогите кто нибудь!!!