how to disable karma for admins?

Started by vova1609, October 07, 2012, 02:48:31 PM

Previous topic - Next topic

vova1609

how to disable karma for admins? I need this mod

kingW3

I'll make something for now you can do this find this in sources/karma.php

// The user ID _must_ be a number, no matter what.
$_REQUEST['uid'] = (int) $_REQUEST['uid'];

add after

// Admins can't get their karma modified
    $request = $smcFunc['db_query']('', '
SELECT id_member FROM {db_prefix}members
WHERE id_group=1'
);
    while ($row = $smcFunc['db_fetch_assoc']($request))
    {
    foreach($row as $t => $b)
  {
     if($row[$t] == $_REQUEST['uid'])
      {
   fatal_lang_error('karma_admin_allowed', false);
   }
  }
};

also
add in here Themes\default\languages\Errors.english.php (also try to find that file in themes\<theme you're using>\languages\ if it's there add it also)
$txt['karma_admin_allowed'] = 'You can\'t change admins karma';
at the end or whatever you want it to be

vova1609

Thanks for answer. But I want to disable Karma field and karma buttons too only for admins

kingW3

Find this in display.template.php in themes/default/

// Is karma display enabled?  Total or +/-?
if ($modSettings['karmaMode'] == '1')
echo '
<li class="karma">', $modSettings['karmaLabel'], ' ', $message['member']['karma']['good'] - $message['member']['karma']['bad'], '</li>';
elseif ($modSettings['karmaMode'] == '2' && $message['member']['group'] !== 'Administrator')
echo '
<li class="karma">', $modSettings['karmaLabel'], ' +', $message['member']['karma']['good'], '/-', $message['member']['karma']['bad'], '</li>';

Replace it with this(and leave the code
// Is karma display enabled?  Total or +/-?
if ($modSettings['karmaMode'] == '1' && $message['member']['group'] !== 'Administrator')
echo '
<li class="karma">', $modSettings['karmaLabel'], ' ', $message['member']['karma']['good'] - $message['member']['karma']['bad'], '</li>';
elseif ($modSettings['karmaMode'] == '2' && $message['member']['group'] !== 'Administrator')
echo '
<li class="karma">', $modSettings['karmaLabel'], ' +', $message['member']['karma']['good'], '/-', $message['member']['karma']['bad'], '</li>';
if($message['member']['group'] == 'Administrator')
{
$message['member']['karma']['allow'] = false;
}

I'll edit it also for profile in few mins/hours

vova1609

And last question: how to disable badge, rank  and group name for admins?

kingW3

Try this
Find

// Show the member's primary group (like 'Administrator') if they have one.
if (!empty($message['member']['group']))
echo '
<li class="membergroup">', $message['member']['group'], '</li>';

// Don't show these things for guests.
if (!$message['member']['is_guest'])
{
// Show the post group if and only if they have no other group or the option is on, and they are in a post group.
if ((empty($settings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '' )
echo '
<li class="postgroup">', $message['member']['post_group'], '</li>';
echo '
<li class="stars">', $message['member']['group_stars'], '</li>';

Replace

// Show the member's primary group (like 'Administrator') if they have one.
if (!empty($message['member']['group']) && $message['member']['group'] !== 'Administrator')
echo '
<li class="membergroup">', $message['member']['group'], '</li>';

// Don't show these things for guests.
if (!$message['member']['is_guest'])
{
// Show the post group if and only if they have no other group or the option is on, and they are in a post group.
if ((empty($settings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '' && $message['member']['group'] !== 'Administrator')
echo '
<li class="postgroup">', $message['member']['post_group'], '</li>';
if($message['member']['group'] !== 'Administrator')
echo '
<li class="stars">', $message['member']['group_stars'], '</li>';

Advertisement: