Esempio n. 1
0
 function display()
 {
     static $i = 0;
     $i++;
     $this->filters['group'] = JHTML::_('select.genericlist', $this->groups, "filter[{$i}][group]", 'class="inputbox" size="1"', 'value', 'text');
     $this->filters['list'] = $this->status->display("filter[{$i}][list_status]", 1, false) . ' ' . JHTML::_('select.genericlist', $this->lists, "filter[{$i}][list]", 'class="inputbox" size="1"', 'value', 'text');
     $this->filters['acymailingfield'] = JHTML::_('select.genericlist', $this->acymailingfields, "filter[{$i}][acymailingfield]", 'class="inputbox" size="1"', 'value', 'text');
     $this->filters['acymailingfield'] .= ' ' . $this->operators->display("filter[{$i}][acymailingfield_operator]") . ' <input class="inputbox" type="text" name="filter[' . $i . '][acymailingfield_value]" size="50" value="">';
     $this->filters['joomlafield'] = JHTML::_('select.genericlist', $this->joomlafields, "filter[{$i}][joomlafield]", 'class="inputbox" size="1"', 'value', 'text');
     $this->filters['joomlafield'] .= ' ' . $this->operators->display("filter[{$i}][joomlafield_operator]") . ' <input class="inputbox" type="text" name="filter[' . $i . '][joomlafield_value]" size="50" value="">';
     if (!empty($this->cbfield)) {
         $this->filters['cbfield'] = JHTML::_('select.genericlist', $this->cbfield, "filter[{$i}][cbfield]", 'class="inputbox" size="1"', 'value', 'text');
         $this->filters['cbfield'] .= ' ' . $this->operators->display("filter[{$i}][cbfield_operator]") . ' <input class="inputbox" type="text" name="filter[' . $i . '][cbfield_value]" size="50" value="">';
     }
     if (acymailing::level(3)) {
         include dirname(__FILE__) . DS . 'filterenterprisedisplay.php';
     }
     $return = '<div id="filter_' . $i . '">';
     $return .= JHTML::_('select.genericlist', $this->type, "filter[type][{$i}]", 'class="inputbox" size="1" onchange="updateFilter(' . $i . ');"', 'value', 'text');
     foreach ($this->filters as $oneFilterName => $content) {
         $return .= '<div id="filter_' . $i . $oneFilterName . '" style="display:none;margin-left:150px">';
         $return .= $content;
         $return .= '</div>';
     }
     $return .= '</div>';
     return $return;
 }
Esempio n. 2
0
 function trigger($triggerName)
 {
     if (!acymailing::level(3)) {
         return;
     }
     $config = acymailing::config();
     if (!$config->get('triggerfilter_' . $triggerName)) {
         return;
     }
     $this->database->setQuery("SELECT * FROM `#__acymailing_filter` WHERE `trigger` LIKE '%" . $this->database->getEscaped($triggerName, true) . "%'");
     $filters = $this->database->loadObjectList();
     if (empty($filters)) {
         $newconfig = null;
         $name = 'triggerfilter_' . $triggerName;
         $newconfig->{$name} = 0;
         $config->save($newconfig);
         return;
     }
     foreach ($filters as $oneFilter) {
         if (empty($oneFilter->published)) {
             continue;
         }
         if (!empty($oneFilter->filter)) {
             $oneFilter->filter = unserialize($oneFilter->filter);
         }
         if (!empty($oneFilter->action)) {
             $oneFilter->action = unserialize($oneFilter->action);
         }
         $this->execute($oneFilter->filter, $oneFilter->action);
     }
 }
Esempio n. 3
0
 function deliverstatusType()
 {
     $this->values = array();
     $this->values[] = JHTML::_('select.option', '0', JText::_('ALL_STATUS'));
     $this->values[] = JHTML::_('select.option', 'open', JText::_('OPEN'));
     $this->values[] = JHTML::_('select.option', 'notopen', JText::_('NOT_OPEN'));
     $this->values[] = JHTML::_('select.option', 'failed', JText::_('FAILED'));
     if (acymailing::level(3)) {
         $this->values[] = JHTML::_('select.option', 'bounce', JText::_('BOUNCES'));
     }
 }
Esempio n. 4
0
 function _quickiconButton($link, $image, $text, $description, $level)
 {
     $url = acymailing::level($level) ? 'onclick="document.location.href=\'' . acymailing::completeLink($link) . '\';"' : '';
     $html = '<div style="float:left;width: 100%;" ' . $url . ' class="icon"><a href="';
     $html .= acymailing::level($level) ? acymailing::completeLink($link) : '#';
     $html .= '"><table width="100%"><tr><td style="text-align: center;" width="120px">';
     $html .= '<span class="icon-48-' . $image . '" style="background-repeat:no-repeat;background-position:center;height:48px" title="' . $text . '"> </span>';
     $html .= '<span>' . $text . '</span></td><td>' . $description . '</td></tr></table></a>';
     $html .= '</div>';
     return $html;
 }
Esempio n. 5
0
 function unsubscribe($subid, $listids)
 {
     $app =& JFactory::getApplication();
     if (acymailing::level(3)) {
         $campaignClass = acymailing::get('helper.campaign');
         $campaignClass->stop($subid, $listids);
     }
     $config = acymailing::config();
     static $alreadySent = false;
     if ($this->sendNotif and !$alreadySent and $config->get('notification_unsub') and !$app->isAdmin()) {
         $alreadySent = true;
         $mailer = acymailing::get('helper.mailer');
         $mailer->report = false;
         $mailer->autoAddUser = true;
         $mailer->checkConfirmField = false;
         $userClass = acymailing::get('class.subscriber');
         $subscriber = $userClass->get($subid);
         $ipClass = acymailing::get('helper.user');
         $mailer->addParam('survey', $this->survey);
         $mailer->addParamInfo();
         $subscriber->ip = $ipClass->getIP();
         foreach ($subscriber as $fieldname => $value) {
             $mailer->addParam('user:'******',', $config->get('notification_unsub'));
         foreach ($allUsers as $oneUser) {
             $mailer->sendOne('notification_unsub', $oneUser);
         }
     }
     $db =& JFactory::getDBO();
     if ($this->sendConf and !$app->isAdmin()) {
         $db->setQuery('SELECT DISTINCT `unsubmailid` FROM ' . acymailing::table('list') . ' WHERE `listid` IN (' . implode(',', $listids) . ') AND `published` = 1  AND `unsubmailid` > 0');
         $messages = $db->loadResultArray();
         if (!empty($messages)) {
             $config = acymailing::config();
             $mailHelper = acymailing::get('helper.mailer');
             $mailHelper->report = $config->get('unsub_message', true);
             $mailHelper->checkAccept = false;
             foreach ($messages as $mailid) {
                 $mailHelper->sendOne($mailid, $subid);
             }
         }
     }
     //end only frontend
     $db->setQuery('DELETE  FROM ' . acymailing::table('queue') . ' WHERE `subid` = ' . (int) $subid . ' AND `mailid` IN (SELECT `mailid` FROM ' . acymailing::table('listmail') . ' WHERE `listid` IN (' . implode(',', $listids) . '))');
     $db->query();
     JPluginHelper::importPlugin('acymailing');
     $dispatcher =& JDispatcher::getInstance();
     $resultsTrigger = $dispatcher->trigger('onAcyUnsubscribe', array($subid, $listids));
 }
Esempio n. 6
0
 function addSubscription($subid, $lists)
 {
     $app =& JFactory::getApplication();
     $my = JFactory::getUser();
     $result = true;
     $time = time();
     $subid = intval($subid);
     $listHelper = acymailing::get('helper.list');
     foreach ($lists as $status => $listids) {
         $status = intval($status);
         JArrayHelper::toInteger($listids);
         $this->database->setQuery('SELECT `listid`,`access_sub` FROM ' . acymailing::table('list') . ' WHERE `listid` IN (' . implode(',', $listids) . ') AND `type` = \'list\'');
         $allResults = $this->database->loadObjectList('listid');
         $listids = array_keys($allResults);
         //-1 is unsubscribe
         if ($status == '-1') {
             $column = 'unsubdate';
         } else {
             $column = 'subdate';
         }
         $values = array();
         foreach ($listids as $listid) {
             if (empty($listid)) {
                 continue;
             }
             if ($status > 0 && acymailing::level(3)) {
                 if (!$app->isAdmin() && $this->checkAccess && $allResults[$listid]->access_sub != 'all') {
                     $gid = (empty($my->id) or empty($my->gid)) ? $this->gid : $my->gid;
                     if ($allResults[$listid]->access_sub == 'none' or empty($gid)) {
                         continue;
                     }
                     if (!in_array($gid, explode(',', $allResults[$listid]->access_sub))) {
                         continue;
                     }
                 }
             }
             $values[] = intval($listid) . ',' . $subid . ',' . $status . ',' . $time;
         }
         if (empty($values)) {
             continue;
         }
         $query = 'INSERT INTO ' . acymailing::table('listsub') . ' (listid,subid,`status`,' . $column . ') VALUES (' . implode('),(', $values) . ')';
         $this->database->setQuery($query);
         $result = $this->database->query() && $result;
         if ($status == 1) {
             $listHelper->subscribe($subid, $listids);
         }
     }
     return $result;
 }
Esempio n. 7
0
 function listing()
 {
     global $Itemid;
     $app =& JFactory::getApplication();
     $menus =& JSite::getMenu();
     $menu = $menus->getActive();
     if (empty($menu) and !empty($Itemid)) {
         $menus->setActive($Itemid);
         $menu = $menus->getItem($Itemid);
     }
     $pathway =& $app->getPathway();
     $pathway->addItem(JText::_('MAILING_LISTS'));
     $listsClass = acymailing::get('class.list');
     $allLists = $listsClass->getLists();
     if (acymailing::level(1)) {
         $allLists = $listsClass->onlyCurrentLanguage($allLists);
     }
     $this->assignRef('rows', $allLists);
 }
Esempio n. 8
0
 function onAcyDisplayActions(&$type)
 {
     $type['list'] = JText::_('ACYMAILING_LIST');
     $status = array();
     $status[] = JHTML::_('select.option', 1, JText::_('SUBSCRIBE_TO'));
     $status[] = JHTML::_('select.option', 0, JText::_('REMOVE_FROM'));
     $lists = $this->_getLists();
     $otherlists = array();
     if (acymailing::level(3)) {
         $db =& JFactory::getDBO();
         $db->setQuery('SELECT b.listid, b.name FROM #__acymailing_listcampaign as a LEFT JOIN #__acymailing_list as b on a.listid = b.listid GROUP BY b.listid ORDER BY b.ordering ASC');
         $otherlists = $db->loadObjectList('listid');
     }
     $listsdrop = array();
     foreach ($lists as $oneList) {
         $listsdrop[] = JHTML::_('select.option', $oneList->listid, $oneList->name);
         if (!empty($otherlists[$oneList->listid])) {
             $listsdrop[] = JHTML::_('select.option', $oneList->listid . '_campaign', $otherlists[$oneList->listid]->name . ' + ' . JText::_('CAMPAIGN'));
         }
     }
     return '<div id="action__num__list">' . JHTML::_('select.genericlist', $status, "action[__num__][list][status]", 'class="inputbox" size="1"', 'value', 'text') . ' ' . JHTML::_('select.genericlist', $listsdrop, "action[__num__][list][selectedlist]", 'class="inputbox" size="1"', 'value', 'text') . '</div>';
 }
Esempio n. 9
0
 function onAcyDisplayFilters($type)
 {
     $type['deliverstat'] = JText::_('STATISTICS');
     $db =& JFactory::getDBO();
     $db->setQuery("SELECT `mailid`,CONCAT(`subject`,' ( ',`mailid`,' )') as 'value' FROM `#__acymailing_mail` WHERE `type` IN('news','autonews','followup') ORDER BY `subject` ASC ");
     $allemails = $db->loadObjectList();
     $element = null;
     $element->mailid = 0;
     $element->value = JText::_('EMAIL_NAME');
     array_unshift($allemails, $element);
     $actions = array();
     $actions[] = JHTML::_('select.option', 'open', JText::_('OPEN'));
     $actions[] = JHTML::_('select.option', 'notopen', JText::_('NOT_OPEN'));
     $actions[] = JHTML::_('select.option', 'failed', JText::_('FAILED'));
     if (acymailing::level(3)) {
         $actions[] = JHTML::_('select.option', 'bounce', JText::_('BOUNCES'));
     }
     $actions[] = JHTML::_('select.option', 'htmlsent', JText::_('SENT_HTML'));
     $actions[] = JHTML::_('select.option', 'textsent', JText::_('SENT_TEXT'));
     $return = '<div id="filter__num__deliverstat">' . JHTML::_('select.genericlist', $actions, "filter[__num__][deliverstat][action]", 'class="inputbox" size="1"', 'value', 'text');
     $return .= ' ' . JHTML::_('select.genericlist', $allemails, "filter[__num__][deliverstat][mailid]", 'class="inputbox" size="1"', 'mailid', 'value') . '</div>';
     return $return;
 }
Esempio n. 10
0
 function view()
 {
     $app =& JFactory::getApplication();
     $pathway =& $app->getPathway();
     $my = JFactory::getUser();
     $frontEndManagement = false;
     $listid = acymailing::getCID('listid');
     if (!empty($listid)) {
         $listClass = acymailing::get('class.list');
         $oneList = $listClass->get($listid);
         if (!empty($oneList->visible) and $oneList->published) {
             $pathway->addItem($oneList->name, acymailing::completeLink('archive&listid=' . $oneList->listid . ':' . $oneList->alias));
         }
         if (!empty($oneList->listid) and acymailing::level(3)) {
             if (!empty($my->id) and (int) $my->id == (int) $oneList->userid) {
                 $frontEndManagement = true;
             }
             if (!empty($my->gid) and !empty($my->id)) {
                 if ($oneList->access_manage == 'all' or in_array($my->gid, explode(',', $oneList->access_manage))) {
                     $frontEndManagement = true;
                 }
             }
         }
     }
     $mailid = acymailing::getCID('mailid');
     if (empty($mailid)) {
         $db =& JFactory::getDBO();
         $query = 'SELECT m.`mailid` FROM `#__acymailing_list` as l LEFT JOIN `#__acymailing_listmail` as lm ON l.listid=lm.listid LEFT JOIN `#__acymailing_mail` as m on lm.mailid = m.mailid';
         $query .= ' WHERE l.`visible` = 1 AND l.`published` = 1 AND m.`visible`= 1 AND m.`published` = 1';
         if (!empty($listid)) {
             $query .= ' AND l.`listid` = ' . (int) $listid;
         }
         $query .= ' ORDER BY m.`mailid` DESC LIMIT 1';
         $db->setQuery($query);
         $mailid = $db->loadResult();
         if (empty($mailid)) {
             return JError::raiseError(404, 'Newsletter not found');
         }
     }
     $access_sub = true;
     if (acymailing::level(3)) {
         $listmail = acymailing::get('class.listmail');
         $allLists = $listmail->getLists($mailid);
         $access_sub = false;
         if (!empty($allLists)) {
             foreach ($allLists as $alist) {
                 if (empty($alist->mailid)) {
                     continue;
                 }
                 if (!$alist->published or !$alist->visible or $alist->access_sub == 'none') {
                     continue;
                 }
                 if ($alist->access_sub == 'all') {
                     $access_sub = true;
                     break;
                 }
                 if (empty($my->id) or empty($my->gid)) {
                     continue;
                 }
                 if (in_array($my->gid, explode(',', $alist->access_sub))) {
                     $access_sub = true;
                     break;
                 }
             }
         }
     }
     $mailClass = acymailing::get('helper.mailer');
     $oneMail = $mailClass->load($mailid);
     if (empty($oneMail->mailid)) {
         return JError::raiseError(404, 'Newsletter not found : ' . $mailid);
     }
     if (!$frontEndManagement and (!$access_sub or !$oneMail->published or !$oneMail->visible)) {
         $key = JRequest::getString('key');
         if (empty($key) or $key !== $oneMail->key) {
             $app->enqueueMessage('You can not have access to this e-mail', 'error');
             $app->redirect(acymailing::completeLink('lists', false, true));
             return false;
         }
     }
     if (!empty($my->email)) {
         $userClass = acymailing::get('class.subscriber');
         $receiver = $userClass->get($my->email);
     } else {
         $subkeys = JRequest::getString('sub');
         if (!empty($subkeys)) {
             $db =& JFactory::getDBO();
             $subid = intval(substr($subkeys, 0, strpos($subkeys, '-')));
             $subkey = substr($subkeys, strpos($subkeys, '-') + 1);
             $db->setQuery('SELECT * FROM ' . acymailing::table('subscriber') . ' WHERE `subid` = ' . $db->Quote($subid) . ' AND `key` = ' . $db->Quote($subkey) . ' LIMIT 1');
             $receiver = $db->loadObject();
         }
         if (empty($receiver)) {
             $receiver = null;
             $receiver->name = JText::_('VISITOR');
         }
     }
     $oneMail->sendHTML = true;
     $mailClass->dispatcher->trigger('acymailing_replaceusertagspreview', array(&$oneMail, &$receiver));
     $pathway->addItem($oneMail->subject);
     $document =& JFactory::getDocument();
     $document->setTitle($oneMail->subject);
     $this->assignRef('mail', $oneMail);
     $this->assignRef('frontEndManagement', $frontEndManagement);
     $this->assignRef('list', $oneList);
     $this->assignRef('config', acymailing::config());
     $this->assignRef('my', $my);
 }
Esempio n. 11
0
 function view()
 {
     $mailid = acymailing::getCID('mailid');
     if (empty($mailid)) {
         $db =& JFactory::getDBO();
         $query = 'SELECT m.`mailid` FROM `#__acymailing_list` as l LEFT JOIN `#__acymailing_listmail` as lm ON l.listid=lm.listid LEFT JOIN `#__acymailing_mail` as m on lm.mailid = m.mailid';
         $query .= ' WHERE l.`visible` = 1 AND l.`published` = 1 AND m.`visible`= 1 AND m.`published` = 1';
         if (!empty($listid)) {
             $query .= ' AND l.`listid` = ' . (int) $listid;
         }
         $query .= ' ORDER BY m.`mailid` DESC LIMIT 1';
         $db->setQuery($query);
         $mailid = $db->loadResult();
         if (empty($mailid)) {
             return JError::raiseError(404, 'Newsletter not found');
         }
     }
     $access_sub = true;
     if (acymailing::level(3)) {
         $listmail = acymailing::get('class.listmail');
         $allLists = $listmail->getLists($mailid);
         $access_sub = false;
         if (!empty($allLists)) {
             $my = JFactory::getUser();
             foreach ($allLists as $alist) {
                 if (empty($alist->mailid)) {
                     continue;
                 }
                 if (!$alist->published or !$alist->visible or $alist->access_sub == 'none') {
                     continue;
                 }
                 if ($alist->access_sub == 'all') {
                     $access_sub = true;
                     break;
                 }
                 if (empty($my->id) or empty($my->gid)) {
                     continue;
                 }
                 if (in_array($my->gid, explode(',', $alist->access_sub))) {
                     $access_sub = true;
                     break;
                 }
             }
         }
     }
     $mailClass = acymailing::get('helper.mailer');
     $oneMail = $mailClass->load($mailid);
     if (empty($oneMail->mailid)) {
         return JError::raiseError(404, 'Newsletter not found : ' . $mailid);
     }
     if (!$access_sub or !$oneMail->published or !$oneMail->visible) {
         $key = JRequest::getString('key');
         if (empty($key) or $key !== $oneMail->key) {
             $app =& JFactory::getApplication();
             $app->enqueueMessage('You can not have access to this e-mail', 'error');
             $app->redirect(acymailing::completeLink('lists', false, true));
             return false;
         }
     }
     $user =& JFactory::getUser();
     if (!empty($user->email)) {
         $userClass = acymailing::get('class.subscriber');
         $receiver = $userClass->get($user->email);
     } else {
         $receiver = null;
         $receiver->name = JText::_('VISITOR');
     }
     $oneMail->sendHTML = true;
     $mailClass->dispatcher->trigger('acymailing_replaceusertagspreview', array(&$oneMail, &$receiver));
     $document =& JFactory::getDocument();
     $document->setTitle($oneMail->subject);
     if (!empty($oneMail->text)) {
         echo nl2br($mailClass->textVersion($oneMail->text, false));
     } else {
         echo nl2br($mailClass->textVersion($oneMail->body, true));
     }
 }
Esempio n. 12
0
    function form()
    {
        $db =& JFactory::getDBO();
        $config = acymailing::config();
        $filid = acymailing::getCID('filid');
        $filterClass = acymailing::get('class.filter');
        if (!empty($filid)) {
            $filter = $filterClass->get($filid);
        } else {
            $filter = null;
            $filter->action = JRequest::getVar('action');
            $filter->filter = JRequest::getVar('filter');
            $filter->published = 1;
        }
        JPluginHelper::importPlugin('acymailing');
        $this->dispatcher =& JDispatcher::getInstance();
        $typesFilters = array();
        $typesActions = array();
        $outputFilters = implode('', $this->dispatcher->trigger('onAcyDisplayFilters', array(&$typesFilters)));
        $outputActions = implode('', $this->dispatcher->trigger('onAcyDisplayActions', array(&$typesActions)));
        $typevaluesFilters = array();
        $typevaluesActions = array();
        $typevaluesFilters[] = JHTML::_('select.option', '', JText::_('FILTER_SELECT'));
        $typevaluesActions[] = JHTML::_('select.option', '', JText::_('ACTION_SELECT'));
        $doc =& JFactory::getDocument();
        $js = "function updateFilter(filterNum){";
        foreach ($typesFilters as $oneType => $oneName) {
            $typevaluesFilters[] = JHTML::_('select.option', $oneType, $oneName);
            $js .= "filterArea = 'filter'+filterNum+'{$oneType}';\r\n\t\t\t\tif(window.document.getElementById(filterArea)){window.document.getElementById(filterArea).style.display = 'none';}";
        }
        $js .= "filterArea = 'filter'+filterNum+window.document.getElementById('filtertype'+filterNum).value;\r\n\t\t\t\tif(window.document.getElementById(filterArea)){window.document.getElementById(filterArea).style.display = 'block';}\r\n\t\t\t}";
        $js .= "function updateAction(actionNum){";
        foreach ($typesActions as $oneType => $oneName) {
            $typevaluesActions[] = JHTML::_('select.option', $oneType, $oneName);
            $js .= "actionArea = 'action'+actionNum+'{$oneType}';\r\n\t\t\t\tif(window.document.getElementById(actionArea)){window.document.getElementById(actionArea).style.display = 'none';}";
        }
        $js .= "actionArea = 'action'+actionNum+window.document.getElementById('actiontype'+actionNum).value;\r\n\t\t\t\tif(window.document.getElementById(actionArea)){window.document.getElementById(actionArea).style.display = 'block';}\r\n\t\t\t}";
        $js .= "var numFilters = 0;\r\n\t\t\t\tvar numActions = 0;\r\n\t\t\t\tfunction addFilter(){\r\n\t\t\t\t\tvar newdiv = document.createElement('div');\r\n\t\t\t\t\tnewdiv.id = 'filter'+numFilters;\r\n\t\t\t\t\tnewdiv.className = 'plugarea';\r\n\t\t\t\t\tnewdiv.innerHTML = document.getElementById('filters_original').innerHTML.replace(/__num__/g, numFilters);\r\n\t\t\t\t\tdocument.getElementById('allfilters').appendChild(newdiv); updateFilter(numFilters); numFilters++; }\n\t\t\t\tfunction addAction(){\r\n\t\t\t\t\tvar newdiv = document.createElement('div');\r\n\t\t\t\t\tnewdiv.id = 'action'+numActions;\r\n\t\t\t\t\tnewdiv.className = 'plugarea';\r\n\t\t\t\t\tnewdiv.innerHTML = document.getElementById('actions_original').innerHTML.replace(/__num__/g, numActions);\r\n\t\t\t\t\tdocument.getElementById('allactions').appendChild(newdiv); updateAction(numActions); numActions++; }";
        $js .= "window.addEvent('domready', function(){ addFilter(); addAction(); });";
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $js .= 'function submitbutton(pressbutton){
						if (pressbutton != \'save\') {
							submitform( pressbutton );
							return;
						}';
        } else {
            $js .= 'Joomla.submitbutton = function(pressbutton) {
						if (pressbutton != \'save\') {
							Joomla.submitform(pressbutton,document.adminForm);
							return;
						}';
        }
        $js .= "if(window.document.getElementById('filterinfo').style.display == 'none'){\r\n\t\t\t\t\t\twindow.document.getElementById('filterinfo').style.display = 'block';\r\n\t\t\t\t\t\ttry{allspans = window.document.getElementById('toolbar-save').getElementsByTagName(\"span\"); allspans[0].className = 'icon-32-apply';}catch(err){}\r\n\t\t\t\t\t\treturn false;}\r\n\t\t\t\t\tif(window.document.getElementById('title').value.length < 2){alert('" . JText::_('ENTER_TITLE', true) . "'); return false;}";
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $js .= "submitform( pressbutton );} ";
        } else {
            $js .= "Joomla.submitform(pressbutton,document.adminForm);}; ";
        }
        $doc->addScriptDeclaration($js);
        $js = '';
        $data = array('action', 'filter');
        foreach ($data as $datatype) {
            if (empty($filter->{$datatype})) {
                continue;
            }
            foreach ($filter->{$datatype}['type'] as $num => $oneType) {
                if (empty($oneType)) {
                    continue;
                }
                $js .= "while(!document.getElementById('" . $datatype . "type{$num}')){add" . ucfirst($datatype) . "();}\r\n\t\t\t\t\t\tdocument.getElementById('" . $datatype . "type{$num}').value= '{$oneType}';\r\n\t\t\t\t\t\tupdate" . ucfirst($datatype) . "({$num});";
                if (empty($filter->{$datatype}[$num][$oneType])) {
                    continue;
                }
                foreach ($filter->{$datatype}[$num][$oneType] as $key => $value) {
                    $js .= "document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}]'].value = '" . addslashes(str_replace(array("\n", "\r"), ' ', $value)) . "';";
                }
            }
        }
        $listid = JRequest::getInt('listid');
        if (!empty($listid)) {
            $js .= "document.getElementById('actiontype0').value = 'list'; updateAction(0); document.adminForm.elements['action[0][list][selectedlist]'].value = '" . $listid . "';";
        }
        $doc->addScriptDeclaration("window.addEvent('domready', function(){ {$js} });");
        $triggers = array();
        $triggers['daycron'] = JText::_('AUTO_CRON_FILTER');
        $nextDate = $config->get('cron_plugins_next');
        if (!empty($nextDate)) {
            $triggers['daycron'] .= ' (' . JText::_('NEXT_RUN') . ' : ' . acymailing::getDate($nextDate, '%d %B %H:%M') . ')';
        }
        $triggers['subcreate'] = JText::_('ON_USER_CREATE');
        $triggers['subchange'] = JText::_('ON_USER_CHANGE');
        $this->dispatcher->trigger('onAcyDisplayTriggers', array(&$triggers));
        $name = empty($filter->name) ? '' : ' : ' . $filter->name;
        acymailing::setTitle(JText::_('ACY_FILTER') . $name, 'filter', 'filter&task=edit&filid=' . $filid);
        $bar =& JToolBar::getInstance('toolbar');
        $bar->appendButton('Confirm', JText::_('PROCESS_CONFIRMATION'), 'process', JText::_('PROCESS'), 'process', false, false);
        JToolBarHelper::divider();
        if (acymailing::level(3)) {
            JToolBarHelper::save();
            if (!empty($filter->filid)) {
                $bar->appendButton('Link', 'new', JText::_('NEW'), acymailing::completeLink('filter&task=edit&filid=0'));
            }
        }
        $bar->appendButton('Link', 'cancel', JText::_('ACY_CLOSE'), acymailing::completeLink('list'));
        JToolBarHelper::divider();
        $bar->appendButton('Pophelp', 'filter');
        $subid = JRequest::getString('subid');
        if (!empty($subid)) {
            $subArray = explode(',', trim($subid, ','));
            JArrayHelper::toInteger($subArray);
            $db->setQuery('SELECT `name`,`email` FROM `#__acymailing_subscriber` WHERE `subid` IN (' . implode(',', $subArray) . ')');
            $users = $db->loadObjectList();
            if (!empty($users)) {
                $this->assignRef('users', $users);
                $this->assignRef('subid', $subid);
            }
        }
        $this->assignRef('typevaluesFilters', $typevaluesFilters);
        $this->assignRef('typevaluesActions', $typevaluesActions);
        $this->assignRef('outputFilters', $outputFilters);
        $this->assignRef('outputActions', $outputActions);
        $this->assignRef('filter', $filter);
        $this->assignRef('triggers', $triggers);
        $doc->addStyleSheet(ACYMAILING_CSS . 'frontendedition.css');
        if (acymailing::level(3) and JRequest::getCmd('tmpl') != 'component') {
            $db->setQuery('SELECT * FROM #__acymailing_filter ORDER BY `published` DESC, `filid` DESC');
            $filters = $db->loadObjectList();
            $this->assignRef('toggleClass', acymailing::get('helper.toggle'));
            $this->assignRef('filters', $filters);
        }
    }
Esempio n. 13
0
 function listing()
 {
     $app =& JFactory::getApplication();
     $pageInfo = null;
     JHTML::_('behavior.modal', 'a.modal');
     $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName() . $this->getLayout();
     $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'a.senddate', 'cmd');
     $pageInfo->filter->order->dir = $app->getUserStateFromRequest($paramBase . ".filter_order_Dir", 'filter_order_Dir', 'desc', 'word');
     $pageInfo->search = $app->getUserStateFromRequest($paramBase . ".search", 'search', '', 'string');
     $pageInfo->search = JString::strtolower($pageInfo->search);
     $pageInfo->limit->value = $app->getUserStateFromRequest($paramBase . '.list_limit', 'limit', $app->getCfg('list_limit'), 'int');
     $pageInfo->limit->start = $app->getUserStateFromRequest($paramBase . '.limitstart', 'limitstart', 0, 'int');
     $database =& JFactory::getDBO();
     $filters = array();
     if (!empty($pageInfo->search)) {
         $searchVal = '\'%' . $database->getEscaped($pageInfo->search, true) . '%\'';
         $filters[] = implode(" LIKE {$searchVal} OR ", $this->searchFields) . " LIKE {$searchVal}";
     }
     $query = 'SELECT SQL_CALC_FOUND_ROWS ' . implode(' , ', $this->selectFields);
     $query .= ' FROM ' . acymailing::table('stats') . ' as a';
     $query .= ' LEFT JOIN ' . acymailing::table('mail') . ' as b on a.mailid = b.mailid';
     if (!empty($filters)) {
         $query .= ' WHERE (' . implode(') AND (', $filters) . ')';
     }
     if (!empty($pageInfo->filter->order->value)) {
         $query .= ' ORDER BY ' . $pageInfo->filter->order->value . ' ' . $pageInfo->filter->order->dir;
     }
     $database->setQuery($query, $pageInfo->limit->start, $pageInfo->limit->value);
     $rows = $database->loadObjectList();
     $database->setQuery('SELECT FOUND_ROWS()');
     $pageInfo->elements->total = $database->loadResult();
     if (!empty($pageInfo->search)) {
         $rows = acymailing::search($pageInfo->search, $rows);
     }
     $pageInfo->elements->page = count($rows);
     jimport('joomla.html.pagination');
     $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value);
     acymailing::setTitle(JText::_('GLOBAL_STATISTICS'), 'stats', 'stats');
     $bar =& JToolBar::getInstance('toolbar');
     if (acymailing::level(1)) {
         $bar->appendButton('Link', 'stats', JText::_('CHARTS'), acymailing::completeLink('diagram'));
     }
     JToolBarHelper::spacer();
     JToolBarHelper::spacer();
     JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'stats-listing');
     $bar->appendButton('Link', 'acymailing', JText::_('JOOMEXT_CPANEL'), acymailing::completeLink('dashboard'));
     $this->assignRef('rows', $rows);
     $this->assignRef('pageInfo', $pageInfo);
     $this->assignRef('pagination', $pagination);
 }
Esempio n. 14
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);
 }
Esempio n. 15
0
 function modify()
 {
     $app =& JFactory::getApplication();
     $pathway =& $app->getPathway();
     $document =& JFactory::getDocument();
     $listsClass = acymailing::get('class.list');
     $subscriberClass = acymailing::get('class.subscriber');
     $subscriber = $subscriberClass->identify(true);
     if (empty($subscriber)) {
         $subscription = $listsClass->getLists();
         $subscriber = null;
         $subscriber->html = 1;
         $subscriber->subid = 0;
         $subscriber->key = 0;
         if (!empty($subscription)) {
             foreach ($subscription as $id => $onesub) {
                 $subscription[$id]->status = 1;
             }
         }
         $pathway->addItem(JText::_('SUBSCRIPTION'));
         $document->setTitle(JText::_('SUBSCRIPTION'));
     } else {
         $subscription = $subscriberClass->getSubscription($subscriber->subid);
         $pathway->addItem(JText::_('MODIFY_SUBSCRIPTION'));
         $document->setTitle(JText::_('MODIFY_SUBSCRIPTION'));
     }
     acymailing::initJSStrings();
     if (acymailing::level(1)) {
         $subscription = $listsClass->onlyCurrentLanguage($subscription);
     }
     if (acymailing::level(3)) {
         $fieldsClass = acymailing::get('class.fields');
         $this->assignRef('fieldsClass', $fieldsClass);
         $extraFields = $fieldsClass->getFields('frontcomp', $subscriber);
         $this->assignRef('extraFields', $extraFields);
         $requiredFields = array();
         $validMessages = array();
         foreach ($extraFields as $oneField) {
             if (in_array($oneField->namekey, array('name', 'email'))) {
                 continue;
             }
             if (!empty($oneField->required)) {
                 $requiredFields[] = $oneField->namekey;
                 if (!empty($oneField->options['errormessage'])) {
                     $validMessages[] = addslashes($fieldsClass->trans($oneField->options['errormessage']));
                 } else {
                     $validMessages[] = addslashes(JText::sprintf('FIELD_VALID', $fieldsClass->trans($oneField->fieldname)));
                 }
             }
         }
         if (!empty($requiredFields)) {
             $js = "<!--\r\r\n\t\t\t\tacymailing['reqFieldsComp'] = Array('" . implode("','", $requiredFields) . "');\r\r\n\t\t\t\tacymailing['validFieldsComp'] = Array('" . implode("','", $validMessages) . "');\r\r\n\t\t\t\t//-->";
             $doc =& JFactory::getDocument();
             $doc->addScriptDeclaration($js);
         }
         $my = JFactory::getUser();
         foreach ($subscription as $listid => $oneList) {
             if (!$subscription[$listid]->published) {
                 continue;
             }
             if ($oneList->access_sub == 'all') {
                 continue;
             }
             if ($oneList->access_sub == 'none' or empty($my->id) or empty($my->gid)) {
                 $subscription[$listid]->published = false;
                 continue;
             }
             if (!in_array($my->gid, explode(',', $oneList->access_sub))) {
                 $subscription[$listid]->published = false;
                 continue;
             }
         }
     }
     $displayLists = false;
     for ($i = 0, $a = count($subscription); $i < $a; $i++) {
         if (!empty($subscription[$i]->published) and $subscription[$i]->visible) {
             $displayLists = true;
             break;
         }
     }
     $this->assignRef('status', acymailing::get('type.festatus'));
     $this->assignRef('subscription', $subscription);
     $this->assignRef('subscriber', $subscriber);
     $this->assignRef('displayLists', $displayLists);
     $this->assignRef('config', acymailing::config());
 }
Esempio n. 16
0
 function cron()
 {
     $time = time();
     $config = acymailing::config();
     $firstMessage = JText::sprintf('CRON_TRIGGERED', acymailing::getDate(time()));
     $this->messages[] = $firstMessage;
     if ($this->report) {
         acymailing::display($firstMessage, 'info');
     }
     if ($config->get('cron_next') > $time) {
         if ($config->get('cron_next') > $time + $config->get('cron_frequency')) {
             $newConfig = null;
             $newConfig->cron_next = $time + $config->get('cron_frequency');
             $config->save($newConfig);
         }
         $nottime = JText::sprintf('CRON_NEXT', acymailing::getDate($config->get('cron_next')));
         $this->messages[] = $nottime;
         if ($this->report) {
             acymailing::display($nottime, 'info');
         }
         $sendreport = $config->get('cron_sendreport');
         if ($sendreport == 1) {
             $mailer = acymailing::get('helper.mailer');
             $mailer->report = false;
             $mailer->autoAddUser = true;
             $mailer->checkConfirmField = false;
             $mailer->addParam('report', implode('<br/>', $this->messages));
             $mailer->addParam('detailreport', '');
             $receiverString = $config->get('cron_sendto');
             $receivers = explode(',', $receiverString);
             if (!empty($receivers)) {
                 foreach ($receivers as $oneReceiver) {
                     $mailer->sendOne('report', $oneReceiver);
                 }
             }
         }
         return false;
     }
     $queueHelper = acymailing::get('helper.queue');
     if (!$config->get('li')) {
         exit;
     }
     $newConfig = null;
     $newConfig->cron_next = $config->get('cron_next') + $config->get('cron_frequency');
     if ($newConfig->cron_next <= $time or $newConfig->cron_next > $time + $config->get('cron_frequency')) {
         $newConfig->cron_next = $time + $config->get('cron_frequency');
     }
     $newConfig->cron_last = $time;
     $userHelper = acymailing::get('helper.user');
     $newConfig->cron_fromip = $userHelper->getIP();
     $config->save($newConfig);
     if ($config->get('queue_type') != 'manual') {
         $queueHelper->report = false;
         $queueHelper->process();
         if (!empty($queueHelper->messages)) {
             $this->detailMessages = array_merge($this->detailMessages, $queueHelper->messages);
         }
         $this->messages[] = JText::sprintf('CRON_PROCESS', $queueHelper->nbprocess, $queueHelper->successSend, $queueHelper->errorSend);
         if (!empty($queueHelper->stoptime) and time() > $queueHelper->stoptime) {
             return true;
         }
     }
     if (acymailing::level(2)) {
         $autonewsHelper = acymailing::get('helper.autonews');
         $resultAutonews = $autonewsHelper->generate();
         if (!empty($autonewsHelper->messages)) {
             $this->messages = array_merge($this->messages, $autonewsHelper->messages);
         }
         if (!empty($queueHelper->stoptime) and time() > $queueHelper->stoptime) {
             return true;
         }
     }
     if (acymailing::level(1)) {
         $schedHelper = acymailing::get('helper.schedule');
         $resultSchedule = $schedHelper->queueScheduled();
         if ($resultSchedule) {
             if (!empty($schedHelper->nbNewsletterScheduled)) {
                 $this->messages[] = JText::sprintf('NB_SCHED_NEWS', $schedHelper->nbNewsletterScheduled);
             }
             $this->detailMessages = array_merge($this->detailMessages, $schedHelper->messages);
         }
         if (!empty($queueHelper->stoptime) and time() > $queueHelper->stoptime) {
             return true;
         }
     }
     if ($config->get('cron_plugins_next') < $time) {
         $newConfig = null;
         $newConfig->cron_plugins_next = $config->get('cron_plugins_next', 0) + 86400;
         if ($newConfig->cron_plugins_next <= $time) {
             $newConfig->cron_plugins_next = $time + 86400;
         }
         $config->save($newConfig);
         JPluginHelper::importPlugin('acymailing');
         $dispatcher =& JDispatcher::getInstance();
         $resultsTrigger = $dispatcher->trigger('onAcyCronTrigger');
         $this->messages = array_merge($this->messages, $resultsTrigger);
         if (!empty($queueHelper->stoptime) and time() > $queueHelper->stoptime) {
             return true;
         }
     }
     if (acymailing::level(3) && $config->get('auto_bounce', 0) && $time > (int) $config->get('auto_bounce_next', 0) && (empty($queueHelper->stoptime) || time() < $queueHelper->stoptime - 5)) {
         $newConfig = null;
         $newConfig->auto_bounce_next = $time + (int) $config->get('auto_bounce_frequency', 0);
         $newConfig->auto_bounce_last = $time;
         $config->save($newConfig);
         $bounceClass = acymailing::get('helper.bounce');
         $bounceClass->report = false;
         $newConfig = null;
         if ($bounceClass->init() && $bounceClass->connect()) {
             $nbMessages = $bounceClass->getNBMessages();
             $this->messages[] = JText::sprintf('NB_MAIL_MAILBOX', $nbMessages);
             $newConfig->auto_bounce_report = JText::sprintf('NB_MAIL_MAILBOX', $nbMessages);
             $this->detailMessages[] = JText::sprintf('NB_MAIL_MAILBOX', $nbMessages);
             if (!empty($nbMessages)) {
                 $bounceClass->handleMessages();
                 $bounceClass->close();
             }
             $this->detailMessages = array_merge($this->detailMessages, $bounceClass->messages);
         } else {
             $bounceErrors = $bounceClass->getErrors();
             $newConfig->auto_bounce_report = implode('<br/>', $bounceErrors);
             $this->messages = array_merge($this->messages, $bounceErrors);
         }
         $config->save($newConfig);
         if (!empty($queueHelper->stoptime) and time() > $queueHelper->stoptime) {
             return true;
         }
     }
     return true;
 }
Esempio n. 17
0
 function preview()
 {
     $app =& JFactory::getApplication();
     $mailid = acymailing::getCID('mailid');
     $mailerHelper = acymailing::get('helper.mailer');
     $mail = $mailerHelper->load($mailid);
     $user =& JFactory::getUser();
     $userClass = acymailing::get('class.subscriber');
     $receiver = $userClass->get($user->email);
     $mail->sendHTML = true;
     $mailerHelper->dispatcher->trigger('acymailing_replaceusertagspreview', array(&$mail, &$receiver));
     if (!empty($mail->altbody)) {
         $mail->altbody = $mailerHelper->textVersion($mail->altbody, false);
     }
     $listmailClass = acymailing::get('class.listmail');
     $lists = $listmailClass->getReceivers($mail->mailid, true, false);
     $receiversClass = acymailing::get('type.testreceiver');
     $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName();
     $infos = null;
     $infos->receiver_type = $app->getUserStateFromRequest($paramBase . ".receiver_type", 'receiver_type', '', 'string');
     $infos->test_html = $app->getUserStateFromRequest($paramBase . ".test_html", 'test_html', 1, 'int');
     $infos->test_email = $app->getUserStateFromRequest($paramBase . ".test_email", 'test_email', '', 'string');
     acymailing::setTitle(JText::_('PREVIEW') . ' : ' . $mail->subject, $this->icon, $this->ctrl . '&task=preview&mailid=' . $mailid);
     $bar =& JToolBar::getInstance('toolbar');
     if ($this->type == 'news') {
         if (acymailing::level(1)) {
             if ($mail->published == 2) {
                 JToolBarHelper::custom('unschedule', 'unschedule', '', JText::_('UNSCHEDULE'), false);
             } else {
                 $bar->appendButton('Popsched', acymailing::completeLink("send&task=scheduleready&mailid=" . $mailid, true));
             }
         }
         $bar->appendButton('Popup', 'send', JText::_('SEND'), acymailing::completeLink("send&task=sendready&mailid=" . $mailid, true));
         JToolBarHelper::divider();
     }
     JToolBarHelper::custom(JText::_('EDIT'), 'edit', '', JText::_('EDIT'), false);
     JToolBarHelper::cancel('cancel', JText::_('CLOSE'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', $this->ctrl . '-preview');
     $this->assignRef('lists', $lists);
     $this->assignRef('infos', $infos);
     $this->assignRef('receiverClass', $receiversClass);
     $this->assignRef('mail', $mail);
 }
Esempio n. 18
0
 function form()
 {
     $subid = acymailing::getCID('subid');
     if (!empty($subid)) {
         $subscriberClass = acymailing::get('class.subscriber');
         $subscriber = $subscriberClass->getFull($subid);
         $subscription = $subscriberClass->getSubscription($subid);
     } else {
         $listType = acymailing::get('class.list');
         $subscription = $listType->getLists();
         $subscriber = null;
         $subscriber->created = time();
         $subscriber->html = 1;
         $subscriber->confirmed = 1;
         $subscriber->blocked = 0;
         $subscriber->accept = 1;
         $subscriber->enabled = 1;
         $iphelper = acymailing::get('helper.user');
         $subscriber->ip = $iphelper->getIP();
     }
     if (acymailing::level(3)) {
         $fieldsClass = acymailing::get('class.fields');
         $this->assignRef('fieldsClass', $fieldsClass);
         $this->assignRef('extraFields', $fieldsClass->getFields('backend', $subscriber));
     }
     acymailing::setTitle(JText::_('USER'), 'user', 'subscriber&task=edit&subid=' . $subid);
     $bar =& JToolBar::getInstance('toolbar');
     if (!empty($subid) && acymailing::level(2)) {
         $bar->appendButton('Popup', 'send', JText::_('SEND'), acymailing::completeLink("send&task=addqueue&subid=" . $subid, true));
         JToolBarHelper::divider();
     }
     if (!empty($subscriber->userid)) {
         $bar->appendButton('Link', 'edit', JText::_('EDIT_JOOMLA_USER'), 'index.php?option=com_users&task=edit&cid[]=' . $subscriber->userid);
         JToolBarHelper::spacer();
     }
     JToolBarHelper::save();
     JToolBarHelper::apply();
     JToolBarHelper::cancel();
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'subscriber-form');
     $filters = null;
     $quickstatusType = acymailing::get('type.statusquick');
     $filters->statusquick = $quickstatusType->display('statusquick');
     $this->assignRef('subscriber', $subscriber);
     $this->assignRef('subscription', $subscription);
     $this->assignRef('filters', $filters);
     $this->assignRef('statusType', acymailing::get('type.status'));
 }
Esempio n. 19
0
 function onAfterStoreUser($user, $isnew, $success, $msg)
 {
     if ($success === false or empty($user['email'])) {
         return false;
     }
     if (!(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_acymailing' . DS . 'helpers' . DS . 'helper.php')) {
         return true;
     }
     if (!isset($this->params)) {
         $plugin =& JPluginHelper::getPlugin('system', 'regacymailing');
         $this->params = new JParameter($plugin->params);
     }
     $config = acymailing::config();
     $joomUser = null;
     $joomUser->email = trim(strip_tags($user['email']));
     if (!empty($user['name'])) {
         $joomUser->name = trim(strip_tags($user['name']));
     }
     if (empty($user['block'])) {
         $joomUser->confirmed = 1;
     }
     $joomUser->enabled = 1 - (int) $user['block'];
     $joomUser->userid = $user['id'];
     $userClass = acymailing::get('class.subscriber');
     if (!$isnew and !empty($this->oldUser['email']) and $user['email'] != $this->oldUser['email']) {
         $joomUser->subid = $userClass->subid($this->oldUser['email']);
     }
     if (empty($joomUser->subid)) {
         $joomUser->subid = $userClass->subid($joomUser->userid);
     }
     $userClass->checkVisitor = false;
     $userClass->sendConf = false;
     if (isset($joomUser->email)) {
         $userHelper = acymailing::get('helper.user');
         if (!$userHelper->validEmail($joomUser->email)) {
             return true;
         }
     }
     $subid = $userClass->save($joomUser);
     if ($isnew || empty($joomUser->subid)) {
         $listsToSubscribe = $config->get('autosub', 'None');
         $currentSubscription = $userClass->getSubscriptionStatus($subid);
         $config = acymailing::config();
         $listsClass = acymailing::get('class.list');
         $allLists = $listsClass->getLists('listid');
         if (acymailing::level(1)) {
             $allLists = $listsClass->onlyCurrentLanguage($allLists);
         }
         $visiblelistschecked = JRequest::getVar('acysub', array(), '', 'array');
         $acySubHidden = JRequest::getString('acysubhidden');
         if (!empty($acySubHidden)) {
             $visiblelistschecked = array_merge($visiblelistschecked, explode(',', $acySubHidden));
         }
         if (empty($visiblelistschecked) and !empty($_SESSION['acysub'])) {
             $visiblelistschecked = $_SESSION['acysub'];
             unset($_SESSION['acysub']);
         }
         $listsArray = array();
         if (strpos($listsToSubscribe, ',') or is_numeric($listsToSubscribe)) {
             $listsArrayParam = explode(',', $listsToSubscribe);
             foreach ($allLists as $oneList) {
                 if ($oneList->published and in_array($oneList->listid, $visiblelistschecked) || in_array($oneList->listid, $listsArrayParam)) {
                     $listsArray[] = $oneList->listid;
                 }
             }
         } elseif (strtolower($listsToSubscribe) == 'all') {
             foreach ($allLists as $oneList) {
                 if ($oneList->published) {
                     $listsArray[] = $oneList->listid;
                 }
             }
         } elseif (!empty($visiblelistschecked)) {
             foreach ($allLists as $oneList) {
                 if ($oneList->published and in_array($oneList->listid, $visiblelistschecked)) {
                     $listsArray[] = $oneList->listid;
                 }
             }
         }
         $statusAdd = (empty($joomUser->enabled) or empty($joomUser->confirmed) and $config->get('require_confirmation', false)) ? 2 : 1;
         $addlists = array();
         if (!empty($listsArray)) {
             foreach ($listsArray as $idOneList) {
                 if (!isset($currentSubscription[$idOneList])) {
                     $addlists[$statusAdd][] = $idOneList;
                 }
             }
         }
         if (!empty($addlists)) {
             $listsubClass = acymailing::get('class.listsub');
             if (!empty($user['gid'])) {
                 $listsubClass->gid = $user['gid'];
             }
             if (!empty($user['groups'])) {
                 $listsubClass->gid = $user['groups'];
             }
             $listsubClass->addSubscription($subid, $addlists);
         }
     } else {
         if (!empty($this->oldUser['block']) and !empty($joomUser->confirmed)) {
             $userClass->confirmSubscription($subid);
         }
     }
     return true;
 }
Esempio n. 20
0
 function onAfterRoute()
 {
     if (empty($_POST['option']) or empty($_POST['page']) or $_POST['option'] != 'com_virtuemart' or !in_array($_POST['page'], array('account.index', 'checkout.index'))) {
         return;
     }
     if (!isset($this->params)) {
         $plugin =& JPluginHelper::getPlugin('system', 'vmacymailing');
         $this->params = new JParameter($plugin->params);
     }
     $subscribeField = $this->params->get('checkfield', 'user_email');
     $emailValue = JRequest::getString('email');
     $subscribeValue = $subscribeField == 'user_email' ? $emailValue : JRequest::getString($subscribeField);
     if (empty($subscribeValue) or empty($emailValue) or in_array(strtolower($subscribeValue), array('no', 'none', 'nein', 'non'))) {
         return;
     }
     if (!(include_once rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'components' . DS . 'com_acymailing' . DS . 'helpers' . DS . 'helper.php')) {
         return;
     }
     $user = null;
     $user->email = trim(strip_tags($emailValue));
     $userHelper = acymailing::get('helper.user');
     if (!$userHelper->validEmail($user->email)) {
         return;
     }
     $firstName = JRequest::getString('first_name', '');
     $middleName = JRequest::getString('middle_name', '');
     $lastName = JRequest::getString('last_name', '');
     $user->name = '';
     if (!empty($firstName)) {
         $user->name .= $firstName . ' ';
     }
     if (!empty($middleName)) {
         $user->name .= $middleName . ' ';
     }
     if (!empty($lastName)) {
         $user->name .= $lastName;
     }
     $user->name = trim($user->name);
     if ($this->params->get('subconf', 'default') == 'yes') {
         $user->confirmed = 1;
     }
     $userClass = acymailing::get('class.subscriber');
     $userClass->checkVisitor = false;
     $userClass->sendConf = false;
     if ($this->params->get('sendconf', 'no') == 'yes') {
         $userClass->sendConf = true;
     }
     $user_id = JRequest::getInt('user_id');
     if (!empty($user_id)) {
         $user->userid = $user_id;
         $user->subid = $userClass->subid($user_id);
     }
     $subid = $userClass->save($user);
     if (empty($subid)) {
         return;
     }
     $listsToSubscribe = $this->params->get('lists', 'all');
     $config = acymailing::config();
     $listsClass = acymailing::get('class.list');
     $allLists = $listsClass->getLists('listid');
     if (acymailing::level(1)) {
         $allLists = $listsClass->onlyCurrentLanguage($allLists);
     }
     $listsArray = array();
     if (strpos($listsToSubscribe, ',') or is_numeric($listsToSubscribe)) {
         $listsArrayParam = explode(',', $listsToSubscribe);
         foreach ($allLists as $oneList) {
             if ($oneList->published and in_array($oneList->listid, $listsArrayParam)) {
                 $listsArray[] = $oneList->listid;
             }
         }
     } elseif (strtolower($listsToSubscribe) == 'all') {
         foreach ($allLists as $oneList) {
             if ($oneList->published) {
                 $listsArray[] = $oneList->listid;
             }
         }
     }
     if (empty($listsArray)) {
         return;
     }
     $inserteduser = $userClass->get($subid);
     $currentSubscription = $userClass->getSubscriptionStatus($subid);
     $statusAdd = (empty($inserteduser->confirmed) and $config->get('require_confirmation', false)) ? 2 : 1;
     $addlists = array();
     foreach ($listsArray as $idOneList) {
         if (!isset($currentSubscription[$idOneList])) {
             $addlists[$statusAdd][] = $idOneList;
         }
     }
     if (!empty($addlists)) {
         $listsubClass = acymailing::get('class.listsub');
         $listsubClass->addSubscription($subid, $addlists);
     }
 }
Esempio n. 21
0
 function _handleError()
 {
     $this->finish = true;
     $message = JText::_('SEND_STOPED', true);
     $message .= '<br/>';
     $message .= JText::_('SEND_KEPT_ALL', true);
     $message .= '<br/>';
     if ($this->report) {
         if (empty($this->successSend) and empty($this->start)) {
             $message .= JText::_('SEND_CHECKONE', true);
             $message .= '<br/>';
             $message .= JText::_('SEND_ADVISE_LIMITATION', true);
         } else {
             $message .= JText::_('SEND_REFUSE', true);
             $message .= '<br/>';
             if (!acymailing::level(1)) {
                 $message .= JText::_('SEND_CONTINUE_COMMERCIAL', true);
             } else {
                 $message .= JText::_('SEND_CONTINUE_AUTO', true);
             }
         }
     }
     $this->_display($message);
 }
Esempio n. 22
0
    function form()
    {
        $listid = acymailing::getCID('listid');
        $listClass = acymailing::get('class.list');
        if (!empty($listid)) {
            $list = $listClass->get($listid);
        } else {
            $list->published = 0;
            $list->visible = 1;
            $list->description = '';
            $user = JFactory::getUser();
            $list->creatorname = $user->name;
            $list->access_manage = 'none';
            $list->access_sub = 'all';
            $list->languages = 'all';
            $list->color = '#3366ff';
        }
        $editor = acymailing::get('helper.editor');
        $editor->name = 'editor_description';
        $editor->content = $list->description;
        $editor->setDescription();
        $script = 'function submitbutton(pressbutton){
						if (pressbutton == \'cancel\') {
							submitform( pressbutton );
							return;
						}';
        $script .= 'if(window.document.getElementById("name").value.length < 2){alert(\'' . JText::_('ENTER_NAME', true) . '\'); return false;}';
        $script .= $editor->jsCode();
        $script .= 'submitform( pressbutton );}';
        $script .= 'function affectUser(idcreator,name){
			window.document.getElementById("creatorname").innerHTML = name;
			window.document.getElementById("listcreator").value = idcreator;
		}';
        $doc =& JFactory::getDocument();
        $doc->addScriptDeclaration($script);
        $colorBox = acymailing::get('type.color');
        acymailing::setTitle(JText::_('LIST'), 'categories', 'list&task=edit&listid=' . $listid);
        $bar =& JToolBar::getInstance('toolbar');
        JToolBarHelper::save();
        JToolBarHelper::apply();
        JToolBarHelper::cancel();
        JToolBarHelper::divider();
        $bar->appendButton('Pophelp', 'list-form');
        $this->assignRef('colorBox', $colorBox);
        if (acymailing::level(1)) {
            $this->assignRef('welcomeMsg', acymailing::get('type.welcome'));
            $this->assignRef('languages', acymailing::get('type.listslanguages'));
        }
        $this->assignRef('unsubMsg', acymailing::get('type.unsub'));
        $this->assignRef('list', $list);
        $this->assignRef('editor', $editor);
    }
Esempio n. 23
0
            $text = JText::_('USER_REFUSE', true);
            echo JHTML::_('tooltip', $text, '', 'warning.png');
        }
        if ($map == 'email') {
            echo '<a href="' . acymailing::completeLink('subscriber&task=edit&subid=' . $row->subid) . '">';
        }
        echo $row->{$map};
        if ($map == 'email') {
            echo '</a>';
        }
        ?>

						</td>
					<?php 
    }
    if (acymailing::level(2)) {
        include dirname(__FILE__) . DS . 'level2.' . basename(__FILE__);
    }
    ?>

					<td align="center">
						<?php 
    echo acymailing::getDate($row->created);
    ?>

					</td>
					<td align="center">
						<?php 
    if (empty($row->username)) {
        echo $this->joomGroups[(int) $row->gid]->name;
    } else {
Esempio n. 24
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);
 }
Esempio n. 25
0
			<?php 
echo acymailing::tooltip(JText::_('SHOW_FILTER_DESC'), JText::_('SHOW_FILTER'), '', JText::_('SHOW_FILTER'));
?>

			</td>
			<td>
				<?php 
echo JHTML::_('select.booleanlist', "config[show_filter]", '', $this->config->get('show_filter', 1));
?>

			</td>
		</tr>
		</table>
	</fieldset>
	<?php 
if (acymailing::level(3)) {
    include dirname(__FILE__) . DS . 'interface_enterprise.php';
}
?>

	<fieldset class="adminform">
		<legend><?php 
echo JText::_('FOOTER');
?>
</legend>
		<table class="admintable" cellspacing="1">
			<tr>
				<td class="key" >
				<?php 
echo acymailing::tooltip(JText::_('SHOW_FOOTER_DESC'), JText::_('SHOW_FOOTER'), '', JText::_('SHOW_FOOTER'));
?>
Esempio n. 26
0
 function mass($add = true)
 {
     $app =& JFactory::getApplication();
     $importLists = JRequest::getVar('importlists', array(), '', 'array');
     $allLists = array();
     foreach ($importLists as $listid => $value) {
         if (!empty($value)) {
             $allLists[] = intval($listid);
         }
     }
     if (empty($allLists)) {
         $app->enqueueMessage('Please select at least one list', 'notice');
         return false;
     }
     $filters = JRequest::getVar('filter', array(), '', 'array');
     $allFilters = array();
     foreach ($filters['type'] as $filterNum => $filterType) {
         if (empty($filterType)) {
             continue;
         }
         if ($filterType == 'acymailingfield') {
             $operator = $filters[$filterNum]['acymailingfield_operator'];
             $value = $filters[$filterNum]['acymailingfield_value'];
             $column = $filters[$filterNum]['acymailingfield'];
             if ($column == 'created' and !is_numeric($value)) {
                 $value = strtotime($value);
             }
             $allFilters['a'] = true;
             $allFilters['filters'][] = $this->_convertQuery('a', $column, $operator, $value);
             continue;
         }
         if ($filterType == 'cbfield') {
             $operator = $filters[$filterNum]['cbfield_operator'];
             $value = $filters[$filterNum]['cbfield_value'];
             $column = $filters[$filterNum]['cbfield'];
             $allFilters['d'] = true;
             $allFilters['filters'][] = $this->_convertQuery('d', $column, $operator, $value);
             continue;
         }
         if ($filterType == 'joomlafield') {
             $operator = $filters[$filterNum]['joomlafield_operator'];
             $value = $filters[$filterNum]['joomlafield_value'];
             $column = $filters[$filterNum]['joomlafield'];
             if (in_array($column, array('registerDate', 'lastvisitDate'))) {
                 $value = strftime('%Y-%m-%d %H:%M:%S', strtotime($value));
             }
             $allFilters['c'] = true;
             $allFilters['filters'][] = $this->_convertQuery('c', $column, $operator, $value);
             continue;
         }
         if ($filterType == 'group') {
             $operator = '=';
             $value = $filters[$filterNum]['group'];
             $column = 'gid';
             $allFilters['c'] = true;
             $allFilters['filters'][] = $this->_convertQuery('c', $column, $operator, $value);
             continue;
         }
         if ($filterType == 'list') {
             if ($filters[$filterNum]['list_status'] == -2) {
                 $query = 'b' . $filterNum . '.listid IS NULL';
             } else {
                 $query = 'b' . $filterNum . '.status = ' . $this->db->Quote($filters[$filterNum]['list_status']);
             }
             $allFilters['b'][$filterNum] = ' AND b' . $filterNum . '.listid = ' . $this->db->Quote($filters[$filterNum]['list']);
             $allFilters['filters'][] = $query;
             continue;
         }
         if (acymailing::level(3)) {
             include dirname(__FILE__) . DS . 'import_enterprise.php';
         }
     }
     $subdate = time();
     foreach ($allLists as $listid) {
         if ($add) {
             $query = 'INSERT IGNORE INTO ' . acymailing::table('listsub') . ' (listid,subid,subdate,status) ';
             $query .= 'SELECT ' . $listid . ',a.subid,' . $subdate . ',1 FROM ' . acymailing::table('subscriber') . ' as a ';
         } else {
             $query = 'DELETE d.* FROM ' . acymailing::table('listsub') . ' as d ';
             $query .= 'LEFT JOIN ' . acymailing::table('subscriber') . ' as a on a.subid = d.subid ';
             $allFilters['filters']['listdelete'] = 'd.listid = ' . $listid;
         }
         if (!empty($allFilters['c'])) {
             $query .= 'LEFT JOIN ' . acymailing::table('users', false) . ' as c on a.userid = c.id ';
         }
         if (!empty($allFilters['b'])) {
             foreach ($allFilters['b'] as $as => $conditions) {
                 $query .= 'LEFT JOIN ' . acymailing::table('listsub') . ' as b' . $as . ' ON a.subid = b' . $as . '.subid ' . $conditions;
             }
         }
         if (!empty($allFilters['d'])) {
             $query .= 'LEFT JOIN ' . acymailing::table('comprofiler', false) . ' as d on a.userid = d.id ';
         }
         if (!empty($allFilters['filters'])) {
             $query .= ' WHERE (' . implode(') AND (', $allFilters['filters']) . ')';
         }
         $this->db->setQuery($query);
         $this->db->query();
         $nbsubscribed = $this->db->getAffectedRows();
         if ($add) {
             $app->enqueueMessage(JText::sprintf('IMPORT_SUBSCRIBE_CONFIRMATION', $nbsubscribed, $listid));
         } else {
             $app->enqueueMessage(JText::sprintf('IMPORT_REMOVE', $nbsubscribed, $listid));
         }
     }
     return true;
 }
Esempio n. 27
0
					<?php 
echo acymailing::tooltip(JText::_('ALLOWED_FILES_DESC'), JText::_('ALLOWED_FILES'), '', JText::_('ALLOWED_FILES'));
?>
				</td>
				<td>
					<input class="inputbox" type="text" name="config[allowedfiles]" size="60" value="<?php 
echo strtolower(str_replace(' ', '', $this->config->get('allowedfiles')));
?>
" />
				</td>
			</tr>
			<tr>
				<td class="key">
					<?php 
echo acymailing::tooltip(JText::_('UPLOAD_FOLDER_DESC'), JText::_('UPLOAD_FOLDER'), '', JText::_('UPLOAD_FOLDER'));
?>
				</td>
				<td>
					<input class="inputbox" type="text" name="config[uploadfolder]" size="60" value="<?php 
echo $this->config->get('uploadfolder');
?>
" />
				</td>
			</tr>
		</table>
	</fieldset>
<?php 
if (acymailing::level(1)) {
}
?>
</div>
Esempio n. 28
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;
 }
Esempio n. 29
0
    echo '</p>';
}
if (!empty($fieldsClass->excludeValue)) {
    $js = "\n" . "<!--" . "\n" . "acymailing['excludeValues" . $formName . "'] = Array();";
    foreach ($fieldsClass->excludeValue as $namekey => $value) {
        $js .= "\n" . "acymailing['excludeValues" . $formName . "']['" . $namekey . "'] = '" . $value . "';";
    }
    $js .= "\n" . "//-->";
    $doc =& JFactory::getDocument();
    if ($params->get('includejs', 'header') == 'header') {
        $doc->addScriptDeclaration($js);
    } else {
        echo "<script type=\"text/javascript\">\r\n\t\t\t\t\t\t\t\t\t{$js}\r\n\t\t\t\t\t\t\t\t\t</script>";
    }
}
if (empty($identifiedUser->userid) and $config->get('captcha_enabled') and acymailing::level(1)) {
    ?>
					<?php 
    echo '<p class="onefield" id="field_captcha_' . $formName . '">';
    echo '<img class="captchaimagemodule" src="' . rtrim(JURI::root(), '/') . '/index.php?option=com_acymailing&amp;ctrl=captcha&amp;acyformname=' . $formName . '&amp;val=' . rand(0, 10000) . '" alt="captcha" />';
    ?>
					<span><input id="user_captcha_<?php 
    echo $formName;
    ?>
" class="inputbox captchafield" type="text" name="acycaptcha" size="5" /></span>
					</p>
				<?php 
}
if ($params->get('showterms', false)) {
    $termsIdContent = $params->get('termscontent', 0);
    if (empty($termsIdContent)) {
Esempio n. 30
0
 function display($tpl = null)
 {
     JHTML::_('behavior.modal', 'a.modal');
     $toggleClass = acymailing::get('helper.toggle');
     $config = acymailing::config();
     $db =& JFactory::getDBO();
     $doc =& JFactory::getDocument();
     $app =& JFactory::getApplication();
     jimport('joomla.filesystem.folder');
     jimport('joomla.filesystem.file');
     $lg =& JFactory::getLanguage();
     $language = $lg->getTag();
     $styleRemind = 'float:right;margin-right:30px;position:relative;';
     $loadLink = '<a onclick="window.document.getElementById(\'acymailing_messages_warning\').style.display = \'none\';return true;" class="modal" rel="{handler: \'iframe\', size:{x:800, y:500}}" href="index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=latest&amp;code=' . $language . '">' . JText::_('LOAD_LATEST_LANGUAGE') . '</a>';
     if (!file_exists(ACYMAILING_ROOT . 'language' . DS . $language . DS . $language . '.com_acymailing.ini')) {
         if ($config->get('errorlanguagemissing', 1)) {
             $notremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('acymailing_messages_warning', 'errorlanguagemissing_0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
             acymailing::display(JText::_('MISSING_LANGUAGE') . ' ' . $loadLink . ' ' . $notremind, 'warning');
         }
     } elseif (version_compare(JText::_('ACY_LANG_VERSION'), $config->get('version'), '<')) {
         if ($config->get('errorlanguageupdate', 1)) {
             $notremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('acymailing_messages_warning', 'errorlanguageupdate_0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
             acymailing::display(JText::_('UPDATE_LANGUAGE') . ' ' . $loadLink . ' ' . $notremind, 'warning');
         }
     }
     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::_('ACY_CLOSE'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'config');
     if (acymailing::isAllowed($config->get('acl_cpanel_manage', 'all'))) {
         $bar->appendButton('Link', 'acymailing', JText::_('ACY_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 = array();
     $mailermethod[] = JHTML::_('select.option', 'phpmail', 'PHP Mail Function');
     $mailermethod[] = JHTML::_('select.option', 'sendmail', 'SendMail');
     $mailermethod[] = JHTML::_('select.option', 'qmail', 'QMail');
     $mailermethod[] = JHTML::_('select.option', 'smtp', 'SMTP Server');
     $js = "function updateMailer(){";
     $js .= "mailermethod = window.document.getElementById('mailer_method').value;";
     $js .= "if(mailermethod == 'phpmail') {window.document.getElementById('smtp_config').style.display = 'none'; window.document.getElementById('sendmail_config').style.display = 'none';}";
     $js .= "if(mailermethod == 'smtp') {window.document.getElementById('smtp_config').style.display = 'block'; window.document.getElementById('sendmail_config').style.display = 'none';}";
     $js .= "if(mailermethod == 'qmail') {window.document.getElementById('smtp_config').style.display = 'none'; window.document.getElementById('sendmail_config').style.display = 'none';}";
     $js .= "if(mailermethod == 'sendmail') {window.document.getElementById('smtp_config').style.display = 'none'; window.document.getElementById('sendmail_config').style.display = 'block';}";
     $js .= '}';
     $js .= 'window.addEvent(\'domready\', function(){ updateMailer(); });';
     $doc->addScriptDeclaration($js);
     $elements->mailer_method = JHTML::_('select.genericlist', $mailermethod, "config[mailer_method]", 'size="1" onchange="updateMailer()"', 'value', 'text', $config->get('mailer_method', 'phpmail'), 'mailer_method');
     $encodingval = array();
     $encodingval[] = JHTML::_('select.option', 'binary', 'Binary');
     $encodingval[] = JHTML::_('select.option', 'quoted-printable', 'Quoted-printable');
     $encodingval[] = JHTML::_('select.option', '7bit', '7 Bit');
     $encodingval[] = JHTML::_('select.option', '8bit', '8 Bit');
     $encodingval[] = JHTML::_('select.option', 'base64', 'Base 64');
     $elements->encoding_format = JHTML::_('select.genericlist', $encodingval, "config[encoding_format]", 'size="1"', 'value', 'text', $config->get('encoding_format', 'base64'));
     $charset = acymailing::get('type.charset');
     $elements->charset = $charset->display("config[charset]", $config->get('charset', 'UTF-8'));
     $securedVals = array();
     $securedVals[] = JHTML::_('select.option', '', '- - -');
     $securedVals[] = JHTML::_('select.option', 'ssl', 'SSL');
     $securedVals[] = JHTML::_('select.option', 'tls', 'TLS');
     $elements->smtp_secured = JHTML::_('select.genericlist', $securedVals, "config[smtp_secured]", 'size="1"', 'value', 'text', $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));
     $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));
     $elements->show_footer = JHTML::_('select.booleanlist', "config[show_footer]", '', $config->get('show_footer', 1));
     if (acymailing::level(1)) {
         $elements->forward = JHTML::_('select.booleanlist', "config[forward]", '', $config->get('forward', false));
     } else {
         $elements->forward = acymailing::getUpgradeLink('essential');
     }
     if (acymailing::level(1)) {
         $js = "function updateDKIM(dkimval){if(dkimval == 1){document.getElementById('dkim_config').style.display = 'block';}else{document.getElementById('dkim_config').style.display = 'none';}}\r\n\t\t\t\t\twindow.addEvent('load', function(){ updateDKIM(" . $config->get('dkim', 0) . ");});";
         $doc->addScriptDeclaration($js);
         if (function_exists('openssl_sign')) {
             $elements->dkim = JHTML::_('select.booleanlist', "config[dkim]", 'onclick="updateDKIM(this.value)"', $config->get('dkim', 0));
         } else {
             $elements->dkim = '<input type="hidden" name="config[dkim]" value="0" />PHP Extension openssl not enabled';
         }
         $js = "function updateQueueProcess(newvalue){";
         $js .= "if(newvalue == 'onlyauto') {window.document.getElementById('method_auto').style.display = ''; window.document.getElementById('method_manual').style.display = 'none';}";
         $js .= "if(newvalue == 'auto') {window.document.getElementById('method_auto').style.display = ''; window.document.getElementById('method_manual').style.display = '';}";
         $js .= "if(newvalue == 'manual') {window.document.getElementById('method_auto').style.display = 'none'; window.document.getElementById('method_manual').style.display = '';}";
         $js .= '}';
         $js .= 'window.addEvent(\'domready\', function(){ updateQueueProcess(\'' . $config->get('queue_type', 'auto') . '\'); });';
         $doc->addScriptDeclaration($js);
         $queueType = array();
         $queueType[] = JHTML::_('select.option', 'onlyauto', JText::_('AUTO_ONLY'));
         $queueType[] = JHTML::_('select.option', 'auto', JText::_('AUTO_MAN'));
         $queueType[] = JHTML::_('select.option', 'manual', JText::_('MANUAL_ONLY'));
         $elements->queue_type = JHTML::_('select.radiolist', $queueType, "config[queue_type]", 'onclick="updateQueueProcess(this.value);"', 'value', 'text', $config->get('queue_type', 'auto'));
     } else {
         $elements->dkim = acymailing::getUpgradeLink('essential');
     }
     $delayTypeManual = acymailing::get('type.delay');
     $elements->queue_pause = $delayTypeManual->display('config[queue_pause]', $config->get('queue_pause'), 0);
     $delayTypeAuto = acymailing::get('type.delay');
     $elements->cron_frequency = $delayTypeAuto->display('config[cron_frequency]', $config->get('cron_frequency'), 0);
     $cssval = array('css_frontend' => 'component', 'css_module' => 'module', 'css_backend' => 'component');
     foreach ($cssval as $configval => $type) {
         $myvals = array();
         $myvals[] = JHTML::_('select.option', '', JText::_('ACY_NONE'));
         $regex = '^' . $type . '_([-_a-z0-9]*)\\.css$';
         $allCSSFiles = JFolder::files(ACYMAILING_MEDIA . 'css', $regex);
         foreach ($allCSSFiles as $oneFile) {
             preg_match('#' . $regex . '#i', $oneFile, $results);
             $myvals[] = JHTML::_('select.option', $results[1], $results[1]);
         }
         $js = 'onchange="updateCSSLink(\'' . $configval . '\',\'' . $type . '\',this.value);"';
         $currentVal = $config->get($configval, 'default');
         $aStyle = empty($currentVal) ? 'style="display:none"' : '';
         $elements->{$configval} = JHTML::_('select.genericlist', $myvals, 'config[' . $configval . ']', 'class="inputbox" size="1" ' . $js, 'value', 'text', $config->get($configval, 'default'), $configval . '_choice');
         $linkEdit = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=css&amp;file=' . $type . '_' . $config->get($configval, 'default') . '&amp;var=' . $configval;
         $elements->{$configval} .= ' <a id="' . $configval . '_link" ' . $aStyle . ' class="modal" title="' . JText::_('ACY_EDIT', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><img class="icon16" src="' . ACYMAILING_IMAGES . 'icons/icon-16-edit.png" alt="' . JText::_('ACY_EDIT', true) . '"/></a>';
     }
     $js = "function updateCSSLink(myid,type,newval){\r\n\t\t\tif(newval){document.getElementById(myid+'_link').style.display = '';}else{document.getElementById(myid+'_link').style.display = 'none'}\r\n\t\t\tdocument.getElementById(myid+'_link').href = 'index.php?option=com_acymailing&tmpl=component&ctrl=file&task=css&file='+type+'_'+newval+'&var='+myid;\r\n\t\t}";
     $doc->addScriptDeclaration($js);
     $elements->colortype = acymailing::get('type.color');
     $elements->use_sef = JHTML::_('select.booleanlist', "config[use_sef]", '', $config->get('use_sef', 0));
     if (version_compare(JVERSION, '1.6.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';
     } else {
         $query = 'SELECT a.alias as name, a.id as itemid, b.title  FROM `#__menu` as a LEFT JOIN `#__menu_types` as b on a.menutype = b.menutype WHERE a.client_id=0 AND a.parent_id != 0 ORDER BY b.title ASC,a.ordering ASC';
     }
     $db->setQuery($query);
     $joomMenus = $db->loadObjectList();
     $menuvalues = array();
     $menuvalues[] = JHTML::_('select.option', '0', JText::_('ACY_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'));
     $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>';
     $path = JLanguage::getLanguagePath(JPATH_ROOT);
     $dirs = JFolder::folders($path);
     foreach ($dirs as $dir) {
         if (strlen($dir) != 5) {
             continue;
         }
         $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 . '" class="icon16" src="' . ACYMAILING_IMAGES . 'icons/icon-16-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 . '" class="icon16"  src="' . ACYMAILING_IMAGES . 'icons/icon-16-add.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->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'));
     $delayType4 = acymailing::get('type.delay');
     $elements->queue_delay = $delayType4->display('config[queue_delay]', $config->get('queue_delay', 0), 2);
     if (version_compare(JVERSION, '1.6.0', '<')) {
         $db->setQuery("SELECT name,published,id FROM `#__plugins` WHERE `folder` = 'acymailing' AND `element` NOT LIKE 'plg%' ORDER BY published DESC, ordering ASC");
     } else {
         $db->setQuery("SELECT name,enabled as published,extension_id as id FROM `#__extensions` WHERE `folder` = 'acymailing' AND `type`= 'plugin' AND `element` NOT LIKE 'plg%' ORDER BY enabled DESC, ordering ASC");
     }
     $plugins = $db->loadObjectList();
     if (version_compare(JVERSION, '1.6.0', '<')) {
         $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");
     } else {
         $db->setQuery("SELECT name,enabled as published ,extension_id as id FROM `#__extensions` WHERE (`folder` != 'acymailing' OR `element` LIKE 'plg%') AND `type` = 'plugin' AND (`name` LIKE '%acymailing%' OR `element` LIKE '%acymailing%') ORDER BY enabled 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);
     jimport('joomla.html.pane');
     $tabs =& JPane::getInstance('tabs');
     $this->assignRef('tabs', $tabs);
     $this->assignRef('toggleClass', $toggleClass);
     $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', 'icon-32-help.png');
     foreach ($images as $oneImage) {
         $to = ACYMAILING_MEDIA . 'images' . DS . 'icons' . DS . $oneImage;
         if (version_compare(JVERSION, '1.6.0', '<')) {
             $from = rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'templates' . DS . 'khepri' . DS . 'images' . DS . 'toolbar' . DS . $oneImage;
         } else {
             $from = rtrim(JPATH_ADMINISTRATOR, DS) . DS . 'templates' . DS . 'bluestork' . DS . 'images' . DS . 'toolbar' . DS . $oneImage;
         }
         if (!file_exists($to) and file_exists($from)) {
             if (!JFile::copy($from, $to)) {
                 acymailing::display('Could not copy the file from ' . $from . ' to ' . $to, 'warning');
             }
         }
     }
     if (version_compare(JVERSION, '1.6.0', '<') and !file_exists(rtrim(JPATH_SITE, DS) . DS . 'plugins' . DS . 'acymailing' . DS . 'tagsubscriber.php') or !version_compare(JVERSION, '1.6.0', '<') and !file_exists(rtrim(JPATH_SITE, DS) . DS . 'plugins' . DS . 'acymailing' . DS . 'tagsubscriber' . DS . 'tagsubscriber.php')) {
         acymailing::display(JText::sprintf('ERROR_PLUGINS', 'href="index.php?option=com_acymailing&amp;ctrl=update&amp;task=install"'), 'warning');
     }
     return parent::display($tpl);
 }