(Исправлено одно из условий, вместо OR надо было написать AND )
Привет, на досуге помогал знакомому, столкнулся с InstantCms впервые.
Стояла задача допилить возможность добавления кармы из Админки. Не спрашивайте зачем, надо.
И собственно к делу: если кому надо, могу выложить свою наработку и полную инструкцию по "прикрутке".
Пишите в комменты, будет хоть одно пожелание, выложу.
Для версии 1.7
Скачать можно тут
1.Для начала напишу простенькую функцию которая получает текущую карму пользователя (скорей всего функция есть где-то в недрах cms но моё знакомство с ней слишком кратко). Так что кто знает, может ткнуть в файл.
Да, функция действительно есть, поэтому я заменил немного код .
Предупреждение!!! Делалось для админки, поэтому о безопасности как-то не думалось.
Для простоты использования я поместил это функцию в \admin\applets\users.php (все пути идут от корня) где-то в самом начале, а точнее после 30-й строки.
Далее все записи относятся к файлу \admin\applets\users.php пока не будет указан следующий.
2. Следующий пункт это добавление в БД записи.
После вставки функции и её вызова ищем строку 193 ± пару строк
После строк
Видим получение переменных методом request и можно в самый конец этих request`ов дописать получение
2.1 Скролим чуток дальше строка этак 213 ± пару строк Видим 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 Чуть не забыл, можно писать отрицательные числа (-10) и тогда будет минусоваться от кармы и в истории будет красным цветом.
Если кому надо будет, выложу файлы которые правил.
Скачать
Привет, на досуге помогал знакомому, столкнулся с InstantCms впервые.
Стояла задача допилить возможность добавления кармы из Админки. Не спрашивайте зачем, надо.
И собственно к делу: если кому надо, могу выложить свою наработку и полную инструкцию по "прикрутке".
Пишите в комменты, будет хоть одно пожелание, выложу.
Для версии 1.7
Скачать можно тут
1.
Да, функция действительно есть, поэтому я заменил немного код .
Предупреждение!!! Делалось для админки, поэтому о безопасности как-то не думалось.
Для простоты использования я поместил это функцию в \admin\applets\users.php (все пути идут от корня) где-то в самом начале, а точнее после 30-й строки.
Далее все записи относятся к файлу \admin\applets\users.php пока не будет указан следующий.
//получаем текущее значение кармы для пользователя $nowkarma = cmsUser::getKarma($id);
После вставки функции и её вызова ищем строку 193 ± пару строк
После строк
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 Чуть не забыл, можно писать отрицательные числа (-10) и тогда будет минусоваться от кармы и в истории будет красным цветом.
Если кому надо будет, выложу файлы которые правил.
Скачать
Реклама #
Greener 13 лет назад #
Anabiotick 13 лет назад #
Умные Интернет Разработки 13 лет назад #
MrJenika 13 лет назад #
Anabiotick 13 лет назад #
MrJenika 13 лет назад #
Pampa 13 лет назад #
lezginka.ru 13 лет назад #
Fuze 13 лет назад #
MrJenika 13 лет назад #
Pampa 13 лет назад #
Pampa 13 лет назад #
13 лет назад #
MrJenika 13 лет назад #
13 лет назад #
Keep 13 лет назад #
MrJenika 13 лет назад #
Keep 13 лет назад #
MrJenika 13 лет назад #
MrJenika 13 лет назад #
Keep 13 лет назад #