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;
}
}