function listing() { $app = JFactory::getApplication(); $config = acymailing_config(); if (!class_exists('plgSystemAcymailingClassMail')) { $app->enqueueMessage('AcyMailing can customize some Joomla messages. If you want to do this, please first <a href="index.php?option=com_acymailing&ctrl=cpanel">enable the plugin acymailingclassmail</a>', 'notice'); } $pageInfo = new stdClass(); $pageInfo->filter = new stdClass(); $pageInfo->filter->order = new stdClass(); $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName(); $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'mailid', 'cmd'); $pageInfo->filter->order->dir = $app->getUserStateFromRequest($paramBase . ".filter_order_Dir", 'filter_order_Dir', 'desc', 'word'); $db = JFactory::getDBO(); $query = 'SELECT mailid, subject, alias, fromname, published, fromname, fromemail, replyname, replyemail FROM #__acymailing_mail WHERE `type` = ' . $db->Quote($this->type); if (!empty($pageInfo->filter->order->value)) { $query .= ' ORDER BY ' . $pageInfo->filter->order->value . ' ' . $pageInfo->filter->order->dir; } $db->setQuery($query); $rows = $db->loadObjectList(); acymailing_setTitle(JText::_($this->nameListing), $this->icon, $this->ctrl); $bar = JToolBar::getInstance('toolbar'); JToolBarHelper::custom('preview', 'acypreview', '', JText::_('ACY_PREVIEW'), true); JToolBarHelper::editList(); JToolBarHelper::deleteList(JText::_('ACY_VALIDDELETEITEMS')); JToolBarHelper::divider(); $bar->appendButton('Pophelp', $this->doc); $bar->appendButton('Link', 'acymailing', JText::_('ACY_CPANEL'), acymailing_completeLink('dashboard')); $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('pageInfo', $pageInfo); $this->assign('config', $config); $this->assign('rows', $rows); }
function export() { $selectedMail = JRequest::getInt('filter_mail', 0); $selectedStatus = JRequest::getString('filter_status', ''); $filters = array(); if (!empty($selectedMail)) { $filters[] = 'a.mailid = ' . $selectedMail; } if (!empty($selectedStatus)) { if ($selectedStatus == 'bounce') { $filters[] = 'a.bounce > 0'; } elseif ($selectedStatus == 'open') { $filters[] = 'a.open > 0'; } elseif ($selectedStatus == 'notopen') { $filters[] = 'a.open < 1'; } elseif ($selectedStatus == 'failed') { $filters[] = 'a.fail > 0'; } } $query = 'SELECT `subid` FROM `#__acymailing_userstats` as a '; if (!empty($filters)) { $query .= ' WHERE (' . implode(') AND (', $filters) . ')'; } $currentSession =& JFactory::getSession(); $currentSession->set('acyexportquery', $query); $this->setRedirect(acymailing_completeLink('data&task=export&sessionquery=1', false, true)); }
function update() { $config = acymailing_config(); if (!acymailing_isAllowed($config->get('acl_config_manage', 'all'))) { acymailing_display(JText::_('ACY_NOTALLOWED'), 'error'); return false; } acymailing_setTitle(JText::_('UPDATE_ABOUT'), 'acyupdate', 'update'); $bar =& JToolBar::getInstance('toolbar'); $bar->appendButton('Link', 'back', JText::_('ACY_CLOSE'), acymailing_completeLink('dashboard')); return $this->_iframe(ACYMAILING_UPDATEURL . 'update'); }
function export() { if (!$this->isAllowed('subscriber', 'export')) { return; } $cids = JRequest::getVar('cid'); if (!empty($cids)) { $_SESSION['acymailing']['exportusers'] = $cids; $this->setRedirect(acymailing_completeLink('data&task=export&sessionvalues=1', false, true)); } else { $this->setRedirect(acymailing_completeLink('data&task=export', false, true)); } }
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; $mailClass = acymailing_get('helper.mailer'); $mailClass->loadedToSend = false; $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 = new stdClass(); $receiver->name = JText::_('VISITOR'); } $oneMail->sendHTML = true; $mailClass->dispatcher->trigger('acymailing_replaceusertags', array(&$oneMail, &$receiver, false)); $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)); } }
function doimport() { if (!$this->isAllowed('subscriber', 'import')) { return; } JRequest::checkToken() or die('Invalid Token'); $function = JRequest::getCmd('importfrom'); $importHelper = acymailing_get('helper.import'); if (!$importHelper->{$function}()) { return $this->import(); } $app = JFactory::getApplication(); $this->setRedirect(acymailing_completeLink($app->isAdmin() ? 'subscriber' : 'frontsubscriber', false, true)); }
function export(){ $selectedMail = JRequest::getInt('filter_mail',0); $selectedUrl = JRequest::getInt('filter_url',0); $filters = array(); if(!empty($selectedMail)) $filters[] = 'urlclick.mailid = '.$selectedMail; if(!empty($selectedUrl)) $filters[] = 'urlclick.urlid = '.$selectedUrl; $query = 'FROM `#__acymailing_urlclick` as urlclick JOIN `#__acymailing_subscriber` as s ON s.subid = urlclick.subid JOIN `#__acymailing_url` as url ON url.urlid = urlclick.urlid'; if(!empty($filters)) $query .= ' WHERE ('.implode(') AND (',$filters).')'; $currentSession = JFactory::getSession(); $currentSession->set('acyexportquery',$query); $app = JFactory::getApplication(); $app->redirect(acymailing_completeLink(($app->isAdmin()?'':'front').'data&task=export&sessionquery=1',true,true)); }
function subscribe() { $user = JFactory::getUser(); $userClass = acymailing_get('class.subscriber'); if (!empty($user->id) and $userClass->identify(true)) { return $this->modify(); } $config = acymailing_config(); $allowvisitor = $config->get('allow_visitor', 1); if (empty($allowvisitor)) { $app = JFactory::getApplication(); $app->enqueueMessage(JText::_('ONLY_LOGGED'), 'notice'); $app->redirect(acymailing_completeLink('lists', false, true)); return; } JRequest::setVar('layout', 'modify'); return parent::display(); }
function send() { if (!$this->isAllowed('newsletters', 'send')) { return; } JRequest::checkToken() or die('Invalid Token'); JRequest::setVar('tmpl', 'component'); $mailid = acymailing_getCID('mailid'); if (empty($mailid)) { exit; } $user = JFactory::getUser(); $time = time(); $queueClass = acymailing_get('class.queue'); $queueClass->onlynew = JRequest::getInt('onlynew'); $queueClass->mindelay = JRequest::getInt('mindelay'); $totalSub = $queueClass->queue($mailid, $time); if (empty($totalSub)) { acymailing_display(JText::_('NO_RECEIVER'), 'warning'); return; } $mailObject = new stdClass(); $mailObject->senddate = $time; $mailObject->published = 1; $mailObject->mailid = $mailid; $mailObject->sentby = $user->id; $db = JFactory::getDBO(); $db->updateObject(acymailing_table('mail'), $mailObject, 'mailid'); $config =& acymailing_config(); $queueType = $config->get('queue_type'); if ($queueType == 'onlyauto') { $messages = array(); $messages[] = JText::sprintf('ADDED_QUEUE', $totalSub); $messages[] = JText::_('AUTOSEND_CONFIRMATION'); acymailing_display($messages, 'success'); return; } else { JRequest::setVar('totalsend', $totalSub); $app = JFactory::getApplication(); $app->redirect(acymailing_completeLink('send&task=continuesend&mailid=' . $mailid . '&totalsend=' . $totalSub, true, true)); exit; } }
function export() { if (!$this->isAllowed('subscriber', 'export')) { return; } $app = JFactory::getApplication(); $cids = JRequest::getVar('cid'); $selectedList = JRequest::getInt('filter_lists'); $_SESSION['acymailing'] = array(); if (!empty($cids) || !empty($selectedList)) { if (!empty($cids)) { $_SESSION['acymailing']['exportusers'] = $cids; } else { $_SESSION['acymailing']['exportlist'] = $selectedList; } $this->setRedirect(acymailing_completeLink(($app->isAdmin() ? '' : 'front') . 'data&task=export&sessionvalues=1', false, true)); } else { $this->setRedirect(acymailing_completeLink(($app->isAdmin() ? '' : 'front') . 'data&task=export', false, true)); } }
function display() { echo '<div ' . (empty($this->topfixed) ? '' : 'id="acymenu_top"') . ' class="acytoolbarmenu donotprint ' . (empty($this->topfixed) ? '' : 'acyaffix-top ') . $this->htmlclass . '" >'; if (!empty($this->title)) { $title = htmlspecialchars($this->title, ENT_COMPAT, 'UTF-8'); if (!empty($this->titleLink)) { $title = '<a style="color:white;" href="' . acymailing_completeLink($this->titleLink) . '">' . $title . '</a>'; } echo '<span class="acytoolbartitle">' . $title . '</span>'; } echo '<div class="acytoolbarmenu_menu">'; echo implode(' ', $this->buttons); echo '</div></div>'; $types = array('acymessagesuccess' => 'success', 'acymessageinfo' => 'info', 'acymessagewarning' => 'warning', 'acymessageerror' => 'error', 'acymessagenotice' => 'notice', 'acymessagemessage' => 'message'); foreach ($types as $key => $type) { if (empty($_SESSION[$key])) { continue; } acymailing_display($_SESSION[$key], $type); unset($_SESSION[$key]); } }
function listing() { $app = JFactory::getApplication(); $pageInfo = new stdClass(); $pageInfo->filter = new stdClass(); $pageInfo->filter->order = new stdClass(); $pageInfo->limit = new stdClass(); $pageInfo->elements = new stdClass(); $config = acymailing_config(); $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName(); $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'a.mailid', '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); $selectedList = $app->getUserStateFromRequest($paramBase . "filter_list", 'filter_list', 0, 'int'); $selectedCreator = $app->getUserStateFromRequest($paramBase . "filter_creator", 'filter_creator', 0, 'int'); $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(); $searchMap = array('a.mailid', 'a.alias', 'a.subject', 'a.fromname', 'a.fromemail', 'a.replyname', 'a.replyemail', 'a.userid', 'b.name', 'b.username', 'b.email'); $filters = array(); if (!empty($pageInfo->search)) { $searchVal = '\'%' . acymailing_getEscaped($pageInfo->search, true) . '%\''; $filters[] = implode(" LIKE {$searchVal} OR ", $searchMap) . " LIKE {$searchVal}"; } $filters[] = 'a.type = \'' . $this->type . '\''; if (!empty($selectedList)) { $filters[] = 'c.listid = ' . $selectedList; } if (!empty($selectedCreator)) { $filters[] = 'a.userid = ' . $selectedCreator; } $selection = array_merge($searchMap, array('a.created', 'a.frequency', 'a.senddate', 'a.published', 'a.type', 'a.visible')); if (empty($selectedList)) { $query = 'SELECT ' . implode(',', $selection) . ' FROM ' . acymailing_table('mail') . ' as a'; $queryCount = 'SELECT COUNT(a.mailid) FROM ' . acymailing_table('mail') . ' as a'; } else { $query = 'SELECT ' . implode(',', $selection) . ' FROM ' . acymailing_table('listmail') . ' as c'; $query .= ' JOIN ' . acymailing_table('mail') . ' as a on a.mailid = c.mailid '; $queryCount = 'SELECT COUNT(c.mailid) FROM ' . acymailing_table('listmail') . ' as c'; $queryCount .= ' JOIN ' . acymailing_table('mail') . ' as a on a.mailid = c.mailid '; } $query .= ' LEFT JOIN ' . acymailing_table('users', false) . ' as b on a.userid = b.id '; $query .= ' WHERE (' . implode(') AND (', $filters) . ')'; if (!empty($pageInfo->filter->order->value)) { $query .= ' ORDER BY ' . $pageInfo->filter->order->value . ' ' . $pageInfo->filter->order->dir; } if (count($filters) > 1) { $queryCount .= ' LEFT JOIN ' . acymailing_table('users', false) . ' as b on a.userid = b.id '; } $queryCount .= ' WHERE (' . implode(') AND (', $filters) . ')'; $database->setQuery($query, $pageInfo->limit->start, $pageInfo->limit->value); $rows = $database->loadObjectList(); if (!empty($pageInfo->search)) { $rows = acymailing_search($pageInfo->search, $rows); } $database->setQuery($queryCount); $pageInfo->elements->total = $database->loadResult(); $pageInfo->elements->page = count($rows); jimport('joomla.html.pagination'); $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value); acymailing_setTitle(JText::_($this->nameListing), $this->icon, $this->ctrl); $bar = JToolBar::getInstance('toolbar'); $buttonPreview = JText::_('ACY_PREVIEW'); if ($this->type == 'autonews') { JToolBarHelper::custom('generate', 'process', '', JText::_('GENERATE'), false); } elseif ($this->type == 'news') { $buttonPreview .= ' / ' . JText::_('SEND'); } JToolBarHelper::custom('preview', 'acypreview', '', $buttonPreview, true); JToolBarHelper::divider(); JToolBarHelper::addNew(); JToolBarHelper::editList(); if (acymailing_isAllowed($config->get('acl_' . $this->aclCat . '_delete', 'all'))) { JToolBarHelper::deleteList(JText::_('ACY_VALIDDELETEITEMS')); } JToolBarHelper::spacer(); JToolBarHelper::custom('copy', 'copy.png', 'copy.png', JText::_('ACY_COPY')); JToolBarHelper::divider(); $bar->appendButton('Pophelp', $this->doc); if (acymailing_isAllowed($config->get('acl_cpanel_manage', 'all'))) { $bar->appendButton('Link', 'acymailing', JText::_('ACY_CPANEL'), acymailing_completeLink('dashboard')); } $filters = new stdClass(); $listmailType = acymailing_get('type.listsmail'); $listmailType->type = $this->type; $mailcreatorType = acymailing_get('type.mailcreator'); $mailcreatorType->type = $this->type; $filters->list = $listmailType->display('filter_list', $selectedList); $filters->creator = $mailcreatorType->display('filter_creator', $selectedCreator); $this->assignRef('filters', $filters); $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('rows', $rows); $this->assignRef('pageInfo', $pageInfo); $this->assignRef('pagination', $pagination); $delay = acymailing_get('type.delaydisp'); $this->assignRef('delay', $delay); $this->assignRef('config', $config); }
function view(){ global $Itemid; $app = JFactory::getApplication(); $document = JFactory::getDocument(); $this->addFeed(); $pathway = $app->getPathway(); $my = JFactory::getUser(); $frontEndManagement = false; $listid = acymailing_getCID('listid'); $values = new stdClass(); $values->suffix = ''; $jsite = JFactory::getApplication('site'); $menus = $jsite->getMenu(); $menu = $menus->getActive(); if(empty($menu) AND !empty($Itemid)){ $menus->setActive($Itemid); $menu = $menus->getItem($Itemid); } if (is_object( $menu )) { jimport('joomla.html.parameter'); $menuparams = new acyParameter( $menu->params ); } if(!empty($menuparams)){ $values->suffix = $menuparams->get('pageclass_sfx',''); } if(empty($listid) && !empty($menuparams)){ $listid = $menuparams->get('listid'); if ($menuparams->get('menu-meta_description')) $document->setDescription($menuparams->get('menu-meta_description')); if ($menuparams->get('menu-meta_keywords')) $document->setMetadata('keywords',$menuparams->get('menu-meta_keywords')); if ($menuparams->get('robots')) $document->setMetadata('robots',$menuparams->get('robots')); if ($menuparams->get('page_title')) acymailing_setPageTitle($menuparams->get('page_title')); } $config = acymailing_config(); $indexFollow = $config->get('indexFollow', ''); $tagIndFol = array(); if(strpos($indexFollow, 'noindex') !== false) $tagIndFol[] = 'noindex'; if(strpos($indexFollow, 'nofollow') !== false) $tagIndFol[] = 'nofollow'; if(!empty($tagIndFol)) $document->setMetadata('robots',implode(',',$tagIndFol)); if(!empty($listid)){ $listClass = acymailing_get('class.list'); $oneList = $listClass->get($listid); if(!empty($oneList->visible) AND $oneList->published AND (empty($menuparams) || !$menuparams->get('listid'))){ $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->id)){ if($oneList->access_manage == 'all' OR acymailing_isAllowed($oneList->access_manage)){ $frontEndManagement = true; } } } } $mailid = JRequest::getString('mailid','nomailid'); if(empty($mailid)){ die('This is a Newsletter-template... and you can not access the online version of a Newsletter-template!<br />Please <a href="administrator/index.php?option=com_acymailing&ctrl=newsletter&task=edit" >create a Newsletter</a> using your template and then try again your "view it online" link!'); exit; } if($mailid == 'nomailid'){ $db = JFactory::getDBO(); $query = 'SELECT m.`mailid` FROM `#__acymailing_list` as l JOIN `#__acymailing_listmail` as lm ON l.listid=lm.listid 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 AND m.`type` = "news" AND l.`type` = "list"'; if(!empty($listid)) $query .= ' AND l.`listid` = '.(int) $listid; $query .= ' ORDER BY m.`senddate` DESC, m.`mailid` DESC LIMIT 1'; $db->setQuery($query); $mailid = $db->loadResult(); } $mailid = intval($mailid); 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(acymailing_isAllowed($alist->access_sub)){ $access_sub = true; break; } } } } $mailClass = acymailing_get('helper.mailer'); $mailClass->loadedToSend = false; $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::getCmd('key'); if(empty($key) OR $key !== $oneMail->key){ $reason = (!$oneMail->published) ? 'Newsletter not published' : (!$oneMail->visible ? 'Newsletter not visible' : (!$access_sub ? 'Access not allowed' : '')); $app->enqueueMessage('You can not have access to this e-mail : '.$reason,'error'); $app->redirect(acymailing_completeLink('lists',false,true)); return false; } } $fshare = ''; if(preg_match('#<img[^>]*id="pictshare"[^>]*>#i',$oneMail->body,$pregres) && preg_match('#src="([^"]*)"#i',$pregres[0],$pict)){ $fshare = $pict[1]; }elseif(preg_match('#<img[^>]*class="[^"]*pictshare[^"]*"[^>]*>#i',$oneMail->body,$pregres) && preg_match('#src="([^"]*)"#i',$pregres[0],$pict)){ $fshare = $pict[1]; }elseif(preg_match('#class="acymailing_content".*(<img[^>]*>)#is',$oneMail->body,$pregres) && preg_match('#src="([^"]*)"#i',$pregres[1],$pict)){ if(strpos($pregres[1],JText::_('JOOMEXT_READ_MORE')) === false) $fshare = $pict[1]; } if(!empty($fshare)){ $document->setMetadata('og:image', $fshare); } $document->setMetadata('og:url',acymailing_frontendLink('index.php?option=com_acymailing&ctrl=archive&task=view&mailid='.$oneMail->mailid,JRequest::getCmd('tmpl') == 'component' ? true : false)); $document->setMetadata('og:title',$oneMail->subject); if(!empty($oneMail->metadesc))$document->setMetadata('og:description',$oneMail->metadesc); $subkeys = JRequest::getString('subid',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) AND !empty($my->email)){ $userClass = acymailing_get('class.subscriber'); $receiver = $userClass->get($my->email); } if(empty($receiver)){ $receiver = new stdClass(); $receiver->name = JText::_('VISITOR'); } $oneMail->sendHTML = true; $mailClass->dispatcher->trigger('acymailing_replaceusertags',array(&$oneMail,&$receiver,false)); $pathway->addItem($oneMail->subject); $document = JFactory::getDocument(); acymailing_setPageTitle($oneMail->subject); if (!empty($oneMail->metadesc)) { $document->setDescription( $oneMail->metadesc ); } if (!empty($oneMail->metakey)) { $document->setMetadata('keywords', $oneMail->metakey); } $this->assignRef('mail',$oneMail); $this->assignRef('frontEndManagement',$frontEndManagement); $this->assignRef('list',$oneList); $config =& acymailing_config(); $this->assignRef('config',$config); $this->assignRef('my',$my); $this->assignRef('receiver',$receiver); $this->assignRef('values',$values); if($oneMail->html){ $templateClass = acymailing_get('class.template'); $templateClass->archiveSection = true; $templateClass->displayPreview('newsletter_preview_area',$oneMail->tempid,$oneMail->subject); } }
<a href="<?php echo acymailing_completeLink('stats&task=detaillisting&filter_status=failed&filter_mail=' . $row->mailid); ?> "> <?php echo $row->fail; ?> </a> </td> <?php if (acymailing_level(3)) { ?> <td align="center" style="text-align:center" > <?php if ($row->type != 'followup') { echo '<a class="modal" href="' . acymailing_completeLink('stats&task=mailinglist&mailid=' . $row->mailid, true) . '" rel="{handler: \'iframe\', size: {x: 800, y: 590}}"><img src="' . ACYMAILING_IMAGES . 'icons/icon-16-stats.png"/></a>'; } ?> </td> <?php } ?> <td align="center" style="text-align:center" > <?php echo $row->mailid; ?> </td> </tr> <?php $k = 1 - $k; }
function form() { $db = JFactory::getDBO(); $config = acymailing_config(); if (JRequest::getVar('task') == 'filterDisplayUsers') { $action = array(); $action['type'] = array('displayUsers'); $action[] = array('displayUsers' => array()); $filterClass = acymailing_get('class.filter'); $filterClass->subid = JRequest::getString('subid'); $filterClass->execute(JRequest::getVar('filter'), $action); if (!empty($filterClass->report)) { $this->assignRef('filteredUsers', $filterClass->report[0]); } } $filid = acymailing_getCID('filid'); $filterClass = acymailing_get('class.filter'); $testFilter = JRequest::getVar('filter'); if (!empty($filid) && empty($testFilter)) { $filter = $filterClass->get($filid); } else { $filter = new stdClass(); $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, 'massactions'))); $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(); foreach ($typesFilters as $oneType => $oneName) { $typevaluesFilters[] = JHTML::_('select.option', $oneType, $oneName); } foreach ($typesActions as $oneType => $oneName) { $typevaluesActions[] = JHTML::_('select.option', $oneType, $oneName); } $js = "function updateAction(actionNum){\r\n\t\t\t\tvar actiontype = window.document.getElementById('actiontype'+actionNum);\r\n\t\t\t\tif(actiontype == 'undefined' || actiontype == null) return;\r\n\t\t\t\tcurrentActionType = actiontype.value;\r\n\t\t\t\tif(!currentActionType){\r\n\t\t\t\t\twindow.document.getElementById('actionarea_'+actionNum).innerHTML = '';\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tactionArea = 'action__num__'+currentActionType;\r\n\t\t\t\twindow.document.getElementById('actionarea_'+actionNum).innerHTML = window.document.getElementById(actionArea).innerHTML.replace(/__num__/g,actionNum);\r\n\t\t\t\tif(typeof(window['onAcyDisplayAction_'+currentActionType]) == 'function') {\r\n\t\t\t\t\ttry{ window['onAcyDisplayAction_'+currentActionType](actionNum); }catch(e){alert('Error in the onAcyDisplayAction_'+currentActionType+' function : '+e); }\r\n\t\t\t\t}\r\n\r\n\t\t\t}"; $js .= "var numActions = 0;\r\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\tvar allactions = document.getElementById('allactions');\r\n\t\t\t\t\tif(allactions != 'undefined' && allactions != null) allactions.appendChild(newdiv); updateAction(numActions); numActions++;\r\n\t\t\t\t}"; $js .= "window.addEvent('domready', function(){ addAcyFilter(); addAction(); });"; if (!ACYMAILING_J16) { $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; }'; } if (ACYMAILING_J30) { $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\treturn false;}\r\n\t\t\t\t\tif(window.document.getElementById('title').value.length < 2){alert('" . JText::_('ENTER_TITLE', true) . "'); return false;}"; } else { $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\treturn false;}\r\n\t\t\t\t\tif(window.document.getElementById('title').value.length < 2){alert('" . JText::_('ENTER_TITLE', true) . "'); return false;}"; } if (!ACYMAILING_J16) { $js .= "submitform( pressbutton );} "; } else { $js .= "Joomla.submitform(pressbutton,document.adminForm);}; "; } $doc->addScriptDeclaration($js); $filterClass->addJSFilterFunctions(); $js = ''; $data = array('addAction' => 'action', 'addAcyFilter' => 'filter'); foreach ($data as $jsFunction => $datatype) { if (empty($filter->{$datatype})) { continue; } foreach ($filter->{$datatype}['type'] as $num => $oneType) { if (empty($oneType)) { continue; } $js .= "while(!document.getElementById('" . $datatype . "type{$num}')){" . $jsFunction . "();}\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) { if (is_array($value)) { $js .= "try{"; foreach ($value as $subkey => $subval) { $js .= "document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}][{$subkey}]'].value = '" . addslashes(str_replace(array("\n", "\r"), ' ', $subval)) . "';"; $js .= "if(document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}][{$subkey}]'].type && document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}][{$subkey}]'].type == 'checkbox'){ document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}][{$subkey}]'].checked = 'checked'; }"; } $js .= "}catch(e){}"; } $myVal = is_array($value) ? implode(',', $value) : $value; $js .= "try{"; $js .= "document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}]'].value = '" . addslashes(str_replace(array("\n", "\r"), ' ', $myVal)) . "';"; $js .= "if(document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}]'].type && document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}]'].type == 'checkbox'){ document.adminForm.elements['" . $datatype . "[{$num}][{$oneType}][{$key}]'].checked = 'checked'; }"; $js .= "}catch(e){}"; } $js .= "\n" . " if(typeof(onAcyDisplay" . ucfirst($datatype) . "_" . $oneType . ") == 'function'){\r\n\t\t\t\t\ttry{ onAcyDisplay" . ucfirst($datatype) . "_" . $oneType . "({$num}); }catch(e){alert('Error in the onAcyDisplay" . ucfirst($datatype) . "_" . $oneType . " function : '+e); }\r\n\t\t\t\t}"; if ($datatype == 'filter') { $js .= " countresults({$num});"; } } } $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'); $listHours = array(); $listMinutess = array(); for ($i = 0; $i < 24; $i++) { $listHours[] = JHTML::_('select.option', $i, $i < 10 ? '0' . $i : $i); } $hours = JHTML::_('select.genericlist', $listHours, 'triggerhours', 'class="inputbox" size="1" style="width:60px;"', 'value', 'text', acymailing_getDate($nextDate, 'H')); for ($i = 0; $i < 60; $i += 5) { $listMinutess[] = JHTML::_('select.option', $i, $i < 10 ? '0' . $i : $i); } $defaultMin = floor(acymailing_getDate($nextDate, 'i') / 5) * 5; $minutes = JHTML::_('select.genericlist', $listMinutess, 'triggerminutes', 'class="inputbox" size="1" style="width:60px;"', 'value', 'text', $defaultMin); $this->assign('hours', $hours); $this->assign('minutes', $minutes); $this->assign('nextDate', !empty($nextDate) ? ' (' . JText::_('NEXT_RUN') . ' : ' . acymailing_getDate($nextDate, '%d %B %Y %H:%M') . ')' : ''); $triggers['allcron'] = JText::_('ACY_EACH_TIME'); $triggers['subcreate'] = JText::_('ON_USER_CREATE'); $triggers['subchange'] = JText::_('ON_USER_CHANGE'); $this->dispatcher->trigger('onAcyDisplayTriggers', array(&$triggers)); $name = empty($filter->name) ? '' : ' : ' . $filter->name; if (JRequest::getCmd('tmpl', '') != 'component') { $acyToolbar = acymailing::get('helper.toolbar'); $acyToolbar->custom('filterDisplayUsers', JText::_('FILTER_VIEW_USERS'), 'user', false, ''); $acyToolbar->custom('process', JText::_('PROCESS'), 'process', false, ''); $acyToolbar->divider(); if (acymailing_level(3)) { $acyToolbar->save(); if (!empty($filter->filid)) { $acyToolbar->link(acymailing_completeLink('filter&task=edit&filid=0'), JText::_('ACY_NEW'), 'new'); } } $acyToolbar->link(acymailing_completeLink('dashboard'), JText::_('ACY_CLOSE'), 'cancel'); $acyToolbar->divider(); $acyToolbar->help('filter'); $acyToolbar->setTitle(JText::_('ACY_MASS_ACTIONS') . $name, 'filter&task=edit&filid=' . $filid); $acyToolbar->display(); } else { acymailing_setPageTitle(JText::_('ACY_MASS_ACTIONS') . $name); } $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); if (JRequest::getCmd('tmpl') == 'component') { $doc->addStyleSheet(ACYMAILING_CSS . 'frontendedition.css?v=' . filemtime(ACYMAILING_MEDIA . 'css' . DS . '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(); $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('filters', $filters); } }
echo '<ul><li>' . implode('</li><li>', $resultFilters) . '</li></ul>'; } } if (!empty($this->lists)) { ?> <div style="text-align:center;font-size:14px;padding-top:10px;margin:10px 30px;border-top: 1px solid #ccc;"> <?php echo JText::sprintf('ABTESTING_SENTTO_NUMBER', '<span style="font-weight:bold;" id="nbtestreceivers" >' . $this->nbTestReceivers . '</span>', '<span style="font-weight:bold;" id="nbreceivers" >' . $this->nbTotalReceivers . '</span>'); ?> </div> <?php } ?> </div> <?php echo JText::sprintf('ABTESTING_MODIFY_RECEIVERS', '<a target="_blank" href="' . acymailing_completeLink(($this->app->isAdmin() ? '' : 'front') . 'newsletter&task=edit&mailid=' . $this->mailsdetails[0]->mailid) . '">' . $this->mailsdetails[0]->subject . '</a>'); ?> </div> <div class="onelineblockoptions"> <?php echo JText::sprintf('ABTESTING_DELAY_ACTION', '<input type="text" id="abTesting_delay" name="abTesting_delay" style="width:20px;" value="' . $this->abTestDetail['delay'] . '">'); ?> <div class="abtesting_actions"> <div style="margin-bottom: 5px;"><input type="radio" name="abTesting_action" id="abTesting_action_manual" value="manual" <?php echo $this->abTestDetail['action'] == 'manual' ? 'checked="checked"' : ''; ?> ><label for="abTesting_action_manual" class="radiobtn"><?php echo JText::_('DO_NOTHING'); ?> </label></div> <div style="margin-bottom: 5px;"><input type="radio" name="abTesting_action" id="abTesting_action_open" value="open" <?php
?> <table width="100%"> <tr> <td width="660" class="familymenu" valign="top"> <?php foreach ($this->tagsfamilies as $id => $oneFamily) { if (empty($oneFamily)) { continue; } if ($oneFamily->function == $this->fctplug) { $help = empty($oneFamily->help) ? '' : $oneFamily->help; $class = ' class="selected" '; } else { $class = ''; } echo '<a' . $class . ' href="' . acymailing_completeLink($this->ctrl . '&task=tag&type=' . $this->type . '&fctplug=' . $oneFamily->function, true) . '" >' . $oneFamily->name . '</a>'; } ?> </td> <?php if (!empty($help) and $this->app->isAdmin()) { ?> <td valign="top"> <div style="float:right;padding-right:5px;" class="toolbar"> <?php include_once ACYMAILING_BUTTON . DS . 'pophelp.php'; $helpButton = new JButtonPophelp(); echo $helpButton->fetchButton('Pophelp', $help); ?> </div> </td>
<div class="acymailing_module<?php echo $params->get('moduleclass_sfx'); ?> " id="acymailing_module_<?php echo $formName; ?> "> <?php if (!empty($mootoolsIntro)) { echo '<p class="acymailing_mootoolsintro">' . $mootoolsIntro . '</p>'; } ?> <div class="acymailing_mootoolsbutton"> <?php $link = "rel=\"{handler: 'iframe', size: {x: " . $params->get('boxwidth', 250) . ", y: " . $params->get('boxheight', 200) . "}}\" class=\"modal acymailing_togglemodule\""; $href = acymailing_completeLink('sub&task=display&autofocus=1&formid=' . $module->id, true); ?> <p><a <?php echo $link; ?> id="acymailing_togglemodule_<?php echo $formName; ?> " href="<?php echo $href; ?> "><?php echo $mootoolsButton; ?> </a></p> </div>
function listing() { JHTML::_('behavior.modal', 'a.modal'); $app = JFactory::getApplication(); $pageInfo = new stdClass(); $pageInfo->filter = new stdClass(); $pageInfo->filter->order = new stdClass(); $pageInfo->limit = new stdClass(); $pageInfo->elements = new stdClass(); $config = acymailing_config(); $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName(); $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', 'asc', 'word'); $pageInfo->search = $app->getUserStateFromRequest($paramBase . ".search", 'search', '', 'string'); $pageInfo->search = JString::strtolower(trim($pageInfo->search)); $selectedMail = $app->getUserStateFromRequest($paramBase . "filter_mail", 'filter_mail', 0, 'int'); $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 = '\'%' . acymailing_getEscaped($pageInfo->search, true) . '%\''; $filters[] = implode(" LIKE {$searchVal} OR ", $this->searchFields) . " LIKE {$searchVal}"; } if (!empty($selectedMail)) { $filters[] = 'a.mailid = ' . intval($selectedMail); } $query = 'SELECT ' . implode(' , ', $this->selectFields); $query .= ' FROM ' . acymailing_table('queue') . ' as a'; $query .= ' JOIN ' . acymailing_table('subscriber') . ' as b on a.subid = b.subid'; $query .= ' JOIN ' . acymailing_table('mail') . ' as c on a.mailid = c.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 . ', a.`subid` ASC'; } if (empty($pageInfo->limit->value)) { $pageInfo->limit->value = 100; } $database->setQuery($query, $pageInfo->limit->start, $pageInfo->limit->value); $rows = $database->loadObjectList(); $pageInfo->elements->page = count($rows); if ($pageInfo->limit->value > $pageInfo->elements->page) { $pageInfo->elements->total = $pageInfo->limit->start + $pageInfo->elements->page; } else { $queryCount = 'SELECT COUNT(a.mailid) FROM ' . acymailing_table('queue') . ' as a'; if (!empty($pageInfo->search)) { $queryCount .= ' JOIN ' . acymailing_table('subscriber') . ' as b on a.subid = b.subid'; $queryCount .= ' JOIN ' . acymailing_table('mail') . ' as c on a.mailid = c.mailid'; } if (!empty($filters)) { $queryCount .= ' WHERE (' . implode(') AND (', $filters) . ')'; } $database->setQuery($queryCount); $pageInfo->elements->total = $database->loadResult(); } jimport('joomla.html.pagination'); $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value); $mailqueuetype = acymailing_get('type.queuemail'); $filtersType = new stdClass(); $filtersType->mail = $mailqueuetype->display('filter_mail', $selectedMail); acymailing_setTitle(JText::_('QUEUE'), 'process', 'queue'); $bar = JToolBar::getInstance('toolbar'); if (acymailing_isAllowed($config->get('acl_queue_process', 'all'))) { $bar->appendButton('Acypopup', 'process', JText::_('PROCESS'), "index.php?option=com_acymailing&ctrl=queue&task=process&tmpl=component&mailid=" . $selectedMail); } if (!empty($pageInfo->elements->total) and acymailing_isAllowed($config->get('acl_queue_delete', 'all'))) { JToolBarHelper::spacer(); JToolBarHelper::spacer(); $bar->appendButton('Confirm', JText::sprintf('CONFIRM_DELETE_QUEUE', $pageInfo->elements->total), 'delete', JText::_('ACY_DELETE'), 'remove', false, false); } JToolBarHelper::divider(); $bar->appendButton('Pophelp', 'queue-listing'); if (acymailing_isAllowed($config->get('acl_cpanel_manage', 'all'))) { $bar->appendButton('Link', 'acymailing', JText::_('ACY_CPANEL'), acymailing_completeLink('dashboard')); } $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('filters', $filtersType); $this->assignRef('rows', $rows); $this->assignRef('pageInfo', $pageInfo); $this->assignRef('pagination', $pagination); }
function listing() { $pageInfo = new stdClass(); $pageInfo->elements = new stdClass(); $app = JFactory::getApplication(); $config = acymailing_config(); $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName(); $pageInfo->filter = new stdClass(); $pageInfo->filter->order = new stdClass(); $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'a.subid', 'cmd'); $pageInfo->filter->order->dir = $app->getUserStateFromRequest($paramBase . ".filter_order_Dir", 'filter_order_Dir', 'desc', 'word'); $selectedList = $app->getUserStateFromRequest($paramBase . "filter_lists", 'filter_lists', 0, 'int'); $selectedStatus = $app->getUserStateFromRequest($paramBase . "filter_status", 'filter_status', 0, 'int'); $selectedStatusList = $app->getUserStateFromRequest($paramBase . "filter_statuslist", 'filter_statuslist', 0, 'int'); $pageInfo->search = $app->getUserStateFromRequest($paramBase . ".search", 'search', '', 'string'); $pageInfo->search = JString::strtolower(trim($pageInfo->search)); $pageInfo->limit = new stdClass(); $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(); $customFields = acymailing_get('class.fields'); $displayFields = array(); $displayFields['name'] = new stdClass(); $displayFields['name']->fieldname = 'JOOMEXT_NAME'; $displayFields['name']->type = 'text'; $displayFields['email'] = new stdClass(); $displayFields['email']->fieldname = 'JOOMEXT_EMAIL'; $displayFields['email']->type = 'text'; $displayFields['html'] = new stdClass(); $displayFields['html']->fieldname = 'RECEIVE_HTML'; $displayFields['html']->type = 'radio'; $filters = array(); if (!empty($pageInfo->search)) { foreach ($displayFields as $fieldname => $onefield) { if ($fieldname == 'html' or in_array('a.' . $fieldname, $this->searchFields) or $onefield->type == 'customtext') { continue; } $this->searchFields[] = 'a.`' . $fieldname . '`'; } if (!is_numeric($pageInfo->search)) { $this->searchFields = array_diff($this->searchFields, array('a.subid', 'a.userid')); } if (strpos($pageInfo->search, '@') !== false) { $this->searchFields = array_diff($this->searchFields, array('a.name', 'b.username')); } $searchVal = '\'%' . acymailing_getEscaped($pageInfo->search, true) . '%\''; $filters[] = implode(" LIKE {$searchVal} OR ", $this->searchFields) . " LIKE {$searchVal}"; } $leftJoinQuery = array(); $joinQuery = array(); if (empty($selectedList) || $selectedStatusList == -2 && $app->isAdmin()) { if (empty($selectedList) && $selectedStatusList == -2) { $selectedStatusList = 0; } $fromQuery = ' FROM ' . acymailing_table('subscriber') . ' as a '; $countField = "a.subid"; $leftJoinQuery[] = acymailing_table('users', false) . ' as b ON a.userid = b.id'; if ($selectedStatusList == -2) { $leftJoinQuery[] = acymailing_table('listsub') . ' as c on a.subid = c.subid AND listid = ' . intval($selectedList); $filters[] = 'c.listid IS NULL'; } } else { $fromQuery = ' FROM ' . acymailing_table('listsub') . ' as c'; $countField = "c.subid"; $joinQuery[] = acymailing_table('subscriber') . ' as a ON a.subid = c.subid'; $leftJoinQuery[] = acymailing_table('users', false) . ' as b ON a.userid = b.id'; $filters[] = 'c.listid = ' . intval($selectedList); if (!in_array($selectedStatusList, array(-1, 1, 2))) { $selectedStatusList = 1; } $filters[] = 'c.status = ' . intval($selectedStatusList); } if ($selectedStatus == 1) { $filters[] = 'a.accept > 0'; } elseif ($selectedStatus == -1) { $filters[] = 'a.accept < 1'; } elseif ($selectedStatus == 2) { $filters[] = 'a.confirmed < 1'; } elseif ($selectedStatus == 3) { $filters[] = 'a.enabled > 0'; } elseif ($selectedStatus == -3) { $filters[] = 'a.enabled < 1'; } $query = 'SELECT ' . implode(',', $this->selectedFields) . $fromQuery; if (!empty($joinQuery)) { $query .= ' JOIN ' . implode(' JOIN ', $joinQuery); } if (!empty($leftJoinQuery)) { $query .= ' LEFT JOIN ' . implode(' LEFT JOIN ', $leftJoinQuery); } 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, empty($pageInfo->limit->value) ? 500 : $pageInfo->limit->value); $rows = $database->loadObjectList('subid'); $pageInfo->elements->page = count($rows); if ($pageInfo->limit->value > $pageInfo->elements->page) { $pageInfo->elements->total = $pageInfo->limit->start + $pageInfo->elements->page; } else { $queryCount = 'SELECT COUNT(' . $countField . ') ' . $fromQuery; if (!empty($pageInfo->search) || !empty($selectedStatus) || $selectedStatusList == -2) { if (!empty($joinQuery)) { $queryCount .= ' JOIN ' . implode(' JOIN ', $joinQuery); } if (!empty($leftJoinQuery)) { $queryCount .= ' LEFT JOIN ' . implode(' LEFT JOIN ', $leftJoinQuery); } } if (!empty($filters)) { $queryCount .= ' WHERE (' . implode(') AND (', $filters) . ')'; } $database->setQuery($queryCount); $pageInfo->elements->total = $database->loadResult(); } if (!empty($rows)) { $database->setQuery('SELECT * FROM `#__acymailing_listsub` WHERE `subid` IN (\'' . implode('\',\'', array_keys($rows)) . '\')'); $subscriptions = $database->loadObjectList(); if (!empty($subscriptions)) { foreach ($subscriptions as $onesub) { $sublistid = $onesub->listid; if (empty($rows[$onesub->subid]->subscription)) { $rows[$onesub->subid]->subscription = new stdClass(); } $rows[$onesub->subid]->subscription->{$sublistid} = $onesub; } } } if (empty($pageInfo->limit->value)) { if ($pageInfo->elements->total > 500) { acymailing_display('We do not want you to crash your server so we displayed only the first 500 users', 'warning'); } $pageInfo->limit->value = 100; } jimport('joomla.html.pagination'); $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value); $filters = new stdClass(); $statusType = acymailing_get('type.statusfilter'); if (!empty($selectedList)) { $statusList = acymailing_get('type.statusfilterlist'); if (!$app->isAdmin()) { array_pop($statusList->values); } $filters->statuslist = $statusList->display('filter_statuslist', $selectedStatusList); } $listsType = acymailing_get('type.lists'); if ($app->isAdmin()) { $filters->lists = $listsType->display('filter_lists', $selectedList); $filters->status = $statusType->display('filter_status', $selectedStatus); } else { $listClass = acymailing_get('class.list'); $allLists = $listClass->getFrontendLists(); if (count($allLists) > 1) { $filters->lists = JHTML::_('select.genericlist', $allLists, "filter_lists", 'class="inputbox" size="1" onchange="document.adminForm.limitstart.value=0;document.adminForm.submit( );"', 'listid', 'name', (int) $selectedList, "filter_lists"); } else { $filters->lists = '<input type="hidden" name="filter_lists" value="' . $selectedList . '"/>'; } $filters->status = '<input type="hidden" name="filter_status" value="0"/>'; } if ($app->isAdmin()) { acymailing_setTitle(JText::_('USERS'), 'acyusers', 'subscriber'); $bar = JToolBar::getInstance('toolbar'); if (acymailing_isAllowed($config->get('acl_lists_filter', 'all'))) { $bar->appendButton('Acyactions'); JToolBarHelper::divider(); } if (acymailing_isAllowed($config->get('acl_subscriber_import', 'all'))) { $bar->appendButton('Link', 'import', JText::_('IMPORT'), acymailing_completeLink('data&task=import&filter_lists=' . $selectedList)); } if (acymailing_isAllowed($config->get('acl_subscriber_export', 'all'))) { JToolBarHelper::custom('export', 'acyexport', '', JText::_('ACY_EXPORT'), false); } JToolBarHelper::divider(); if (acymailing_isAllowed($config->get('acl_subscriber_manage', 'all'))) { JToolBarHelper::addNew(); } if (acymailing_isAllowed($config->get('acl_subscriber_manage', 'all'))) { JToolBarHelper::editList(); } if (acymailing_isAllowed($config->get('acl_subscriber_delete', 'all'))) { JToolBarHelper::deleteList(JText::_('ACY_VALIDDELETEITEMS', true)); } JToolBarHelper::divider(); $bar->appendButton('Pophelp', 'subscriber-listing'); if (acymailing_isAllowed($config->get('acl_cpanel_manage', 'all'))) { $bar->appendButton('Link', 'acymailing', JText::_('ACY_CPANEL'), acymailing_completeLink('dashboard')); } } $lists = $listsType->getData(); $this->assignRef('lists', $lists); $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('rows', $rows); $this->assignRef('filters', $filters); $this->assignRef('pageInfo', $pageInfo); $this->assignRef('pagination', $pagination); $config = acymailing_config(); $this->assignRef('config', $config); $this->assignRef('displayFields', $displayFields); $this->assignRef('customFields', $customFields); }
if ($row->type == 'followup') { $ctrl = 'followup'; } else { $ctrl = 'newsletter'; } echo acymailing_tooltip($text, $row->subject, '', $row->subject, acymailing_completeLink($ctrl . '&task=preview&mailid=' . $row->mailid)); ?> </td> <?php } ?> <td> <?php $text = '<b>' . JText::_('ACY_NAME') . ' : </b>' . $row->name; $text .= '<br /><b>' . JText::_('ACY_ID') . ' : </b>' . $row->subid; $link = $tmpl ? '' : acymailing_completeLink('subscriber&task=edit&subid=' . $row->subid); echo acymailing_tooltip($text, $row->email, '', $row->name . ' ( ' . $row->email . ' )', $link); ?> </td> <td align="center" style="text-align:center" > <?php echo $row->html ? JText::_('HTML') : JText::_('JOOMEXT_TEXT'); ?> </td> <td align="center" style="text-align:center" > <?php echo $row->open; ?> </td> <td align="center" style="text-align:center" > <?php
$k = 0; $my = JFactory::getUser(); foreach ($this->rows as $i => $oneList) { $row =& $this->rows[$i]; $frontEndAccess = true; $frontEndManagement = false; if (!$frontEndManagement and (!$frontEndAccess or !$row->published or !$row->visible)) { continue; } ?> <div class="<?php echo "acymailing_list acymailing_row{$k}"; ?> "> <div class="list_name"><a href="<?php echo acymailing_completeLink('archive&listid=' . $row->listid . '-' . $row->alias . $this->item); ?> "><?php echo $row->name; ?> </a></div> <div class="list_description"><?php echo $row->description; ?> </div> </div> <?php $k = 1 - $k; } if (!empty($this->listsfinaltext)) { echo '<div class="acymailing_listsfinaltext" >' . $this->listsfinaltext . '</div>';
href="<?php echo $urlAbTest; ?> "><?php echo $this->app->isAdmin() ? '<i class="acyicon-ABtesting"></i>' : '<img src="' . ACYMAILING_IMAGES . 'icons/icon-16-acyabtesting.png" alt="' . JText::_('ABTESTING', true) . '"/>'; ?> </a></span> <?php } } ?> </td> <td> <?php $subjectLine = acymailing_dispSearch($row->subject, $this->pageInfo->search); echo acymailing_tooltip('<b>' . JText::_('JOOMEXT_ALIAS') . ' : </b>' . acymailing_dispSearch($row->alias, $this->pageInfo->search), ' ', '', $subjectLine, acymailing_completeLink(($this->app->isAdmin() ? '' : 'front') . 'newsletter&task=edit&mailid=' . $row->mailid)); ?> </td> <td align="center" style="text-align:center"> <?php echo acymailing_getDate($row->senddate); if (!empty($row->countqueued) && acymailing_isAllowed($this->config->get('acl_queue_delete', 'all'))) { ?> <br/> <button class="acymailing_button" onclick="if(confirm('<?php echo str_replace("'", "\\'", JText::sprintf('ACY_VALID_DELETE_FROM_QUEUE', $row->countqueued)); ?> ')){ window.location.href = '<?php echo JURI::base(); ?>
function listing() { $app = JFactory::getApplication(); $config = acymailing_config(); $pageInfo = new stdClass(); $pageInfo->filter = new stdClass(); $pageInfo->filter->order = new stdClass(); $pageInfo->limit = new stdClass(); $pageInfo->elements = new stdClass(); $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName(); $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'a.ordering', 'cmd'); $pageInfo->filter->order->dir = $app->getUserStateFromRequest($paramBase . ".filter_order_Dir", 'filter_order_Dir', 'asc', 'word'); if (strtolower($pageInfo->filter->order->dir) !== 'desc') { $pageInfo->filter->order->dir = 'asc'; } $pageInfo->search = $app->getUserStateFromRequest($paramBase . ".search", 'search', '', 'string'); $pageInfo->search = JString::strtolower(trim($pageInfo->search)); $selectedCreator = $app->getUserStateFromRequest($paramBase . "filter_creator", 'filter_creator', 0, 'int'); $selectedCategory = $app->getUserStateFromRequest($paramBase . "filter_category", 'filter_category', 0, 'string'); $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 = '\'%' . acymailing_getEscaped($pageInfo->search, true) . '%\''; $filters[] = "a.name LIKE {$searchVal} OR a.description LIKE {$searchVal} OR a.listid LIKE {$searchVal}"; } $filters[] = "a.type = 'list'"; if (!empty($selectedCreator)) { $filters[] = 'a.userid = ' . $selectedCreator; } if (!empty($selectedCategory)) { $filters[] = 'a.category = ' . $database->Quote($selectedCategory); } $query = 'SELECT a.*, d.name as creatorname, d.username, d.email'; $query .= ' FROM ' . acymailing_table('list') . ' as a'; $query .= ' LEFT JOIN ' . acymailing_table('users', false) . ' as d on a.userid = d.id'; $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(); $queryCount = 'SELECT COUNT(a.listid) FROM ' . acymailing_table('list') . ' as a'; if (!empty($pageInfo->search)) { $queryCount .= ' LEFT JOIN ' . acymailing_table('users', false) . ' as d on a.userid = d.id'; } $queryCount .= ' WHERE (' . implode(') AND (', $filters) . ')'; $database->setQuery($queryCount); $pageInfo->elements->total = $database->loadResult(); $listids = array(); foreach ($rows as $oneRow) { $listids[] = $oneRow->listid; } $subscriptionresults = array(); if (!empty($listids)) { $querySubscription = 'SELECT count(subid) as total,listid,status FROM ' . acymailing_table('listsub') . ' WHERE listid IN (' . implode(',', $listids) . ') GROUP BY listid, status'; $database->setQuery($querySubscription); $countresults = $database->loadObjectList(); foreach ($countresults as $oneResult) { $subscriptionresults[$oneResult->listid][intval($oneResult->status)] = $oneResult->total; } } foreach ($rows as $i => $oneRow) { $rows[$i]->nbsub = intval(@$subscriptionresults[$oneRow->listid][1]); $rows[$i]->nbunsub = intval(@$subscriptionresults[$oneRow->listid][-1]); $rows[$i]->nbwait = intval(@$subscriptionresults[$oneRow->listid][2]); } $pageInfo->elements->page = count($rows); jimport('joomla.html.pagination'); $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value); acymailing_setTitle(JText::_('LISTS'), 'acylist', 'list'); $bar = JToolBar::getInstance('toolbar'); if (acymailing_isAllowed($config->get('acl_lists_filter', 'all'))) { $bar->appendButton('Link', 'filter', JText::_('ACY_FILTERS'), acymailing_completeLink('filter')); JToolBarHelper::divider(); } if (acymailing_isAllowed($config->get('acl_lists_manage', 'all'))) { JToolBarHelper::addNew(); } if (acymailing_isAllowed($config->get('acl_lists_manage', 'all'))) { JToolBarHelper::editList(); } if (acymailing_isAllowed($config->get('acl_lists_delete', 'all'))) { JToolBarHelper::deleteList(JText::_('ACY_VALIDDELETEITEMS')); } JToolBarHelper::divider(); $bar->appendButton('Pophelp', 'list-listing'); if (acymailing_isAllowed($config->get('acl_cpanel_manage', 'all'))) { $bar->appendButton('Link', 'acymailing', JText::_('ACY_CPANEL'), acymailing_completeLink('dashboard')); } $order = new stdClass(); $order->ordering = false; $order->orderUp = 'orderup'; $order->orderDown = 'orderdown'; $order->reverse = false; if ($pageInfo->filter->order->value == 'a.ordering') { $order->ordering = true; if ($pageInfo->filter->order->dir == 'desc') { $order->orderUp = 'orderdown'; $order->orderDown = 'orderup'; $order->reverse = true; } } $filters = new stdClass(); $listcreatorType = acymailing_get('type.listcreator'); $filters->creator = $listcreatorType->display('filter_creator', $selectedCreator); $listcategoryType = acymailing_get('type.categoryfield'); $filters->category = $listcategoryType->getFilter('list', 'filter_category', $selectedCategory, ' onchange="document.adminForm.submit();"'); $this->assignRef('filters', $filters); $this->assignRef('order', $order); $toggleClass = acymailing_get('helper.toggle'); $this->assignRef('toggleClass', $toggleClass); $this->assignRef('rows', $rows); $this->assignRef('pageInfo', $pageInfo); $this->assignRef('pagination', $pagination); }
?> </button> <?php echo JHTML::_('form.token'); ?> </fieldset> </div> <?php } ?> <?php if ($this->access->frontEndManagement) { ?> <p class="acynewbutton"><a class="btn" href="<?php echo acymailing_completeLink('frontnewsletter&task=add&listid=' . $this->list->listid); ?> " title="<?php echo JText::_('CREATE_NEWSLETTER', true); ?> " ><img class="icon16" src="<?php echo ACYMAILING_IMAGES; ?> icons/icon-16-add.png" alt="<?php echo JText::_('CREATE_NEWSLETTER', true); ?> " /> <?php echo JText::_('CREATE_NEWSLETTER'); ?> </a></p> <?php
<a href="<?php echo acymailing_completeLink('stats&task=detaillisting&filter_status=failed&filter_mail=' . $row->mailid); ?> "> <?php echo $row->fail; ?> </a> </td> <?php if (acymailing_level(3)) { ?> <td align="center" style="text-align:center"> <?php if ($row->type != 'followup') { echo '<a class="modal" href="' . acymailing_completeLink('stats&task=mailinglist&mailid=' . $row->mailid, true) . '" rel="{handler: \'iframe\', size: {x: 800, y: 590}}"><i class="acyicon-statistic"></i></a>'; } ?> </td> <?php } ?> <td align="center" style="text-align:center"> <?php echo $row->mailid; ?> </td> </tr> <?php $k = 1 - $k; }
<?php $k = 0; foreach ($this->filters as $row) { $publishedid = 'published_' . $row->filid; $id = 'filter_' . $row->filid; ?> <tr class="<?php echo "row{$k}"; ?> " id="<?php echo $id; ?> "> <td> <?php echo acymailing_tooltip($row->description, $row->name, '', $row->name, acymailing_completeLink('filter&task=edit&filid=' . $row->filid)); ?> </td> <td align="center" style="text-align:center"> <span id="<?php echo $publishedid; ?> " class="loading"><?php echo $this->toggleClass->toggle($publishedid, (int) $row->published, 'filter'); ?> </span> </td> <td align="center" style="text-align:center"> <?php echo $this->toggleClass->delete($id, $row->filid . '_' . $row->filid, 'filter', true); ?>
height: 400, is3D:true, legendTextStyle: {color:'#333333'}, legend:'none' }; vis.draw(dataTable, options); } google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); </script> <div id="acy_content"> <fieldset class="acyheaderarea"> <div class="toolbar" id="toolbar" style="float: right;"> <table><tr> <td><a href="<?php echo acymailing_completeLink('stats&task=unsubchart&export=1&mailid=' . JRequest::getInt('mailid'), true); ?> " ><span class="icon-32-acyexport" title="<?php echo JText::_('ACY_EXPORT', true); ?> "></span><?php echo JText::_('ACY_EXPORT'); ?> </a></td> <td><a onclick="window.print(); return false;" href="#" ><span class="icon-32-acyprint" title="<?php echo JText::_('ACY_PRINT', true); ?> "></span><?php echo JText::_('ACY_PRINT'); ?> </a></td>
$check = ''; } else { $check = $allLists[$myListId]->status == '-1' ? '' : 'checked="checked"'; } } $listContent .= ' <tr> <td> <label for="acylist_' . $myListId . '"> <input type="checkbox" class="acymailing_checkbox" name="subscription[]" id="acylist_' . $myListId . '" ' . $check . ' value="' . $myListId . '"/>'; $joomItem = $params->get('itemid', 0); if (empty($joomItem)) { $joomItem = $config->get('itemid', 0); } $addItem = empty($joomItem) ? '' : '&Itemid=' . $joomItem; $archivelink = acymailing_completeLink('archive&listid=' . $allLists[$myListId]->listid . '-' . $allLists[$myListId]->alias . $addItem); if ($params->get('overlay', 0)) { if (!$params->get('link', 1) or !$allLists[$myListId]->visible) { $archivelink = ''; } $listContent .= ' ' . acymailing_tooltip($allLists[$myListId]->description, $allLists[$myListId]->name, '', $allLists[$myListId]->name, $archivelink); } else { if ($params->get('link', 1) and $allLists[$myListId]->visible) { $listContent .= ' <a href="' . $archivelink . '" alt="' . $allLists[$myListId]->alias . '"' . (JRequest::getCmd('tmpl') == 'component' ? 'target="_blank"' : '') . ' >'; } $listContent .= $allLists[$myListId]->name; if ($params->get('link', 1) and $allLists[$myListId]->visible) { $listContent .= '</a>'; } } $listContent .= '</label>
$taskGroup = JRequest::getCmd('ctrl', JRequest::getCmd('gtask', 'dashboard')); if ($taskGroup == 'config') { $taskGroup = 'cpanel'; } $config =& acymailing_config(); $doc = JFactory::getDocument(); $app = JFactory::getApplication(); $doc->addStyleSheet(ACYMAILING_CSS . 'backend_default.css?v=' . filemtime(ACYMAILING_MEDIA . 'css' . DS . 'backend_default.css')); $cssBackend = $config->get('css_backend'); if ($cssBackend == 'backend_custom') { $doc->addStyleSheet(ACYMAILING_CSS . 'backend_custom.css?v=' . filemtime(ACYMAILING_MEDIA . 'css' . DS . 'backend_custom.css')); } $doc->addScript(ACYMAILING_JS . 'acymailing_compat.js?v=' . filemtime(ACYMAILING_MEDIA . 'js' . DS . 'acymailing_compat.js')); JHTML::_('behavior.tooltip'); if ($taskGroup != 'update' && !$config->get('installcomplete')) { $url = acymailing_completeLink('update&task=install', false, true); echo "<script>document.location.href='" . $url . "';</script>\n"; echo 'Install not finished... You will be redirected to the second part of the install screen<br />'; echo '<a href="' . $url . '">Please click here if you are not automatically redirected within 3 seconds</a>'; return; } $action = JRequest::getCmd('task', 'listing'); if (empty($action)) { $action = JRequest::getCmd('defaulttask', 'listing'); JRequest::setVar('task', $action); } $menuDisplayed = false; if (!($taskGroup == 'send' && $action == 'send') && $taskGroup !== 'toggle' && JRequest::getString('tmpl') !== 'component' && !in_array($action, array('doexport', 'continuesend', 'load')) && !in_array($taskGroup, array('editor'))) { $menuHelper = acymailing_get('helper.acymenu'); echo '<div id="acyallcontent" class="acyallcontent">'; echo $menuHelper->display($taskGroup);