BxDolTwigModule::_actionBroadcast PHP Method

_actionBroadcast() public method

public _actionBroadcast ( $iEntryId, $sTitle, $sMsgNoRecipients, $sMsgSent )
    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);
    }

Usage Example

Ejemplo n.º 1
0
 function actionBroadcast($iEntryId)
 {
     parent::_actionBroadcast($iEntryId, _t('_bx_events_caption_broadcast'), _t('_bx_events_msg_broadcast_no_participants'), _t('_bx_events_msg_broadcast_message_sent'));
 }
All Usage Examples Of BxDolTwigModule::_actionBroadcast