function process() { if (!$this->isAllowed('lists', 'filter')) { return; } JRequest::checkToken() or die('Invalid Token'); $filid = JRequest::getInt('filid'); if (!empty($filid)) { $this->store(); } $filterClass = acymailing::get('class.filter'); $filterClass->subid = JRequest::getString('subid'); $filterClass->execute(JRequest::getVar('filter'), JRequest::getVar('action')); if (!empty($filterClass->report)) { if (JRequest::getCmd('tmpl') == 'component') { echo acymailing::display($filterClass->report, 'info'); $js = "setTimeout('redirect()',2000); function redirect(){window.top.location.href = 'index.php?option=com_acymailing&ctrl=subscriber'; }"; $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); return; } else { $app =& JFactory::getApplication(); foreach ($filterClass->report as $oneReport) { $app->enqueueMessage($oneReport); } } } return $this->edit(); }
function queue($mailid, $time, $onlyNew = false) { $mailid = intval($mailid); if (empty($mailid)) { return false; } $classLists = acymailing::get('class.listmail'); $lists = $classLists->getReceivers($mailid, false); if (empty($lists)) { return 0; } $config = acymailing::config(); $querySelect = 'SELECT DISTINCT a.subid,' . $mailid . ',' . $time . ',' . (int) $config->get('priority_newsletter', 3); $querySelect .= ' FROM ' . acymailing::table('listsub') . ' as a '; $querySelect .= 'LEFT JOIN ' . acymailing::table('subscriber') . ' as b ON a.subid = b.subid '; $querySelect .= 'WHERE b.enabled = 1 AND b.accept = 1 '; $querySelect .= 'AND a.listid IN (' . implode(',', array_keys($lists)) . ') AND a.status = 1 '; $config = acymailing::config(); if ($config->get('require_confirmation', '0')) { $querySelect .= 'AND b.confirmed = 1 '; } $query = 'INSERT IGNORE INTO ' . acymailing::table('queue') . ' (subid,mailid,senddate,priority) ' . $querySelect; $this->database->setQuery($query); if (!$this->database->query()) { acymailing::display($this->database->ErrorMsg(), 'error'); } $totalinserted = $this->database->getAffectedRows(); if ($onlyNew) { $this->database->setQuery('DELETE b.* FROM `#__acymailing_userstats` as a LEFT JOIN `#__acymailing_queue` as b on a.subid = b.subid WHERE a.mailid = ' . $mailid); $this->database->query(); $totalinserted = $totalinserted - $this->database->getAffectedRows(); } return $totalinserted; }
function language() { $this->setLayout('default'); $code = JRequest::getString('code'); if (empty($code)) { acymailing::display('Code not specified', 'error'); return; } $file = null; $file->name = $code; $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini'; $file->path = $path; jimport('joomla.filesystem.file'); $showLatest = true; $loadLatest = false; if (JFile::exists($path)) { $file->content = JFile::read($path); if (empty($file->content)) { acymailing::display('File not found : ' . $path, 'error'); } } else { $loadLatest = true; acymailing::display(JText::_('LOAD_ENGLISH_1') . '<br/>' . JText::_('LOAD_ENGLISH_2') . '<br/>' . JText::_('LOAD_ENGLISH_3'), 'info'); $file->content = JFile::read(JLanguage::getLanguagePath(JPATH_ROOT) . DS . 'en-GB' . DS . 'en-GB.com_acymailing.ini'); } if ($loadLatest or JRequest::getString('task') == 'latest') { $doc =& JFactory::getDocument(); $doc->addScript(ACYMAILING_UPDATEURL . 'languageload&code=' . JRequest::getString('code')); $showLatest = false; } elseif (JRequest::getString('task') == 'save') { $showLatest = false; } $this->assignRef('showLatest', $showLatest); $this->assignRef('file', $file); }
function update() { $config = acymailing::config(); if (!acymailing::isAllowed($config->get('acl_config_manage', 'all'))) { acymailing::display(JText::_('ACY_NOTALLOWED'), 'error'); return false; } acymailing::setTitle(JText::_('UPDATE_ABOUT'), 'install', 'update'); $bar =& JToolBar::getInstance('toolbar'); $bar->appendButton('Link', 'back', JText::_('ACY_CLOSE'), acymailing::completeLink('dashboard')); return $this->_iframe(ACYMAILING_UPDATEURL . 'update'); }
function save() { JRequest::checkToken() or die('Invalid Token'); $class = acymailing::get('class.url'); $status = $class->saveForm(); if ($status) { acymailing::display(JText::_('JOOMEXT_SUCC_SAVED'), 'success'); return true; } else { acymailing::display(JText::_('ERROR_SAVING'), 'success'); } return $this->edit(); }
function send() { if (!$this->isAllowed('newsletters', 'send')) { return; } JRequest::checkToken() or die('Invalid Token'); $mailid = acymailing::getCID('mailid'); if (empty($mailid)) { exit; } $user =& JFactory::getUser(); $time = time(); $queueClass = acymailing::get('class.queue'); $onlyNew = JRequest::getInt('onlynew'); $totalSub = $queueClass->queue($mailid, $time, $onlyNew); if (empty($totalSub)) { acymailing::display(JText::_('NO_RECEIVER'), 'warning'); return; } $mailObject = null; $mailObject->senddate = $time; $mailObject->published = 1; $mailObject->mailid = $mailid; $mailObject->sentby = $user->id; $db =& JFactory::getDBO(); $db->updateObject(acymailing::table('mail'), $mailObject, 'mailid'); $config =& acymailing::config(); $queueType = $config->get('queue_type'); if ($queueType == 'onlyauto') { $messages = array(); $messages[] = JText::sprintf('ADDED_QUEUE', $totalSub); $messages[] = JText::_('AUTOSEND_CONFIRMATION'); acymailing::display($messages, 'success'); return; } else { JRequest::setVar('totalsend', $totalSub); $app =& JFactory::getApplication(); $app->redirect(acymailing::completeLink('send&task=continuesend&mailid=' . $mailid . '&totalsend=' . $totalSub, true, true)); exit; } }
function _savelanguage() { jimport('joomla.filesystem.file'); $code = JRequest::getString('code'); JRequest::setVar('code', $code); $content = JRequest::getVar('content', '', '', 'string', JREQUEST_ALLOWRAW); if (empty($code) or empty($content)) { return; } $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini'; $result = JFile::write($path, $content); if ($result) { acymailing::display(JText::_('JOOMEXT_SUCC_SAVED'), 'success'); $js = "window.top.document.getElementById('image{$code}').src = '" . ACYMAILING_LIVE . "images/M_images/edit.png'"; $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); } else { acymailing::display(JText::sprintf('FAIL_SAVE', $path), 'error'); } return $result; }
function process() { acymailing::increasePerf(); $config = acymailing::config(); $bounceClass = acymailing::get('helper.bounce'); $bounceClass->report = true; if (!$bounceClass->init()) { return; } if (!$bounceClass->connect()) { acymailing::display($bounceClass->getErrors(), 'error'); return; } acymailing::display(JText::sprintf('BOUNCE_CONNECT_SUCC', $config->get('bounce_username')), 'success'); $nbMessages = $bounceClass->getNBMessages(); acymailing::display(JText::sprintf('NB_MAIL_MAILBOX', $nbMessages), 'info'); if (empty($nbMessages)) { return; } $bounceClass->handleMessages(); $bounceClass->close(); }
function createTemplateFile($id) { if (file_exists(ACYMAILING_TEMPLATE . 'css' . DS . 'template_' . $id . '.css')) { return ACYMAILING_TEMPLATE . 'css' . DS . 'template_' . $id . '.css'; } $classTemplate = acymailing::get('class.template'); $template = $classTemplate->get($id); if (empty($template->tempid)) { return ''; } $css = $classTemplate->buildCSS($template->styles, $template->stylesheet); if (empty($css)) { return ''; } jimport('joomla.filesystem.file'); acymailing::createDir(ACYMAILING_TEMPLATE . 'css'); if (JFile::write(ACYMAILING_TEMPLATE . 'css' . DS . 'template_' . $id . '.css', $css)) { return ACYMAILING_TEMPLATE . 'css' . DS . 'template_' . $id . '.css'; } else { acymailing::display('Could not create the file ' . ACYMAILING_TEMPLATE . 'css' . DS . 'template_' . $id . '.css', 'error'); return ''; } }
function store() { JRequest::checkToken() or die('Invalid Token'); $oldMailid = acymailing::getCID('mailid'); $mailClass = acymailing::get('class.mail'); if ($mailClass->saveForm()) { $data = JRequest::getVar('data'); $type = @$data['mail']['type']; if (!empty($type) and in_array($type, array('unsub', 'welcome'))) { $subject = addslashes($data['mail']['subject']); $mailid = JRequest::getInt('mailid'); if ($type == 'unsub') { $js = "var mydrop = window.top.document.getElementById('datalistunsubmailid'); "; $js .= "var type = 'unsub';"; } else { //type=welcome $js = "var mydrop = window.top.document.getElementById('datalistwelmailid'); "; $js .= "var type = 'welcome';"; } if (empty($oldMailid)) { $js .= 'var optn = document.createElement("OPTION");'; $js .= "optn.text = '[{$mailid}] {$subject}'; optn.value = '{$mailid}';"; $js .= 'mydrop.options.add(optn);'; $js .= 'lastid = 0; while(mydrop.options[lastid+1]){lastid = lastid+1;} mydrop.selectedIndex = lastid;'; $js .= 'window.top.changeMessage(type,' . $mailid . ');'; } else { $js .= "lastid = 0; notfound = true; while(notfound && mydrop.options[lastid]){if(mydrop.options[lastid].value == {$mailid}){mydrop.options[lastid].text = '[{$mailid}] {$subject}';notfound = false;} lastid = lastid+1;}"; } $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); } acymailing::display(JText::_('JOOMEXT_SUCC_SAVED'), 'success'); } else { acymailing::display(JText::_('ERROR_SAVING'), 'error'); } }
function installExtensions() { $path = ACYMAILING_BACK . 'plugins'; $dirs = JFolder::folders($path); $this->db->setQuery('SELECT max(`id`) FROM `#__plugins`'); $pluginMax = $this->db->loadResult(); $success = array(); $error = array(); ob_start(); foreach ($dirs as $oneDir) { if ($this->_installOne($path . DS . $oneDir)) { $success[] = JText::sprintf('PLUG_INSTALLED', $oneDir); } else { $error[] = JText::sprintf('PLUG_ERROR', $oneDir); } } $data = ob_end_clean(); $plugcompo = array('tagcbuser' => '#__comprofiler', 'tagvmcoupon' => '#__vm_coupons', 'tagvmproduct' => '#__vm_product', 'tagjomsocial' => '#__community_users'); $listTables = $this->db->getTableList(); $excludePlugins = array($this->db->Quote('vmacymailing'), $this->db->Quote('contentplugin')); foreach ($plugcompo as $tagname => $tablename) { if (!in_array(str_replace('#__', $this->db->getPrefix(), $tablename), $listTables)) { $excludePlugins[] = $this->db->Quote($tagname); } } $query = "UPDATE `#__plugins` SET `published` = 1 WHERE `id` > '.{$pluginMax}.' AND (`folder` LIKE '%acymailing%' OR `element` LIKE '%acymailing%')"; $query .= ' AND `element` NOT IN (' . implode(',', $excludePlugins) . ')'; $this->db->setQuery($query); $this->db->query(); $order = array('tagsubscription' => 1, 'tagsubscriber' => 2, 'taguser' => 3, 'tagcbuser' => 4, 'tagjomsocial' => 4, 'tagtime' => 5, 'online' => 6, 'tagvmcoupon' => 7, 'tagvmproduct' => 8, 'tagcontent' => 11, 'tagmodule' => 12, 'contentplugin' => 15, 'template' => 25, 'urltracker' => 30, 'stats' => 50); foreach ($order as $name => $num) { $this->db->setQuery("UPDATE `#__plugins` SET `ordering` = {$num} WHERE `element` = " . $this->db->Quote($name) . " AND `id` > {$pluginMax}"); $this->db->query(); } $path = ACYMAILING_BACK . 'modules'; $dirs = JFolder::folders($path); ob_start(); foreach ($dirs as $oneDir) { if ($this->_installOne($path . DS . $oneDir)) { $success[] = JText::sprintf('MODULE_INSTALLED', $oneDir); } else { $error[] = JText::sprintf('MODULE_ERROR', $oneDir); } } $data = ob_end_clean(); if (!empty($success)) { acymailing::display('<ul><li>' . implode('</li><li>', $success) . '</li></ul>', 'success'); } if (!empty($error)) { acymailing::display('<ul><li>' . implode('</li><li>', $error) . '</li></ul>', 'error'); } else { $app =& JFactory::getApplication(); $app->_messageQueue = array(); } }
function optout() { acymailing::checkRobots(); $config = acymailing::config(); $app =& JFactory::getApplication(); $userClass = acymailing::get('class.subscriber'); $my =& JFactory::getUser(); $redirectUrl = urldecode(JRequest::getString('redirectunsub')); if (!empty($redirectUrl)) { $this->setRedirect($redirectUrl); } $formData = JRequest::getVar('user', array(), '', 'array'); $email = trim(strip_tags($formData['email'])); if (empty($email)) { if (!empty($my->email)) { $email = $my->email; } } $userHelper = acymailing::get('helper.user'); if (empty($email) || !$userHelper->validEmail($email)) { echo "<script>alert('" . JText::_('VALID_EMAIL', true) . "'); window.history.go(-1);</script>"; exit; } $alreadyExists = $userClass->get($email); if (empty($alreadyExists->subid)) { if (empty($redirectUrl)) { acymailing::display(JText::sprintf('NOT_IN_LIST', $email), 'warning'); } else { $app->enqueueMessage(JText::sprintf('NOT_IN_LIST', $email), 'notice'); } return $this->_closepop($redirectUrl); } if ($config->get('allow_modif', 'data') == 'none' and empty($my->email) || $my->email != $email) { $mailClass = acymailing::get('helper.mailer'); $mailClass->checkConfirmField = false; $mailClass->checkEnabled = false; $mailClass->report = false; $mailClass->sendOne('modif', $alreadyExists->subid); if (empty($redirectUrl)) { acymailing::display(JText::_('IDENTIFICATION_SENT'), 'warning'); } else { $app->enqueueMessage(JText::_('IDENTIFICATION_SENT'), 'notice'); } return $this->_closepop($redirectUrl); } $visibleSubscription = JRequest::getVar('subscription', '', '', 'array'); $currentSubscription = $userClass->getSubscriptionStatus($alreadyExists->subid); $hiddenSubscription = explode(',', JRequest::getVar('hiddenlists', '', '', 'string')); $updatelists = array(); $removeSubscription = array_merge($visibleSubscription, $hiddenSubscription); foreach ($removeSubscription as $idList) { if (!empty($currentSubscription[$idList]) and $currentSubscription[$idList]->status != '-1') { $updatelists[-1][] = $idList; } } if (!empty($updatelists)) { $listsubClass = acymailing::get('class.listsub'); $listsubClass->updateSubscription($alreadyExists->subid, $updatelists); if ($config->get('unsubscription_message', 1)) { if (empty($redirectUrl)) { acymailing::display(JText::_('UNSUBSCRIPTION_OK'), 'info'); } else { $app->enqueueMessage(JText::_('UNSUBSCRIPTION_OK')); } } } elseif ($config->get('unsubscription_message', 1)) { if (empty($redirectUrl)) { acymailing::display(JText::_('UNSUBSCRIPTION_NOT_IN_LIST'), 'info'); } else { $app->enqueueMessage(JText::_('UNSUBSCRIPTION_NOT_IN_LIST')); } } return $this->_closepop($redirectUrl); }
function _ifstatement(&$email, $user) { if (isset($this->foundtags[$email->mailid])) { return; } $match = '#{if:(.*)}(.*){/if}#Uis'; $variables = array('subject', 'body', 'altbody'); $found = false; foreach ($variables as $var) { if (empty($email->{$var})) { continue; } $found = preg_match_all($match, $email->{$var}, $results[$var]) || $found; if (empty($results[$var][0])) { unset($results[$var]); } } if (!$found) { $this->foundtags[$email->mailid] = false; return; } $app =& JFactory::getApplication(); $tags = array(); foreach ($results as $var => $allresults) { foreach ($allresults[0] as $i => $oneTag) { if (isset($tags[$oneTag])) { continue; } if (!preg_match('#^([^=!<>~]+)(=|!=|<|>|>|<|~)([^=!<>~]+)$#i', $allresults[1][$i], $operators)) { if ($app->isAdmin()) { acymailing::display('Operation not found : ' . $allresults[1][$i], 'error'); } $tags[$oneTag] = $allresults[2][$i]; continue; } $operators[1] = trim($operators[1]); if (!isset($user->{$operators[1]})) { if ($app->isAdmin()) { acymailing::display('User variable not set : ' . $operators[1] . ' in ' . $allresults[1][$i], 'error'); } $tags[$oneTag] = $allresults[2][$i]; continue; } $tags[$oneTag] = ''; $prop = strtolower($user->{$operators[1]}); $val = trim(strtolower($operators[3])); if ($operators[2] == '=' and $prop == $val) { $tags[$oneTag] = $allresults[2][$i]; } elseif ($operators[2] == '!=' and $prop != $val) { $tags[$oneTag] = $allresults[2][$i]; } elseif ($operators[2] == '>' || $operators[2] == '>' and $prop > $val) { $tags[$oneTag] = $allresults[2][$i]; } elseif ($operators[2] == '<' || $operators[2] == '<' and $prop < $val) { $tags[$oneTag] = $allresults[2][$i]; } elseif ($operators[2] == '~' and strpos($prop, $val) !== false) { $tags[$oneTag] = $allresults[2][$i]; } } } foreach ($results as $var => $allresults) { $email->{$var} = str_replace(array_keys($tags), $tags, $email->{$var}); } }
function doupload() { if (!$this->isAllowed($this->aclCat, 'manage')) { return; } JRequest::checkToken() or jexit('Invalid Token'); $importFile = JRequest::getVar('uploadedfile', '', 'files'); if (empty($importFile['name'])) { acymailing::display(JText::_('BROWSE_FILE'), 'error'); return $this->upload(); } jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); jimport('joomla.filesystem.archive'); jimport('joomla.filesystem.path'); $config =& acymailing::config(); $uploadPath = JPath::clean(ACYMAILING_ROOT . 'media' . DS . ACYMAILING_COMPONENT . DS . 'templates'); if (!is_writable($uploadPath)) { @chmod($uploadPath, '0755'); if (!is_writable($uploadPath)) { acymailing::display(JText::sprintf('WRITABLE_FOLDER', $uploadPath), 'warning'); } } if (!(bool) ini_get('file_uploads')) { acymailing::display('Can not upload the file, please make sure file_uploads is enabled on your php.ini file', 'error'); return $this->upload(); } if (!extension_loaded('zlib')) { JError::raiseWarning('SOME_ERROR_CODE', JText::_('WARNINSTALLZLIB')); return $this->upload(); } $filename = strtolower(JFile::makeSafe($importFile['name'])); $extension = strtolower(substr($filename, strrpos($filename, '.') + 1)); if (!in_array($extension, array('zip', 'tar.gz'))) { acymailing::display(JText::sprintf('ACCEPTED_TYPE', $extension, 'zip,tar.gz'), 'error'); return $this->upload(); } $joomconfig =& JFactory::getConfig(); $tmp_dest = JPath::clean($joomconfig->getValue('config.tmp_path') . DS . $filename); $tmp_src = $importFile['tmp_name']; $uploaded = JFile::upload($tmp_src, $tmp_dest); if (!$uploaded) { acymailing::display('Error uploading the file from ' . $tmp_src . ' to ' . $tmp_dest, 'error'); return $this->upload(); } $tmpdir = uniqid() . '_template'; $extractdir = JPath::clean(dirname($tmp_dest) . DS . $tmpdir); $result = JArchive::extract($tmp_dest, $extractdir); JFile::delete($tmp_dest); if (!$result) { acymailing::display('Error extracting the file ' . $tmp_dest . ' to ' . $extractdir, 'error'); return $this->upload(); } $templateClass = acymailing::get('class.template'); if ($templateClass->detecttemplates($extractdir)) { $messages = $templateClass->templateNames; array_unshift($messages, JText::sprintf('TEMPLATES_INSTALL', count($templateClass->templateNames))); acymailing::display($messages, 'success'); if (is_dir($extractdir)) { JFolder::delete($extractdir); } $js = "setTimeout('redirect()',2000); function redirect(){window.top.location.href = 'index.php?option=com_acymailing&ctrl=template'; }"; $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); return; } acymailing::display('Error installing template', 'error'); if (is_dir($extractdir)) { JFolder::delete($extractdir); } return $this->upload(); }
function installtemplate($filepath) { $fileContent = file_get_contents($filepath); $newTemplate = null; $newTemplate->name = trim(preg_replace('#[^a-z0-9]#i', ' ', substr(dirname($filepath), strpos($filepath, '_template')))); if (preg_match('#< *title[^>]*>(.*)< */ *title *>#Uis', $fileContent, $results)) { $newTemplate->name = $results[1]; } $newFolder = preg_replace('#[^a-z0-9]#i', '_', strtolower($newTemplate->name)); $newTemplateFolder = $newFolder; $i = 1; while (is_dir(ACYMAILING_TEMPLATE . $newTemplateFolder)) { $newTemplateFolder = $newFolder . '_' . $i; $i++; } $newTemplate->namekey = rand(0, 10000) . $newTemplateFolder; $moveResult = JFolder::move(dirname($filepath), ACYMAILING_TEMPLATE . $newTemplateFolder); if ($moveResult !== true) { acymailing::display(array('Error moving folder from ' . dirname($filepath) . ' to ' . ACYMAILING_TEMPLATE . $newTemplateFolder, $moveResult), 'error'); return false; } if (!file_exists(ACYMAILING_TEMPLATE . $newTemplateFolder . DS . 'index.html')) { $indexFile = '<html><body bgcolor="#FFFFFF"></body></html>'; JFile::write(ACYMAILING_TEMPLATE . $newTemplateFolder . DS . 'index.html', $indexFile); } $fileContent = preg_replace('#(src|background)[ ]*=[ ]*\\"(?!(https?://|/))(?:\\.\\./|\\./)?#', '$1="media/com_acymailing/templates/' . $newTemplateFolder . '/', $fileContent); if (preg_match('#< *body[^>]*>(.*)< */ *body *>#Uis', $fileContent, $results)) { $newTemplate->body = $results[1]; } else { $newTemplate->body = $fileContent; } if (preg_match('#< *style[^>]*>(.*)< */ *style *>#Uis', $fileContent, $results)) { $newTemplate->stylesheet = preg_replace('#(<!--|-->)#s', '', $results[1]); if (preg_match('#body *\\{[^\\}]*background-color:([^;]*);#Uis', $newTemplate->stylesheet, $backgroundresults)) { $newTemplate->styles['color_bg'] = trim($backgroundresults[1]); $newTemplate->stylesheet = preg_replace('#(body *\\{[^\\}]*)background-color:[^;]*;#Uis', '$1', $newTemplate->stylesheet); } $quickstyle = array('tag_h1' => 'h1', 'tag_h2' => 'h2', 'tag_h3' => 'h3', 'tag_h4' => 'h4', 'tag_h5' => 'h5', 'tag_h6' => 'h6', 'tag_a' => 'a', 'tag_ul' => 'ul', 'tag_li' => 'li', 'acymailing_unsub' => '\\.acymailing_unsub', 'acymailing_online' => '\\.acymailing_online', 'acymailing_title' => '\\.acymailing_title', 'acymailing_content' => '\\.acymailing_content', 'acymailing_readmore' => '\\.acymailing_readmore'); foreach ($quickstyle as $styledb => $oneStyle) { if (preg_match('#' . $oneStyle . ' *{([^}]*)}#Uis', $newTemplate->stylesheet, $quickstyleresults)) { $newTemplate->styles[$styledb] = trim(str_replace(array("\n", "\r", "\t", "\\s"), ' ', $quickstyleresults[1])); $newTemplate->stylesheet = preg_replace('#' . $oneStyle . ' *{[^}]*}#Uis', '', $newTemplate->stylesheet); } } } if (!empty($newTemplate->styles['color_bg'])) { $pat1 = '#^([^<]*<[^>]*background-color:)([^;">]{1,10})#i'; $found = false; if (preg_match($pat1, $newTemplate->body)) { $newTemplate->body = preg_replace($pat1, '$1' . $newTemplate->styles['color_bg'], $newTemplate->body); $found = true; } $pat2 = '#^([^<]*<[^>]*bgcolor=")([^;">]{1,10})#i'; if (preg_match($pat2, $newTemplate->body)) { $newTemplate->body = preg_replace($pat2, '$1' . $newTemplate->styles['color_bg'], $newTemplate->body); $found = true; } if (!$found) { $newTemplate->body = '<div style="background-color:' . $newTemplate->styles['color_bg'] . ';" width="100%">' . $newTemplate->body . '</div>'; } } $allFiles = JFolder::files(ACYMAILING_TEMPLATE . $newTemplateFolder); $thumbnail = ''; $acypict = acymailing::get('helper.acypict'); $acypict->maxHeight = 190; $acypict->maxWidth = 170; foreach ($allFiles as $oneFile) { if (preg_match('#(thumbnail|screenshot|muestra)#i', $oneFile)) { if ($acypict->available()) { $newPict = $acypict->generateThumbnail(ACYMAILING_TEMPLATE . $newTemplateFolder . DS . $oneFile); if ($newPict) { $oneFile = basename($newPict['file']); } } $newTemplate->description = '<img src="media/com_acymailing/templates/' . $newTemplateFolder . '/' . $oneFile . '" />'; break; } } static $order = 0; if (empty($order)) { $this->database->setQuery('SELECT MAX(ordering) FROM `#__acymailing_template`'); $order = $this->database->loadResult(); } $order++; $newTemplate->ordering = $order; $this->save($newTemplate); $this->templateNames[] = $newTemplate->name; return true; }
$messages[] = 'Please make sure you use at least PHP 5.0.0'; } if (!class_exists('DOMDocument')) { $messages[] = 'DOMDocument class not found'; } else { $xmldoc = @new DOMDocument(); if (!is_object($xmldoc) || !method_exists($xmldoc, 'loadHTML')) { $messages[] = 'Please make sure that php_domxml.dll on windows is removed before using the domdocument class as they cannot coexist.'; } } if (!function_exists('mb_convert_encoding')) { $messages[] = 'The php extension mbstring is not installed'; } if (!empty($messages)) { $messages[] = 'The stylesheet can not be used'; acymailing::display($messages, 'warning'); } else { ?> <textarea name="data[template][stylesheet]" style="width:100%" rows="25"><?php echo @$this->template->stylesheet; ?> </textarea> <?php } echo $this->tabs->endPanel(); echo $this->tabs->endPane(); ?> </td> </tr> </table> <fieldset class="adminform" width="100%">
function isAllowed($cat, $action) { if (acymailing::level(3)) { $config = acymailing::config(); if (!acymailing::isAllowed($config->get('acl_' . $cat . '_' . $action, 'all'))) { acymailing::display(JText::_('ACY_NOTALLOWED'), 'error'); return false; } } return true; }
function addli() { $li = JRequest::getString('li'); $updateClass = acymailing::get('helper.update'); if (empty($li) or !$updateClass->saveL($li)) { acymailing::display(JText::sprintf('ERROR_SAVING_LICENSE', '<textarea>' . $li . '</textarea>'), 'error'); acymailing::display(JText::sprintf('CONTACT', '<a href="mailto:license@acyba.com" target="_blank">license@acyba.com</a>'), 'error'); } else { if ($updateClass->check()) { acymailing::display(JText::_('SUCC_LICENSE'), 'success'); } else { acymailing::display(JText::_('ERROR_LICENSE'), 'error'); acymailing::display(JText::sprintf('CONTACT', '<a href="mailto:license@acyba.com" target="_blank">license@acyba.com</a>'), 'error'); } } }
<?php if (!empty($this->values->alreadySent)) { acymailing::display(JText::sprintf('ALREADY_SENT', $this->values->alreadySent) . '<br/>' . JText::_('REMOVE_ALREADY_SENT') . '<br/>' . JHTML::_('select.booleanlist', "onlynew", '', 1, JText::_('JOOMEXT_YES'), JText::_('SEND_TO_ALL')), 'warning'); } elseif ($displayWarning) { $config = acymailing::config(); if ($config->get('warninglimitation', 1)) { $toggleClass = acymailing::get('helper.toggle'); $notremind = '<small style="float:right;margin-right:30px;position:relative;">' . $toggleClass->delete('acymailing_messages_warning', 'warninglimitation_0', 'config', false, JText::_('DONT_REMIND')) . '</small>'; acymailing::display(JText::_('WARNING_LIMITATION') . '<br /><a target="_blank" href="' . ACYMAILING_HELPURL . 'send-process">' . JText::_('WARNING_LIMITATION_CONFIG') . '</a>' . $notremind, 'warning'); } } } else { acymailing::display(JText::_('EMAIL_AFFECT'), 'warning'); } } else { acymailing::display(JText::sprintf('NB_PENDING_EMAIL', $this->values->nbqueue, $this->mail->subject) . '<br/>' . JText::_('SEND_CONTINUE'), 'info'); ?> <input type="hidden" name="totalsend" value="<?php echo $this->values->nbqueue; ?> " /> <?php } ?> <?php if (!empty($this->mail->mailid) and (!empty($this->lists) or !empty($this->values->nbqueue))) { ?> <input type="submit" value="<?php echo empty($this->values->nbqueue) ? JText::_('SEND') : JText::_('CONTINUE'); ?> ">
function cleanreport() { jimport('joomla.filesystem.file'); $config = acymailing::config(); $reportPath = JPath::clean(ACYMAILING_ROOT . trim(html_entity_decode($config->get('cron_savepath')))); if (is_file($reportPath)) { $result = JFile::delete($reportPath); if ($result) { acymailing::display(JText::_('SUCC_DELETE_LOG'), 'success'); } else { acymailing::display(JText::_('ERROR_DELETE_LOG'), 'error'); } } else { acymailing::display(JText::_('EXIST_LOG'), 'info'); } }
<?php /** * @copyright Copyright (C) 2009-2010 ACYBA SARL - All rights reserved. * @license http://www.acyba.com/commercial_license.php */ defined('_JEXEC') or die('Restricted access'); ?> <?php acymailing::display(JText::sprintf('QUEUE_STATUS', acymailing::getDate(time())), 'info'); ?> <form action="index.php?tmpl=component&option=<?php echo ACYMAILING_COMPONENT; ?> " method="post" name="adminForm" autocomplete="off"> <div> <?php if (!empty($this->queue)) { ?> <fieldset class="adminform"> <legend><?php echo JText::_('QUEUE_READY'); ?> </legend> <table class="adminlist" cellspacing="1" align="center"> <tbody> <?php $k = 0;
function scheduleone() { $mailid = JRequest::getInt('mailid'); $subid = JRequest::getInt('subid'); $senddate = JRequest::getString('senddate', ''); JRequest::checkToken() && !empty($mailid) && !empty($subid) or die('Invalid Token'); $realSendDate = acymailing::getTime($senddate); if ($realSendDate < time()) { acymailing::display(JText::_('DATE_FUTURE'), 'warning'); return $this->addqueue(); } $mailClass = acymailing::get('class.mail'); $myNewsletter = $mailClass->get($mailid); $queueEntry = null; $queueEntry->mailid = $myNewsletter->mailid; $queueEntry->subid = $subid; $queueEntry->senddate = $realSendDate; $queueEntry->priority = 1; $db =& JFactory::getDBO(); $status = $db->insertObject('#__acymailing_queue', $queueEntry); if ($status) { acymailing::display(JText::sprintf('AUTOSEND_DATE', $myNewsletter->subject, acymailing::getDate($realSendDate)), 'success'); } }
function onTestPlugin() { $config =& acymailing::config(); $itemid = $config->get('itemid'); $item = empty($itemid) ? '' : '&Itemid=' . $itemid; @ini_set('default_socket_timeout', 10); @ini_set('user_agent', 'My-Application/2.5'); @ini_set('allow_url_fopen', '1'); $loc = ACYMAILING_LIVE . 'index.php?option=com_acymailing&tmpl=component&ctrl=moduleloader&time=' . time() . $item; if (function_exists('curl_init') and ($this->params->get('getmethod') == 'curl' or !ini_get('allow_url_fopen'))) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $loc); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $result = curl_exec($ch); curl_close($ch); acymailing::display('Using CURL method', 'info'); if ($result) { acymailing::display($result, 'success'); } else { acymailing::display($result, 'error'); } } else { acymailing::display('Using File_get_contents function', 'info'); $result = file_get_contents($loc); if ($result) { acymailing::display($result, 'success'); } else { acymailing::display('Error. Please make sure the function file_get_contents is enabled on your website', 'error'); if (function_exists('curl_init')) { acymailing::display('The cURL function is apparently enabled on your server so you should select the cURL option', 'info'); } } } }
</td> </tr> <tr> <td> </td> <td> <button type="submit"><?php echo JText::_('SCHEDULE'); ?> </button> </td> </tr> </table> <?php } else { echo acymailing::display(JText::_('EMAIL_AFFECT'), 'warning'); } ?> </div> <div class="clr"></div> <input type="hidden" name="cid[]" value="<?php echo $this->mail->mailid; ?> " /> <input type="hidden" name="option" value="<?php echo ACYMAILING_COMPONENT; ?> " /> <input type="hidden" name="task" value="schedule" /> <input type="hidden" name="ctrl" value="send" /> <?php
function installExtensions() { $path = ACYMAILING_BACK . 'extensions'; $dirs = JFolder::folders($path); if (version_compare(JVERSION, '1.6.0') < '') { $query = "SELECT CONCAT(`folder`,`element`) FROM #__plugins WHERE `folder` = 'acymailing' OR `element` LIKE '%acymailing%'"; $query .= " UNION SELECT `module` FROM #__modules WHERE `module` LIKE '%acymailing%'"; $this->db->setQuery($query); $existingExtensions = $this->db->loadResultArray(); } else { $this->db->setQuery("SELECT CONCAT(`folder`,`element`) FROM #__extensions WHERE `folder` = 'acymailing' OR `element` LIKE '%acymailing%'"); $existingExtensions = $this->db->loadResultArray(); } $plugins = array(); $modules = array(); $extensioninfo = array(); //array('name','ordering','required table or published') $extensioninfo['mod_acymailing'] = array('AcyMailing Module'); $extensioninfo['plg_acymailing_share'] = array('AcyMailing : share on social networks', 20, 1); $extensioninfo['plg_acymailing_contentplugin'] = array('AcyMailing : trigger Joomla Content plugins', 15, 0); $extensioninfo['plg_acymailing_managetext'] = array('AcyMailing Manage text', 10, 1); $extensioninfo['plg_acymailing_tablecontents'] = array('AcyMailing table of contents generator', 5, 1); $extensioninfo['plg_acymailing_online'] = array('AcyMailing Tag : Website links', 6, 1); $extensioninfo['plg_acymailing_stats'] = array('AcyMailing : Statistics Plugin', 50, 1); $extensioninfo['plg_acymailing_tagcbuser'] = array('AcyMailing Tag : CB User information', 4, '#__comprofiler'); $extensioninfo['plg_acymailing_tagcontent'] = array('AcyMailing Tag : content insertion', 11, 1); $extensioninfo['plg_acymailing_tagjomsocial'] = array('AcyMailing Tag : JomSocial User Fields', 4, '#__community_users'); $extensioninfo['plg_acymailing_tagmodule'] = array('AcyMailing Tag : Insert a Module', 12, 1); $extensioninfo['plg_acymailing_tagsubscriber'] = array('AcyMailing Tag : Subscriber information', 2, 1); $extensioninfo['plg_acymailing_tagsubscription'] = array('AcyMailing Tag : Manage the Subscription', 1, 1); $extensioninfo['plg_acymailing_tagtime'] = array('AcyMailing Tag : Date / Time', 5, 1); $extensioninfo['plg_acymailing_taguser'] = array('AcyMailing Tag : Joomla User Information', 3, 1); $extensioninfo['plg_acymailing_tagvmcoupon'] = array('AcyMailing Tag : VirtueMart personnal coupons', 7, '#__vm_coupons'); $extensioninfo['plg_acymailing_tagvmproduct'] = array('AcyMailing Tag : insert VirtueMart products', 8, '#__vm_product'); $extensioninfo['plg_acymailing_template'] = array('AcyMailing Template Class Replacer', 25, 1); $extensioninfo['plg_acymailing_urltracker'] = array('AcyMailing : Handle Click tracking', 30, 1); $extensioninfo['plg_system_regacymailing'] = array('AcyMailing : (auto)Subscribe during Joomla registration', 0, 1); $extensioninfo['plg_system_vmacymailing'] = array('AcyMailing : VirtueMart checkout subscription', 0, 0); $listTables = $this->db->getTableList(); foreach ($dirs as $oneDir) { $arguments = explode('_', $oneDir); if ($arguments[0] == 'plg') { $newPlugin = null; $newPlugin->name = $oneDir; if (isset($extensioninfo[$oneDir][0])) { $newPlugin->name = $extensioninfo[$oneDir][0]; } $newPlugin->type = 'plugin'; $newPlugin->folder = $arguments[1]; $newPlugin->element = $arguments[2]; $newPlugin->enabled = 1; if (isset($extensioninfo[$oneDir][2])) { if (is_numeric($extensioninfo[$oneDir][2])) { $newPlugin->enabled = $extensioninfo[$oneDir][2]; } elseif (!in_array(str_replace('#__', $this->db->getPrefix(), $extensioninfo[$oneDir][2]), $listTables)) { $newPlugin->enabled = 0; } } $newPlugin->params = '{}'; $newPlugin->ordering = 0; if (isset($extensioninfo[$oneDir][1])) { $newPlugin->ordering = $extensioninfo[$oneDir][1]; } if (!acymailing::createDir(ACYMAILING_ROOT . 'plugins' . DS . $newPlugin->folder)) { continue; } if (version_compare(JVERSION, '1.6.0', '<')) { $destinationFolder = ACYMAILING_ROOT . 'plugins' . DS . $newPlugin->folder; } else { $destinationFolder = ACYMAILING_ROOT . 'plugins' . DS . $newPlugin->folder . DS . $newPlugin->element; if (!acymailing::createDir($destinationFolder)) { continue; } } if (!$this->copyFolder($path . DS . $oneDir, $destinationFolder)) { continue; } if (in_array($newPlugin->folder . $newPlugin->element, $existingExtensions)) { continue; } $plugins[] = $newPlugin; } elseif ($arguments[0] == 'mod') { $newModule = null; $newModule->name = $oneDir; if (isset($extensioninfo[$oneDir][0])) { $newModule->name = $extensioninfo[$oneDir][0]; } $newModule->type = 'module'; $newModule->folder = ''; $newModule->element = $oneDir; $newModule->enabled = 1; $newModule->params = '{}'; $newModule->ordering = 0; if (isset($extensioninfo[$oneDir][1])) { $newModule->ordering = $extensioninfo[$oneDir][1]; } $destinationFolder = ACYMAILING_ROOT . 'modules' . DS . $oneDir; if (!acymailing::createDir($destinationFolder)) { continue; } if (!$this->copyFolder($path . DS . $oneDir, $destinationFolder)) { continue; } if (in_array($newModule->element, $existingExtensions)) { continue; } $modules[] = $newModule; } else { acymailing::display('Could not handle : ' . $oneDir, 'error'); } } if (!empty($this->errors)) { acymailing::display($this->errors, 'error'); } if (version_compare(JVERSION, '1.6.0', '<')) { $extensions = $plugins; } else { $extensions = array_merge($plugins, $modules); } $success = array(); if (!empty($extensions)) { if (version_compare(JVERSION, '1.6.0', '<')) { $queryExtensions = 'INSERT INTO `#__plugins` (`name`,`element`,`folder`,`published`,`ordering`) VALUES '; } else { $queryExtensions = 'INSERT INTO `#__extensions` (`name`,`element`,`folder`,`enabled`,`ordering`,`type`) VALUES '; } foreach ($extensions as $oneExt) { $queryExtensions .= '(' . $this->db->Quote($oneExt->name) . ',' . $this->db->Quote($oneExt->element) . ',' . $this->db->Quote($oneExt->folder) . ',' . $oneExt->enabled . ',' . $oneExt->ordering; if (version_compare(JVERSION, '1.6.0', '>=')) { $queryExtensions .= ',' . $this->db->Quote($oneExt->type); } $queryExtensions .= '),'; if ($oneExt->type != 'module') { $success[] = JText::sprintf('PLUG_INSTALLED', $oneExt->name); } } $queryExtensions = trim($queryExtensions, ','); $this->db->setQuery($queryExtensions); $this->db->query(); } if (!empty($modules)) { foreach ($modules as $oneModule) { if (version_compare(JVERSION, '1.6.0', '<')) { $queryModule = 'INSERT INTO `#__modules` (`title`,`position`,`published`,`module`) VALUES '; $queryModule .= '(' . $this->db->Quote($oneModule->name) . ",'left',0," . $this->db->Quote($oneModule->element) . ")"; } else { $queryModule = 'INSERT INTO `#__modules` (`title`,`position`,`published`,`module`,`access`,`language`) VALUES '; $queryModule .= '(' . $this->db->Quote($oneModule->name) . ",'position-7',0," . $this->db->Quote($oneModule->element) . ",1,'*')"; } $this->db->setQuery($queryModule); $this->db->query(); $moduleId = $this->db->insertid(); $this->db->setQuery('INSERT IGNORE INTO `#__modules_menu` (`moduleid`,`menuid`) VALUES (' . $moduleId . ',0)'); $this->db->query(); $success[] = JText::sprintf('MODULE_INSTALLED', $oneModule->name); } } if (!empty($success)) { acymailing::display($success, 'success'); } }
function display($tpl = null) { JHTML::_('behavior.modal', 'a.modal'); $config = acymailing::config(); $db =& JFactory::getDBO(); acymailing::setTitle(JText::_('CONFIGURATION'), 'config', 'config'); $bar =& JToolBar::getInstance('toolbar'); if (acymailing::level(3)) { $bar->appendButton('Link', 'fields', JText::_('EXTRA_FIELDS'), acymailing::completeLink('fields')); JToolBarHelper::custom('bounce', 'process', '', JText::_('BOUNCE_PROCESS'), false); } JToolBarHelper::custom('test', 'send', '', JText::_('SEND_TEST'), false); JToolBarHelper::divider(); JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel('cancel', JText::_('CLOSE')); JToolBarHelper::divider(); $bar->appendButton('Pophelp', 'config'); $bar->appendButton('Link', 'acymailing', JText::_('JOOMEXT_CPANEL'), acymailing::completeLink('dashboard')); $elements = null; $elements->add_names = JHTML::_('select.booleanlist', "config[add_names]", '', $config->get('add_names', true)); $elements->embed_images = JHTML::_('select.booleanlist', "config[embed_images]", '', $config->get('embed_images', 0)); $elements->embed_files = JHTML::_('select.booleanlist', "config[embed_files]", '', $config->get('embed_files', 1)); $elements->multiple_part = JHTML::_('select.booleanlist', "config[multiple_part]", '', $config->get('multiple_part', 0)); $mailerMethod = acymailing::get('type.mailermethod'); $elements->mailer_method = $mailerMethod->display("config[mailer_method]", $config->get('mailer_method', 'phpmail')); $encoding = acymailing::get('type.encoding'); $elements->encoding_format = $encoding->display("config[encoding_format]", $config->get('encoding_format', 'base64')); $charset = acymailing::get('type.charset'); $elements->charset = $charset->display("config[charset]", $config->get('charset', 'UTF-8')); $secured = acymailing::get('type.secured'); $elements->smtp_secured = $secured->display("config[smtp_secured]", $config->get('smtp_secured')); $elements->smtp_auth = JHTML::_('select.booleanlist', "config[smtp_auth]", '', $config->get('smtp_auth', 0)); $elements->smtp_keepalive = JHTML::_('select.booleanlist', "config[smtp_keepalive]", '', $config->get('smtp_keepalive', 1)); $queueType = acymailing::get('type.queuetype'); $elements->queue_type = $queueType->display("config[queue_type]", $config->get('queue_type', 'auto')); $elements->allow_visitor = JHTML::_('select.booleanlist', "config[allow_visitor]", '', $config->get('allow_visitor', 1)); $editorType = acymailing::get('type.editor'); $elements->editor = $editorType->display('config[editor]', $config->get('editor')); $elements->subscription_message = JHTML::_('select.booleanlist', "config[subscription_message]", '', $config->get('subscription_message', 1)); $elements->confirmation_message = JHTML::_('select.booleanlist', "config[confirmation_message]", '', $config->get('confirmation_message', 1)); $elements->unsubscription_message = JHTML::_('select.booleanlist', "config[unsubscription_message]", '', $config->get('unsubscription_message', 1)); $elements->welcome_message = JHTML::_('select.booleanlist', "config[welcome_message]", '', $config->get('welcome_message', 1)); $elements->unsub_message = JHTML::_('select.booleanlist', "config[unsub_message]", '', $config->get('unsub_message', 1)); $elements->confirm_message = JHTML::_('select.booleanlist', "config[confirm_message]", '', $config->get('confirm_message', 0)); if (acymailing::level(1)) { $elements->show_footer = JHTML::_('select.booleanlist', "config[show_footer]", '', $config->get('show_footer', 1)); $elements->forward = JHTML::_('select.booleanlist', "config[forward]", '', $config->get('forward', false)); } else { $elements->show_footer = '<small style="color:red">' . JText::_('ONLY_FROM_ESSENTIAL') . '</small>'; $elements->forward = '<small style="color:red">' . JText::_('ONLY_FROM_ESSENTIAL') . '</small>'; } $cssFiles = acymailing::get('type.css'); $cssFiles->type = 'component'; $elements->css_frontend = $cssFiles->display('config[css_frontend]', $config->get('css_frontend', 'default')); $cssFiles->type = 'module'; $elements->css_module = $cssFiles->display('config[css_module]', $config->get('css_module', 'default')); $cssFiles->type = 'component'; $elements->css_backend = $cssFiles->display('config[css_backend]', $config->get('css_backend', 'default')); $elements->colortype = acymailing::get('type.color'); $elements->use_sef = JHTML::_('select.booleanlist', "config[use_sef]", '', $config->get('use_sef', 0)); $query = 'SELECT a.name, a.id as itemid, b.title FROM `#__menu` as a LEFT JOIN `#__menu_types` as b on a.menutype = b.menutype WHERE a.access = 0 ORDER BY b.title ASC,a.ordering ASC'; $db->setQuery($query); $joomMenus = $db->loadObjectList(); $menuvalues = array(); $menuvalues[] = JHTML::_('select.option', '0', JText::_('NONE')); $lastGroup = ''; foreach ($joomMenus as $oneMenu) { if ($oneMenu->title != $lastGroup) { if (!empty($lastGroup)) { $menuvalues[] = JHTML::_('select.option', '</OPTGROUP>'); } $menuvalues[] = JHTML::_('select.option', '<OPTGROUP>', $oneMenu->title); $lastGroup = $oneMenu->title; } $menuvalues[] = JHTML::_('select.option', $oneMenu->itemid, $oneMenu->name); } $elements->acymailing_menu = JHTML::_('select.genericlist', $menuvalues, 'config[itemid]', 'size="1"', 'value', 'text', $config->get('itemid')); if (acymailing::level(1)) { $cronTypeReport = acymailing::get('type.cronreport'); $elements->cron_sendreport = $cronTypeReport->display('config[cron_sendreport]', $config->get('cron_sendreport', 2)); $cronTypeReportSave = acymailing::get('type.cronreportsave'); $elements->cron_savereport = $cronTypeReportSave->display('config[cron_savereport]', $config->get('cron_savereport', 0)); $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=config&task=cleanreport'; $elements->deleteReport = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 400, y: 100}}"><button onclick="return false">' . JText::_('REPORT_DELETE') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=config&task=seereport'; $elements->seeReport = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('REPORT_SEE') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=report'; $elements->editReportEmail = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('REPORT_EDIT') . '</button></a>'; $delayType = acymailing::get('type.delay'); $elements->cron_frequency = $delayType->display('config[cron_frequency]', $config->get('cron_frequency', 0), 0); $elements->cron_url = ACYMAILING_LIVE . 'index.php?option=com_acymailing&ctrl=cron'; $item = $config->get('itemid'); if (!empty($item)) { $elements->cron_url .= '&Itemid=' . $item; } $informations = null; $informations->version = $config->get('version'); $informations->level = $config->get('level'); $informations->website = str_replace('~', 'tildsymb', ACYMAILING_LIVE); $informations->component = 'acymailing'; $informations->cronurl = str_replace('~', 'tildsymb', $elements->cron_url); $infos = urlencode(base64_encode(serialize($informations))); $urlCron = 'http://www.acyba.com/index.php?option=com_doc>ask=launcher&task=edit&infos=' . $infos; $elements->cron_edit = '<a class="modal" href="' . $urlCron . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('CREATE_CRON') . '</button></a>'; } $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=confirmation'; $elements->editConfEmail = '<a class="modal" id="confirmemail" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_CONF_MAIL') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=notification_created'; $elements->edit_notification_created = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=notification_refuse'; $elements->edit_notification_refuse = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=notification_unsuball'; $elements->edit_notification_unsuball = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=notification_unsub'; $elements->edit_notification_unsub = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>'; $link = 'index.php?option=com_acymailing&tmpl=component&ctrl=email&task=edit&mailid=modif'; $elements->editModifEmail = '<a class="modal" id="modifemail" href="' . $link . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><button onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>'; if (acymailing::level(3)) { $elements->bounce = JHTML::_('select.booleanlist', "config[bounce]", '', $config->get('bounce', 0)); $connectionType = acymailing::get('type.connection'); $elements->bounce_connection = $connectionType->display('config[bounce_connection]', $config->get('bounce_connection', 'imap')); $elements->bounce_secured = $secured->display("config[bounce_secured]", $config->get('bounce_secured')); $elements->bounce_certif = JHTML::_('select.booleanlist', "config[bounce_certif]", '', $config->get('bounce_certif', 0)); $this->assignRef('emailaction', acymailing::get('type.emailaction')); $js = "function updateConfirmation(newvalue){"; $js .= "if(newvalue == 0) {window.document.getElementById('confirmemail').style.display = 'none'; window.document.getElementById('confirm_redirect').disabled = true;}else{window.document.getElementById('confirmemail').style.display = 'inline'; window.document.getElementById('confirm_redirect').disabled = false;}"; $js .= '}'; $js .= "function displayBounceFrequency(newvalue){ if(newvalue == '1') {window.document.getElementById('bouncefrequency').style.display = 'block';}else{window.document.getElementById('bouncefrequency').style.display = 'none';}} "; $js .= 'window.addEvent(\'load\', function(){ displayBounceFrequency(\'' . $config->get('auto_bounce', 0) . '\');});'; $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); } jimport('joomla.filesystem.folder'); $path = JLanguage::getLanguagePath(JPATH_ROOT); $dirs = JFolder::folders($path); foreach ($dirs as $dir) { $xmlFiles = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$'); $xmlFile = reset($xmlFiles); if (empty($xmlFile)) { continue; } $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $xmlFile); $oneLanguage = null; $oneLanguage->language = $dir; $oneLanguage->name = $data['name']; $languageFiles = JFolder::files($path . DS . $dir, '^(.*)\\.com_acymailing\\.ini$'); $languageFile = reset($languageFiles); if (!empty($languageFile)) { $linkEdit = 'index.php?option=com_acymailing&tmpl=component&ctrl=file&task=language&code=' . $oneLanguage->language; $oneLanguage->edit = '<a class="modal" title="' . JText::_('EDIT_LANGUAGE_FILE', true) . '" href="' . $linkEdit . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><img id="image' . $oneLanguage->language . '" src="../images/M_images/edit.png" alt="' . JText::_('EDIT_LANGUAGE_FILE', true) . '"/></a>'; } else { $linkEdit = 'index.php?option=com_acymailing&tmpl=component&ctrl=file&task=language&code=' . $oneLanguage->language; $oneLanguage->edit = '<a class="modal" title="' . JText::_('ADD_LANGUAGE_FILE', true) . '" href="' . $linkEdit . '" rel="{handler: \'iframe\', size: {x: 800, y: 500}}"><img id="image' . $oneLanguage->language . '" src="../images/M_images/new.png" alt="' . JText::_('ADD_LANGUAGE_FILE', true) . '"/></a>'; } $languages[] = $oneLanguage; } $js = "function updateConfirmation(newvalue){"; $js .= "if(newvalue == 0) {window.document.getElementById('confirmemail').style.display = 'none'; window.document.getElementById('confirm_redirect').disabled = true;}else{window.document.getElementById('confirmemail').style.display = 'inline'; window.document.getElementById('confirm_redirect').disabled = false;}"; $js .= '}'; $js .= "function updateModification(newvalue){ if(newvalue != 'none') {window.document.getElementById('modifemail').style.display = 'none';}else{window.document.getElementById('modifemail').style.display = 'inline';}} "; $js .= 'window.addEvent(\'load\', function(){ updateModification(\'' . $config->get('allow_modif', 'data') . '\'); updateConfirmation(' . $config->get('require_confirmation', 0) . '); });'; $doc =& JFactory::getDocument(); $doc->addScriptDeclaration($js); $elements->require_confirmation = JHTML::_('select.booleanlist', "config[require_confirmation]", 'onclick="updateConfirmation(this.value)"', $config->get('require_confirmation', 0)); $allowmodif = array(); $allowmodif[] = JHTML::_('select.option', "none", JText::_('JOOMEXT_NO')); $allowmodif[] = JHTML::_('select.option', "data", JText::_('ONLY_SUBSCRIPTION')); $allowmodif[] = JHTML::_('select.option', "all", JText::_('JOOMEXT_YES')); $elements->allow_modif = JHTML::_('select.radiolist', $allowmodif, "config[allow_modif]", 'size="1" onclick="updateModification(this.value)"', 'value', 'text', $config->get('allow_modif', 'data')); $delayType2 = acymailing::get('type.delay'); $elements->queue_delay = $delayType2->display('config[queue_delay]', $config->get('queue_delay', 0), 2); $db->setQuery("SELECT name,published,id FROM `#__plugins` WHERE `folder` = 'acymailing' AND `element` NOT LIKE 'plg%' ORDER BY published DESC, ordering ASC"); $plugins = $db->loadObjectList(); $db->setQuery("SELECT name,published,id FROM `#__plugins` WHERE (`folder` != 'acymailing' OR `element` LIKE 'plg%') AND (`name` LIKE '%acymailing%' OR `element` LIKE '%acymailing%') ORDER BY published DESC, ordering ASC"); $integrationplugins = $db->loadObjectList(); $this->assignRef('bounceaction', acymailing::get('type.bounceaction')); $this->assignRef('config', $config); $this->assignRef('languages', $languages); $this->assignRef('elements', $elements); $this->assignRef('plugins', $plugins); $this->assignRef('integrationplugins', $integrationplugins); $toggleClass = acymailing::get('helper.toggle'); jimport('joomla.html.pane'); $tabs =& JPane::getInstance('tabs'); $this->assignRef('tabs', $tabs); $this->assignRef('toggleClass', $toggleClass); if (!file_exists(ACYMAILING_FRONT . 'images' . DS . 'icons' . DS . 'icon-32-apply.png') || !file_exists(ACYMAILING_FRONT . 'images' . DS . 'icons' . DS . 'icon-32-edit.png') and file_exists(rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'templates' . DS . 'khepri' . DS . 'images' . DS . 'toolbar' . DS . 'icon-32-apply.png')) { $images = array('icon-32-apply.png', 'icon-32-save.png', 'icon-32-cancel.png', 'icon-32-send.png', 'icon-32-preview.png', 'icon-32-edit.png'); jimport('joomla.filesystem.file'); foreach ($images as $oneImage) { JFile::copy(rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'templates' . DS . 'khepri' . DS . 'images' . DS . 'toolbar' . DS . $oneImage, ACYMAILING_FRONT . 'images' . DS . 'icons' . DS . $oneImage); } } if (!file_exists(rtrim(JPATH_SITE, DS) . DS . 'plugins' . DS . 'acymailing' . DS . 'tagsubscriber.php')) { acymailing::display(JText::sprintf('ERROR_PLUGINS', 'index.php?option=com_acymailing&ctrl=update&task=install'), 'warning'); } return parent::display($tpl); }
<?php echo JHTML::_('select.genericlist', $this->typevaluesActions, "action[type][__num__]", 'class="inputbox" size="1" onchange="updateAction(__num__);"', 'value', 'text', 'actiontype__num__'); ?> <div style="margin-left:200px;"><?php echo $this->outputActions; ?> </div> </div> <form action="index.php?option=<?php echo ACYMAILING_COMPONENT; ?> &ctrl=filter" method="post" name="adminForm" autocomplete="off"> <?php if (JRequest::getCmd('tmpl') == 'component') { if (empty($this->subid)) { acymailing::display(JText::_('PLEASE_SELECT_USERS'), 'warning'); return; } ?> <input type="hidden" name="subid" value="<?php echo $this->subid; ?> " /> <input type="hidden" name="tmpl" value="component" /> <fieldset> <div class="header icon-48-acyaction" style="float: left;"><?php echo JText::_('ACTIONS'); ?> </div> <div class="toolbar" id="toolbar" style="float: right;"> <table><tr>
<?php /** * @copyright Copyright (C) 2009-2011 ACYBA SARL - All rights reserved. * @license http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL */ defined('_JEXEC') or die('Restricted access'); ?> <div id="acy_content"> <div id="acymailing_edit" class="acytagpopup"> <table width="100%"> <tr> <td width="660" class="familymenu" valign="top"> <?php if (empty($this->tagsfamilies)) { acymailing::display(JText::sprintf('ERROR_PLUGINS', 'href="index.php?option=com_acymailing&ctrl=update&task=install"'), 'warning'); } foreach ($this->tagsfamilies as $id => $oneFamily) { if (empty($oneFamily)) { continue; } if ($oneFamily->function == $this->fctplug) { $help = empty($oneFamily->help) ? '' : $oneFamily->help; $class = ' class="selected" '; } else { $class = ''; } echo '<a' . $class . ' href="' . acymailing::completeLink($this->ctrl . '&task=tag&type=' . $this->type . '&fctplug=' . $oneFamily->function, true) . '" >' . $oneFamily->name . '</a>'; } ?> </td>
function process() { $mailid = acymailing::getCID('mailid'); $queueClass = acymailing::get('class.queue'); $queueStatus = $queueClass->queueStatus($mailid); $nextqueue = $queueClass->queueStatus($mailid, true); if (acymailing::level(1)) { $scheduleClass = acymailing::get('helper.schedule'); $scheduleNewsletter = $scheduleClass->getScheduled(); $this->assignRef('schedNews', $scheduleNewsletter); } if (empty($queueStatus) and empty($scheduleNewsletter)) { acymailing::display(JText::_('NO_PROCESS'), 'info'); } $infos = null; $infos->mailid = $mailid; $this->assignRef('queue', $queueStatus); $this->assignRef('nextqueue', $nextqueue); $this->assignRef('infos', $infos); }
" method="post" name="adminForm" autocomplete="off"> <fieldset> <div class="header" style="float: left;"><?php echo JText::_('SHARE') . ' : ' . $this->file->name; ?> </div> <div class="toolbar" id="toolbar" style="float: right;"> <button type="button" onclick="javascript:submitbutton('send')"><?php echo JText::_('SHARE'); ?> </button> </div> </fieldset> <fieldset class="adminform"> <?php acymailing::display(JText::_('SHARE_CONFIRMATION_1') . '<br/>' . JText::_('SHARE_CONFIRMATION_2') . '<br/>' . JText::_('SHARE_CONFIRMATION_3'), 'info'); ?> <br/> <textarea cols="100" rows="8" name="mailbody"></textarea> </fieldset> <div class="clr"></div> <input type="hidden" name="code" value="<?php echo $this->file->name; ?> " /> <input type="hidden" name="option" value="<?php echo ACYMAILING_COMPONENT; ?> " /> <input type="hidden" name="task" value="" /> <input type="hidden" name="ctrl" value="file" />