function _actionBroadcast($iEntryId, $sTitle, $sMsgNoRecipients, $sMsgSent)
{
$iEntryId = (int) $iEntryId;
if (!($aDataEntry = $this->_oDb->getEntryById($iEntryId))) {
$this->_oTemplate->displayPageNotFound();
return;
}
if (!$this->isAllowedBroadcast($aDataEntry)) {
$this->_oTemplate->displayAccessDenied();
return;
}
$this->_oTemplate->pageStart();
$GLOBALS['oTopMenu']->setCustomSubHeader($aDataEntry[$this->_oDb->_sFieldTitle]);
$GLOBALS['oTopMenu']->setCustomVar($this->_sPrefix . '_view_uri', $aDataEntry[$this->_oDb->_sFieldUri]);
$GLOBALS['oTopMenu']->setCustomSubHeaderUrl(BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
$GLOBALS['oTopMenu']->setCustomBreadcrumbs(array(_t('_' . $this->_sPrefix) => BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'home/', $aDataEntry[$this->_oDb->_sFieldTitle] => BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'view/' . $aDataEntry[$this->_oDb->_sFieldUri], $sTitle => ''));
$aRecipients = $this->_oDb->getBroadcastRecipients($iEntryId);
if (!$aRecipients) {
echo MsgBox($sMsgNoRecipients);
$this->_oTemplate->pageCode($sMsgNoRecipients, true, true);
return;
}
bx_import('FormBroadcast', $this->_aModule);
$sClass = $this->_aModule['class_prefix'] . 'FormBroadcast';
$oForm = new $sClass();
$oForm->initChecker();
if ($oForm->isSubmittedAndValid()) {
$oEmailTemplate = new BxDolEmailTemplates();
if (!$oEmailTemplate) {
$this->_oTemplate->displayErrorOccured();
return;
}
$aTemplate = $oEmailTemplate->getTemplate($this->_sPrefix . '_broadcast');
$aTemplateVars = array('BroadcastTitle' => $this->_oDb->unescape($oForm->getCleanValue('title')), 'BroadcastMessage' => nl2br($this->_oDb->unescape($oForm->getCleanValue('message'))), 'EntryTitle' => $aDataEntry[$this->_oDb->_sFieldTitle], 'EntryUrl' => BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'view/' . $aDataEntry[$this->_oDb->_sFieldUri]);
$iSentMailsCounter = 0;
foreach ($aRecipients as $aProfile) {
$iSentMailsCounter += sendMail($aProfile['Email'], $aTemplate['Subject'], $aTemplate['Body'], $aProfile['ID'], $aTemplateVars);
}
if (!$iSentMailsCounter) {
$this->_oTemplate->displayErrorOccured();
return;
}
echo MsgBox($sMsgSent);
$this->isAllowedBroadcast($aDataEntry, true);
// perform send broadcast message action
$this->_oTemplate->addCss('main.css');
$this->_oTemplate->pageCode($sMsgSent, true, true);
return;
}
echo $oForm->getCode();
$this->_oTemplate->addCss('main.css');
$this->_oTemplate->pageCode($sTitle);
}