Меняем карму пользователю из админки.
Для предыдущих версий — на этой странице.
1.
Предупреждение!!! Делалось для админки, поэтому о безопасности речи не пойдёт.
В \admin\applets\users.php (все пути идут от корня) где-то в самом начале, а точнее после 44-й строки, помещаем функцию отвечающую за получение текущего значения кармы:
2. Следующий пункт это добавление в БД записи.
После вставки функции и её вызова ищем строку 253 ± пару строк
После строк
Видим получение переменных методом request и можно в самый конец этих request`ов дописать получение
2.1 Скролим чуток дальше строка этак 283 ± пару строк Видим sql запросик
$sql = "UPDATE cms_users
SET login = '$login',
nickname = '$nickname',
email = '$email',
group_id = $group_id,
is_locked = $is_locked $pass_sql
WHERE id = $id
LIMIT 1";
dbQuery($sql) ;
и уже после! него, но ДО закрывающейся фигурной скобки вставляем следующее :
И тут где-то должна быть та самая закрывающаяся скобка( тут надо быть осторожным, закрывающих скобок должно быть 2, одна от условия, другая та самая в которую мы добавили эти строки. ) .
2.2Теперь непосредственно к форме :
Скролим дальше, находим форму, находим строку Заблокировать аккаунт, перед закрывающимся тегом таблицы </table>
Вставляем новый ряд :На данном этапе скрипт полностью рабочий и лучше его проверить, дальше речь пойдёт о отображении изменений в истории кармы.(Кому не надо могут дальше не читать).
3. Идём в пользовательскую часть: \templates\_default_\components\com_users_karma.tpl
И там уже между <tr></tr> заменяем все ячейки на
И для полного счастья добавим в languages\ru\components\users.php следующую строку (можно в конец, но до ?>):
$_LANG['KARMA_ADMIN'] ='Администрация'; // Тут подпись от кого добавлена карма.
P.S Отрицательные значения тоже принимаются.
Номера строк указаны с учетом ранее проделанных правок!
Для предыдущих версий — на этой странице.
1.
Предупреждение!!! Делалось для админки, поэтому о безопасности речи не пойдёт.
В \admin\applets\users.php (все пути идут от корня) где-то в самом начале, а точнее после 44-й строки, помещаем функцию отвечающую за получение текущего значения кармы:
//получаем текущее значение кармы для пользователя $nowkarma = cmsUser::getKarma($id);
После вставки функции и её вызова ищем строку 253 ± пару строк
После строк
if ($do == 'update'){ $id = (int)$_REQUEST['id']; ......
$karma = $inCore->request('newkarma','int'); // получение числа введённого в форму $newkarma = $karma + $nowkarma; // получение суммы кармы + число заданное админом
$sql = "UPDATE cms_users
SET login = '$login',
nickname = '$nickname',
email = '$email',
group_id = $group_id,
is_locked = $is_locked $pass_sql
WHERE id = $id
LIMIT 1";
dbQuery($sql) ;
и уже после! него, но ДО закрывающейся фигурной скобки вставляем следующее :
// проверяем была ли добавлена карма пользователю в админке if (isset($karma) AND ($karma != 0)){ // такое условия для того если кому-то захочется вписать туда ноль. // меняем значение кармы для пользователя $sql_new ="UPDATE cms_user_profiles SET karma = '$newkarma' WHERE user_id = '$id' LIMIT 1"; dbQuery($sql_new) ; // регистрируем это действие для истории кармы $sql_hyst = "INSERT INTO cms_user_karma (user_id, sender_id, points, senddate) VALUES ('$id',0, '$karma', NOW())"; // вставляем 0 для отправителя, будет использовано в истории кармы. dbQuery($sql_hyst); // Отправляем сообщение о повышении либо понижении кармы. cmsUser::sendMessage(USER_UPDATER, $id, '<b>Ваша карма была изменена на '.$karma.' пунктов!</b>'); }
2.2Теперь непосредственно к форме :
Скролим дальше, находим форму, находим строку Заблокировать аккаунт, перед закрывающимся тегом таблицы </table>
Вставляем новый ряд :
<tr> <td><strong>Добавить кармы </strong> текущее значение: <b><?php echo $nowkarma ;?> </b> </td> <td><b><?php echo $nowkarma ;?> + </b> <input name="newkarma" type="text" id="newkarma" style="width:50px"/> <td> </tr>
3. Идём в пользовательскую часть: \templates\_default_\components\com_users_karma.tpl
И там уже между <tr></tr> заменяем все ячейки на
<td style="border-bottom:solid 1px silver" width="150" valign="middle">{$karm.fsenddate}</td> {if $karm.sender_id == 0} <td style="border-bottom:solid 1px silver" width="120" valign="middle" >{$LANG.KARMA_ADMIN}</td> {else} <td style="border-bottom:solid 1px silver" width="200" valign="middle"><a href="{profile_url login=$karm.login}">{$karm.nickname}</a></td> {/if} <td style="border-bottom:solid 1px silver" width="100" valign="middle" align="center">{$karm.kpoints}</td>
$_LANG['KARMA_ADMIN'] ='Администрация'; // Тут подпись от кого добавлена карма.
P.S Отрицательные значения тоже принимаются.
Номера строк указаны с учетом ранее проделанных правок!
Реклама #
Darik 12 лет назад #
MrJenika 12 лет назад #
fact 12 лет назад #
fact 12 лет назад #
MrJenika 12 лет назад #
CROSS ツ 12 лет назад #
MrJenika 12 лет назад #
Эд 12 лет назад #
Санечек 12 лет назад #
alegcool 11 лет назад #
Кто подскажет как на 1.10. воплотить сеё чудо.