File manager - Edit - /home/capoccitel/www/administrator/components/com_acymailing/controllers/newsletter.php
Back
<?php /** * @package AcyMailing for Joomla! * @version 5.8.0 * @author acyba.com * @copyright (C) 2009-2017 ACYBA S.A.R.L. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php class NewsletterController extends acymailingController{ var $aclCat = 'newsletters'; function replacetags(){ if(!$this->isAllowed($this->aclCat, 'manage')) return; $this->store(); return $this->edit(); } function copy(){ if(!$this->isAllowed($this->aclCat, 'manage')) return; acymailing_checkToken(); $cids = acymailing_getVar('array', 'cid', array(), ''); $db = JFactory::getDBO(); $time = time(); $creatorId = intval(acymailing_currentUserId()); $addSendDate = ''; if(!empty($this->copySendDate)) $addSendDate = ', `senddate`'; foreach($cids as $oneMailid){ $query = 'INSERT INTO `#__acymailing_mail` (`subject`, `body`, `altbody`, `published`'.$addSendDate.', `created`, `fromname`, `fromemail`, `replyname`, `replyemail`, `bccaddresses`, `type`, `visible`, `userid`, `alias`, `attach`, `html`, `tempid`, `key`, `frequency`, `params`,`filter`,`metakey`,`metadesc`)'; $query .= " SELECT CONCAT('copy_',`subject`), `body`, `altbody`, 0".$addSendDate.", '.$time.', `fromname`, `fromemail`, `replyname`, `replyemail`, `bccaddresses`, `type`, `visible`, '.$creatorId.', `alias`, `attach`, `html`, `tempid`, ".acymailing_escapeDB(acymailing_generateKey(8)).', `frequency`, `params`,`filter`,`metakey`,`metadesc` FROM `#__acymailing_mail` WHERE `mailid` = '.(int)$oneMailid; $db->setQuery($query); $db->query(); $newMailid = $db->insertid(); $db->setQuery('INSERT IGNORE INTO `#__acymailing_listmail` (`listid`,`mailid`) SELECT `listid`,'.$newMailid.' FROM `#__acymailing_listmail` WHERE `mailid` = '.(int)$oneMailid); $db->query(); $db->setQuery('INSERT IGNORE INTO `#__acymailing_tagmail` (`tagid`,`mailid`) SELECT `tagid`,'.$newMailid.' FROM `#__acymailing_tagmail` WHERE `mailid` = '.(int)$oneMailid); $db->query(); } return $this->listing(); } function store(){ if(!$this->isAllowed($this->aclCat, 'manage')) return; acymailing_checkToken(); $mailClass = acymailing_get('class.mail'); $status = $mailClass->saveForm(); if($status){ acymailing_enqueueMessage(acymailing_translation('JOOMEXT_SUCC_SAVED'), 'message'); }else{ acymailing_enqueueMessage(acymailing_translation('ERROR_SAVING'), 'error'); if(!empty($mailClass->errors)){ foreach($mailClass->errors as $oneError){ acymailing_enqueueMessage($oneError, 'error'); } } } } function unschedule(){ if(!$this->isAllowed($this->aclCat, 'schedule')) return; acymailing_checkToken(); $mailid = acymailing_getCID('mailid'); if(empty($mailid)) die('Missing mail ID'); $mail = new stdClass(); $mail->mailid = $mailid; $mail->senddate = 0; $mail->published = 0; $mailClass = acymailing_get('class.mail'); $mailClass->save($mail); acymailing_enqueueMessage(acymailing_translation('SUCC_UNSCHED')); return $this->preview(); } function remove(){ if(!$this->isAllowed($this->aclCat, 'delete')) return; acymailing_checkToken(); $cids = acymailing_getVar('array', 'cid', array(), ''); $class = acymailing_get('class.mail'); $num = $class->delete($cids); acymailing_arrayToInteger($cids); $db = JFactory::getDBO(); $db->setQuery('DELETE FROM `#__acymailing_listmail` WHERE `mailid` IN ('.implode(',', $cids).')'); $db->query(); acymailing_enqueueMessage(acymailing_translation_sprintf('SUCC_DELETE_ELEMENTS', $num), 'message'); return $this->listing(); } function savepreview(){ $this->store(); return $this->preview(); } function saveastmpl(){ $this->store(); $mailclass = acymailing_get('class.mail'); $mailclass->saveastmpl(); return $this->edit(); } function preview(){ acymailing_setVar('layout', 'preview'); acymailing_setVar('hidemainmenu', 1); return parent::display(); } function sendtest(){ $this->_sendtest(); return $this->preview(); } function _sendtest(){ acymailing_checkToken(); $mailid = acymailing_getCID('mailid'); $test_selection = acymailing_getVar('string', 'test_selection', '', ''); if(empty($mailid) OR empty($test_selection)) return false; $mailer = acymailing_get('helper.mailer'); $mailer->forceVersion = acymailing_getVar('int', 'test_html', 1, ''); $mailer->autoAddUser = true; if(acymailing_isAdmin()) $mailer->SMTPDebug = 1; $mailer->checkConfirmField = false; $comment = acymailing_getVar('string', 'commentTest', ''); if(!empty($comment)) $mailer->introtext = '<div align="center" style="max-width:600px;margin:auto;margin-top:10px;margin-bottom:10px;padding:10px;border:1px solid #cccccc;background-color:#f6f6f6;color:#333333;">'.nl2br($comment).'</div>'; $receivers = array(); if($test_selection == 'users'){ $receiverEntry = acymailing_getVar('string', 'test_emails', '', ''); if(!empty($receiverEntry)){ if(substr_count($receiverEntry, '@') > 1){ $receivers = explode(',', trim(preg_replace('# +#', '', $receiverEntry))); }else{ $receivers[] = trim($receiverEntry); } } }else{ $gid = acymailing_getVar('int', 'test_group', '-1'); if($gid == -1) return false; $db = JFactory::getDBO(); if(!ACYMAILING_J16){ $db->setQuery('SELECT email FROM '.acymailing_table('users', false).' WHERE gid = '.intval($gid)); }else $db->setQuery('SELECT u.email FROM '.acymailing_table('users', false).' AS u JOIN '.acymailing_table('user_usergroup_map', false).' AS ugm ON u.id = ugm.user_id WHERE ugm.group_id = '.intval($gid)); $receivers = acymailing_loadResultArray($db); } if(empty($receivers)){ acymailing_enqueueMessage(acymailing_translation('NO_SUBSCRIBER'), 'notice'); return false; } $result = true; foreach($receivers as $receiver){ $result = $mailer->sendOne($mailid, $receiver) && $result; } return $result; } function upload(){ if(!$this->isAllowed($this->aclCat, 'manage')) return; acymailing_setVar('layout', 'upload'); return parent::display(); } function abtesting(){ acymailing_setVar('layout', 'abtesting'); return parent::display(); } function abtest(){ $nbTotalReceivers = acymailing_getVar('int', 'nbTotalReceivers'); $mailids = acymailing_getVar('string', 'mailid'); $mailsArray = explode(',', $mailids); acymailing_arrayToInteger($mailsArray); $db = JFactory::getDBO(); $abTesting_prct = acymailing_getVar('int', 'abTesting_prct'); $abTesting_delay = acymailing_getVar('int', 'abTesting_delay'); $abTesting_action = acymailing_getVar('string', 'abTesting_action'); if(empty($abTesting_prct)){ acymailing_display(acymailing_translation('ABTESTING_NEEDVALUE'), 'warning'); $this->abtesting(); return; } $newAbTestDetail = array(); $newAbTestDetail['mailids'] = implode(',', $mailsArray); $newAbTestDetail['prct'] = (!empty($abTesting_prct) ? $abTesting_prct : ''); $newAbTestDetail['delay'] = (isset($abTesting_delay) && strlen($abTesting_delay) > 0 ? $abTesting_delay : '2'); $newAbTestDetail['action'] = (!empty($abTesting_action) ? $abTesting_action : 'manual'); $newAbTestDetail['time'] = time(); $newAbTestDetail['status'] = 'inProgress'; $mailClass = acymailing_get('class.mail'); $nbReceiversTest = $mailClass->ab_test($newAbTestDetail, $mailsArray, $nbTotalReceivers); acymailing_enqueueMessage(acymailing_translation_sprintf('ABTESTING_SUCCESSADD', $nbReceiversTest), 'info'); acymailing_setVar('validationStatus', 'abTestAdd'); $this->abtesting(); } function complete_abtest(){ $mailid = acymailing_getVar('int', 'mailToSend'); $mailClass = acymailing_get('class.mail'); $newMailid = $mailClass->complete_abtest('manual', $mailid); $finalMail = $mailClass->get($newMailid); acymailing_enqueueMessage(acymailing_translation_sprintf('ABTESTING_FINALSEND', $finalMail->subject), 'info'); acymailing_setVar('validationStatus', 'abTestFinalSend'); $this->abtesting(); } function douploadnewsletter(){ if(!$this->isAllowed($this->aclCat, 'manage')) return; acymailing_checkToken(); $templateClass = acymailing_get('class.template'); $templateClass->checkAreas = false; $statusUpload = $templateClass->doupload(); if($statusUpload){ $mailClass = acymailing_get('class.mail'); $mail = new stdClass(); $newTemplate = $templateClass->get($templateClass->templateId); $mail->subject = $newTemplate->name; $mail->body = $newTemplate->body; $mail->tempid = $templateClass->templateId; $idMailCreated = $mailClass->save($mail); if($idMailCreated){ acymailing_enqueueMessage(acymailing_translation('NEWSLETTER_INSTALLED'), 'success'); $js = "setTimeout('redirect()',2000); function redirect(){window.top.location.href = 'index.php?option=com_acymailing&ctrl=newsletter&task=edit&mailid=".$idMailCreated."'; }"; acymailing_addScript(true, $js); return; }else{ acymailing_enqueueMessage(acymailing_translation('ERROR_SAVING'), 'error'); return $this->upload(); } }else{ return $this->upload(); } } function cancelNewsletter(){ $queueController = acymailing_get('controller.queue'); $queueController->cancelNewsletter(); return $this->listing(); } function checkifedited(){ if(empty($_SESSION['timeOnModification'])){ echo 'n'; exit; } $mailClass = acymailing_get('class.mail'); $mailId = acymailing_getVar('string', 'mailId'); $mail = $mailClass->get($mailId); if(empty($mail->lastupdate) || $_SESSION['timeOnModification'] > $mail->lastupdate){ echo 'n'; }else{ $userId = acymailing_loadResult('SELECT userlastupdate FROM #__acymailing_mail WHERE mailid = '.$mailId); echo $userId.'|'.acymailing_currentUserName($userId); } exit; } }
| ver. 1.6 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings