BxDolTwigModule::_processFansActions PHP Method

_processFansActions() public method

public _processFansActions ( $aDataEntry, $iMaxFans = 1000 )
    function _processFansActions($aDataEntry, $iMaxFans = 1000)
    {
        header('Content-type:text/html;charset=utf-8');
        if (false !== bx_get('ajax_action') && $this->isAllowedManageFans($aDataEntry) && 0 === strcasecmp($_SERVER['REQUEST_METHOD'], 'POST')) {
            $iEntryId = $aDataEntry[$this->_oDb->_sFieldId];
            $aIds = array();
            if (false !== bx_get('ids')) {
                $aIds = $this->_getCleanIdsArray(bx_get('ids'));
            }
            $isShowConfirmedFansOnly = false;
            switch (bx_get('ajax_action')) {
                case 'remove':
                    $isShowConfirmedFansOnly = true;
                    if ($this->_oDb->removeFans($iEntryId, $aIds)) {
                        foreach ($aIds as $iProfileId) {
                            $this->onEventFanRemove($iEntryId, $iProfileId, $aDataEntry);
                        }
                    }
                    break;
                case 'add_to_admins':
                    $isShowConfirmedFansOnly = true;
                    if ($this->isAllowedManageAdmins($aDataEntry) && $this->_oDb->addGroupAdmin($iEntryId, $aIds)) {
                        $aProfiles = array();
                        $iNum = $this->_oDb->getAdmins($aProfiles, $iEntryId, 0, $iMaxFans, $aIds);
                        foreach ($aProfiles as $aProfile) {
                            $this->onEventFanBecomeAdmin($iEntryId, $aProfile['ID'], $aDataEntry);
                        }
                    }
                    break;
                case 'admins_to_fans':
                    $isShowConfirmedFansOnly = true;
                    $iNum = $this->_oDb->getAdmins($aGroupAdmins, $iEntryId, 0, $iMaxFans);
                    if ($this->isAllowedManageAdmins($aDataEntry) && $this->_oDb->removeGroupAdmin($iEntryId, $aIds)) {
                        foreach ($aGroupAdmins as $aProfile) {
                            if (in_array($aProfile['ID'], $aIds)) {
                                $this->onEventAdminBecomeFan($iEntryId, $aProfile['ID'], $aDataEntry);
                            }
                        }
                    }
                    break;
                case 'confirm':
                    if ($this->_oDb->confirmFans($iEntryId, $aIds)) {
                        echo '<script type="text/javascript" language="javascript">
                            document.location = "' . BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . "view/" . $aDataEntry[$this->_oDb->_sFieldUri] . '";
                        </script>';
                        $aProfiles = array();
                        $iNum = $this->_oDb->getFans($aProfiles, $iEntryId, true, 0, $iMaxFans, $aIds);
                        foreach ($aProfiles as $aProfile) {
                            $this->onEventJoin($iEntryId, $aProfile['ID'], $aDataEntry);
                            $this->onEventJoinConfirm($iEntryId, $aProfile['ID'], $aDataEntry);
                        }
                    }
                    break;
                case 'reject':
                    if ($this->_oDb->rejectFans($iEntryId, $aIds)) {
                        foreach ($aIds as $iProfileId) {
                            $this->onEventJoinReject($iEntryId, $iProfileId, $aDataEntry);
                        }
                    }
                    break;
                case 'list':
                    break;
            }
            $aProfiles = array();
            $iNum = $this->_oDb->getFans($aProfiles, $iEntryId, $isShowConfirmedFansOnly, 0, $iMaxFans);
            if (!$iNum) {
                echo MsgBox(_t('_Empty'));
            } else {
                echo $this->_profilesEdit($aProfiles, true, $aDataEntry);
            }
            exit;
        }
    }