iContentId = $iContentId; if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && ($iContentId = bx_get('content_id', 'post')) && ($iBadgeId = bx_get('badge_id', 'post')) && ($sModule = bx_get('module', 'post'))) { $iContentId = urldecode($iContentId); $iBadgeId = urldecode($iBadgeId); echoJson($this->setBadge($iContentId, $iBadgeId, $sModule)); exit(); } return parent::getCode (); } public function getMenuItems () { $this->loadData(); return parent::getMenuItems(); } protected function loadData() { $iContentId = $this->iContentId; $sModule = ''; if(bx_get('content_id') !== false) $iContentId = bx_process_input(bx_get('content_id'), BX_DATA_INT); if(bx_get('module') !== false) $sModule = bx_process_input(bx_get('module')); $oBadges = BxDolBadges::getInstance(); $aBadges = $oBadges->getData(array('type' => 'by_module&object', 'object_id' => $iContentId, 'module' => $sModule)); $aItems = array(); foreach ($aBadges as $aBadge) { $aItems[] = array( 'id' => $aBadge['id'], 'name' => $aBadge['id'], 'class' => '', 'title' => '
' . BxDolService::call('system', 'get_badge', array($aBadge), 'TemplServices') .'
', 'addon' => '', 'selected' => true, 'link' => 'javascript:void(0);', 'onclick' => 'javascript:void(0);' ); if ($aBadge['badge_id'] != ''){ array_push($this->_aSelectedIds, $aBadge['id']); } } $this->_aObject['menu_items'] = $aItems; } protected function setBadge($iContentId, $iBadgeId , $sModule) { $iPerformerId = bx_get_logged_profile_id(); $aCheck = checkActionModule($iPerformerId, 'set badge', 'system', false); if(!isAdmin() && $aCheck[CHECK_ACTION_RESULT] !== CHECK_ACTION_RESULT_ALLOWED) return array('code' => 1, 'msg' => $aCheck[CHECK_ACTION_MESSAGE]); $oBadges = BxDolBadges::getInstance(); $aBadges = $oBadges->getData(array('type' => 'by_module&object&badge', 'object_id' => $iContentId, 'module' => $sModule, 'badge_id' => $iBadgeId)); if(count($aBadges) > 0) $oBadges->delete(array('type' => 'by_module&object&badge', 'module'=> $sModule, 'object_id' => $iContentId, 'badge_id' => $iBadgeId)); else $oBadges->add($iBadgeId, $iContentId, $sModule); checkActionModule($iPerformerId, 'set badge', 'system', true); // perform action $aResult = array('code' => 0, 'html' => BxDolService::call($sModule, 'get_badges', array($iContentId))); return $aResult; } protected function _isSelected ($a) { return false; } } /** @} */