Beispiel #1
0
 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();
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
 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');
 }
Beispiel #5
0
 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();
 }
Beispiel #6
0
 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;
     }
 }
Beispiel #7
0
 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;
 }
Beispiel #8
0
 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();
 }
Beispiel #9
0
 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 '';
     }
 }
Beispiel #10
0
 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');
     }
 }
Beispiel #11
0
 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();
     }
 }
Beispiel #12
0
 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);
 }
Beispiel #13
0
 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('#^([^=!<>~]+)(=|!=|<|>|&gt;|&lt;|~)([^=!<>~]+)$#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] == '&gt;' and $prop > $val) {
                 $tags[$oneTag] = $allresults[2][$i];
             } elseif ($operators[2] == '<' || $operators[2] == '&lt;' 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});
     }
 }
Beispiel #14
0
 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();
 }
Beispiel #15
0
 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;
 }
Beispiel #16
0
    $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%">
Beispiel #17
0
 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;
 }
Beispiel #18
0
 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');
         }
     }
 }
Beispiel #19
0
		<?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');
    ?>
">
Beispiel #20
0
 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');
     }
 }
Beispiel #21
0
<?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&amp;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;
Beispiel #22
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');
     }
 }
Beispiel #23
0
 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 
Beispiel #25
0
 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');
     }
 }
Beispiel #26
0
 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&amp;tmpl=component&amp;ctrl=config&amp;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&amp;tmpl=component&amp;ctrl=config&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&gtask=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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;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&amp;tmpl=component&amp;ctrl=file&amp;task=language&amp;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&amp;tmpl=component&amp;ctrl=file&amp;task=language&amp;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&amp;ctrl=update&amp;task=install'), 'warning');
     }
     return parent::display($tpl);
 }
Beispiel #27
0
	<?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;
?>
&amp;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>
Beispiel #28
0
<?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&amp;ctrl=update&amp;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>
Beispiel #29
0
 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);
 }
Beispiel #30
0
" 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" />