|
|
@@ -49,6 +49,7 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
|
|
|
'GetDataSearchApi' => 'BxBaseServices',
|
|
|
'Cmts' => 'BxBaseServices',
|
|
|
'GetFooter' => 'BxBaseServices',
|
|
|
+ 'SetBadges' => 'BxBaseServices',
|
|
|
|
|
|
'GetPageBlockData' => 'BxBaseServicePages',
|
|
|
'SetPageBlockData' => 'BxBaseServicePages',
|
|
|
@@ -91,7 +92,6 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
|
|
|
'UpdateSettings' => 'BxBaseServiceProfiles',
|
|
|
'Befriend' => 'BxBaseServiceProfiles',
|
|
|
'ProfileCounters' => 'BxBaseServiceProfiles',
|
|
|
- 'SetBadges' => 'BxBaseServiceProfiles',
|
|
|
|
|
|
'GetChartGrowth' => 'BxBaseChartServices',
|
|
|
'GetChartStats' => 'BxBaseChartServices',
|
|
|
@@ -1409,6 +1409,34 @@ class BxBaseServices extends BxDol implements iBxDolProfileService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function serviceSetBadges($iContentId, $sBadgesIds, $sModule)
|
|
|
+ {
|
|
|
+ $aSelectedBadges = explode(",", $sBadgesIds);
|
|
|
+
|
|
|
+ $iPerformerId = bx_get_logged_profile_id();
|
|
|
+ $aCheck = checkActionModule($iPerformerId, 'set badge', 'system', false);
|
|
|
+ if(!isAdmin() && $aCheck[CHECK_ACTION_RESULT] !== CHECK_ACTION_RESULT_ALLOWED)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ $oBadges = BxDolBadges::getInstance();
|
|
|
+
|
|
|
+ $aBadges = $oBadges->getData(array('type' => 'by_module&object', 'object_id' => $iContentId, 'module' => $sModule));
|
|
|
+
|
|
|
+ foreach ($aBadges as $aBadge) {
|
|
|
+ if (isset($aBadge['badge_id'])){
|
|
|
+ $oBadges->delete($aBadge['badge_id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($aSelectedBadges as $iSelectedBadge) {
|
|
|
+ $oBadges->add($iSelectedBadge, $iContentId, $sModule);
|
|
|
+ }
|
|
|
+
|
|
|
+ checkActionModule($iPerformerId, 'set badge', 'system', true); // perform action
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
public function serviceGetBadge($aBadge, $bIsCompact = false)
|
|
|
{
|
|
|
$sClass = '';
|