В код надо лезть..
app/core/modules/admin/members/members.php
Найти
$table->rowButtons = function( $row ) use( $member )
{
return [ 'delete' => [
'icon' => 'times-circle',
'title' => 'delete',
'link' => $row['rule'] ? NULL : $member->acpUrl()->setQueryString( ['do' => 'deleteBadge', 'id' => $row['badge_id'], 'member_id' => $member->member_id ] ),
'class' => $row['rule'] ? 'ipsControlStrip_disabled' : '',
'data' => $row['rule'] ? [] : [ 'delete' => '' ],
'tooltip' => \IPS\Member::loggedIn()->language()->addToStack( $row['rule'] ? 'acp_badge_cannot_delete' : 'delete' )
] ];
};
Заменить на
$table->rowButtons = function( $row ) use( $member )
{
return [ 'delete' => [
'icon' => 'times-circle',
'title' => 'delete',
'link' => $member->acpUrl()->setQueryString( ['do' => 'deleteBadge', 'id' => $row['badge_id'], 'member_id' => $member->member_id ] ),
'class' => '',
'data' => [ 'delete' => '' ],
'tooltip' => \IPS\Member::loggedIn()->language()->addToStack( 'delete' )
] ];
};
Еще найти ниже в функции deleteBadges
$badge = \IPS\Db::i()->select( '*', 'core_member_badges', [ 'rule=0 and member=? and badge=?', $member->member_id, \IPS\Request::i()->id ] )->first();
Заменить на
$badge = \IPS\Db::i()->select( '*', 'core_member_badges', [ member=? and badge=?', $member->member_id, \IPS\Request::i()->id ] )->first();
Идеально - заменить хуком, но мне лень.
А если надо изредка и избранным, то проще в таблице core_member_badges изменить поле 'rule' на 0 y значков конкретного пользователя.
можно запросиком - update core_member_badges set rule=0 where member=ID_пользователя;
После этого можно отнимать медальки у конкретного пользователя через админку.