Esempio n. 1
0
 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) . ')';
     }
     $db =& JFactory::getDBO();
     $db->setQuery($query);
     $_SESSION['acymailing']['exportusers'] = $db->loadResultArray();
     $this->setRedirect(acymailing::completeLink('data&task=export&sessionvalues=1', false, true));
 }
Esempio n. 2
0
 function export()
 {
     $listClass = acymailing::get('class.list');
     $db =& JFactory::getDBO();
     $fields = reset($db->getTableFields(acymailing::table('subscriber')));
     acymailing::setTitle(JText::_('ACY_EXPORT'), 'acyexport', 'data&task=export');
     $bar =& JToolBar::getInstance('toolbar');
     JToolBarHelper::custom('doexport', 'acyexport', '', JText::_('ACY_EXPORT'), false);
     $bar->appendButton('Link', 'cancel', JText::_('ACY_CANCEL'), acymailing::completeLink('subscriber'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'data-export');
     $this->assignRef('charset', $charsetType = acymailing::get('type.charset'));
     $this->assignRef('lists', $listClass->getLists());
     $this->assignRef('fields', $fields);
     if (JRequest::getInt('sessionvalues') and !empty($_SESSION['acymailing']['exportusers'])) {
         $i = 1;
         $subids = array();
         foreach ($_SESSION['acymailing']['exportusers'] as $subid) {
             $subids[] = (int) $subid;
             $i++;
             if ($i > 10) {
                 break;
             }
         }
         $db->setQuery('SELECT `name`,`email` FROM `#__acymailing_subscriber` WHERE `subid` IN (' . implode(',', $subids) . ')');
         $users = $db->loadObjectList();
         $this->assignRef('users', $users);
     }
 }
Esempio n. 3
0
 function continuesend()
 {
     $config = acymailing::config();
     $newcrontime = time() + 120;
     if ($config->get('cron_next') < $newcrontime) {
         $newValue = null;
         $newValue->cron_next = $newcrontime;
         $config->save($newValue);
     }
     $mailid = acymailing::getCID('mailid');
     $totalSend = JRequest::getVar('totalsend', 0, '', 'int');
     $alreadySent = JRequest::getVar('alreadysent', 0, '', 'int');
     $helperQueue = acymailing::get('helper.queue');
     $helperQueue->mailid = $mailid;
     $helperQueue->report = true;
     $helperQueue->total = $totalSend;
     $helperQueue->start = $alreadySent;
     $helperQueue->pause = $config->get('queue_pause');
     $helperQueue->process();
     $alreadySent = $alreadySent + $helperQueue->nbprocess;
     if (!$helperQueue->finish) {
         $app =& JFactory::getApplication();
         $app->redirect(acymailing::completeLink('send&task=continuesend&mailid=' . $mailid . '&alreadysent=' . $alreadySent . '&totalsend=' . $totalSend, true, true));
         exit;
     }
     ob_start();
 }
Esempio n. 4
0
 function listing()
 {
     $app =& JFactory::getApplication();
     $pageInfo = null;
     $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName();
     $pageInfo->filter->order->value = $app->getUserStateFromRequest($paramBase . ".filter_order", 'filter_order', 'a.listid', '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);
     $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();
     $filters = array();
     if (!empty($pageInfo->search)) {
         $searchVal = '\'%' . $database->getEscaped($pageInfo->search) . '%\'';
         $filters[] = "a.name LIKE {$searchVal} OR a.description LIKE {$searchVal} OR a.listid LIKE {$searchVal}";
     }
     $filters[] = 'a.type = \'campaign\'';
     if (!empty($selectedCreator)) {
         $filters[] = 'a.userid = ' . $selectedCreator;
     }
     $query = 'SELECT SQL_CALC_FOUND_ROWS 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) . ') ';
     $query .= ' GROUP BY a.listid';
     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);
     $followupClass = acymailing::get('class.listmail');
     if (!empty($rows)) {
         foreach ($rows as $id => $onerow) {
             $rows[$id]->followup = $followupClass->getFollowup($onerow->listid);
         }
     }
     jimport('joomla.html.pagination');
     $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value);
     acymailing::setTitle(JText::_('CAMPAIGN'), 'campaign', 'campaign');
     JToolBarHelper::addNew();
     JToolBarHelper::editList();
     JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS', true));
     JToolBarHelper::divider();
     $bar =& JToolBar::getInstance('toolbar');
     $bar->appendButton('Pophelp', 'campaign-listing');
     $bar->appendButton('Link', 'acymailing', JText::_('JOOMEXT_CPANEL'), acymailing::completeLink('dashboard'));
     $this->assignRef('rows', $rows);
     $this->assignRef('pageInfo', $pageInfo);
     $this->assignRef('pagination', $pagination);
     $this->assignRef('toggleClass', acymailing::get('helper.toggle'));
     $this->assignRef('delay', acymailing::get('type.delaydisp'));
 }
Esempio n. 5
0
 function massremove()
 {
     JRequest::checkToken() or die('Invalid Token');
     $importHelper = acymailing::get('helper.import');
     if (!$importHelper->mass(false)) {
         return $this->addusers();
     }
     $this->setRedirect(acymailing::completeLink('list', false, true));
 }
Esempio n. 6
0
 function doimport()
 {
     JRequest::checkToken() or die('Invalid Token');
     $function = JRequest::getCmd('importfrom');
     $importHelper = acymailing::get('helper.import');
     if (!$importHelper->{$function}()) {
         return $this->import();
     }
     $this->setRedirect(acymailing::completeLink('subscriber', false, true));
 }
Esempio n. 7
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. 8
0
 function update()
 {
     $config = acymailing::config();
     if (!acymailing::isAllowed($config->get('acl_config_manage', 'all'))) {
         acymailing::display(JText::_('ACY_NOTALLOWED'), 'error');
         return false;
     }
     acymailing::setTitle(JText::_('UPDATE_ABOUT'), 'install', 'update');
     $bar =& JToolBar::getInstance('toolbar');
     $bar->appendButton('Link', 'back', JText::_('ACY_CLOSE'), acymailing::completeLink('dashboard'));
     return $this->_iframe(ACYMAILING_UPDATEURL . 'update');
 }
Esempio n. 9
0
 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));
     }
 }
Esempio n. 10
0
 function display($tpl = null)
 {
     global $Itemid;
     $db =& JFactory::getDBO();
     $app =& JFactory::getApplication();
     $document =& JFactory::getDocument();
     $params =& $app->getParams();
     $feedEmail = @$app->getCfg('feed_email') ? $app->getCfg('feed_email') : 'author';
     $siteEmail = $app->getCfg('mailfrom');
     $menus =& JSite::getMenu();
     $menu = $menus->getActive();
     if (empty($menu) and !empty($Itemid)) {
         $menus->setActive($Itemid);
         $menu = $menus->getItem($Itemid);
     }
     $myItem = empty($Itemid) ? '' : '&Itemid=' . $Itemid;
     if (is_object($menu)) {
         jimport('joomla.html.parameter');
         $menuparams = new JParameter($menu->params);
     }
     $listid = acymailing::getCID('listid');
     if (empty($listid) and !empty($menuparams)) {
         $listid = $menuparams->get('listid');
     }
     $document->link = acymailing::completeLink('archive&listid=' . intval($listid));
     $listClass = acymailing::get('class.list');
     if (empty($listid)) {
         return JError::raiseError(404, 'Mailing List not found');
     }
     $oneList = $listClass->get($listid);
     if (empty($oneList->listid)) {
         return JError::raiseError(404, 'Mailing List not found : ' . $listid);
     }
     if (!acymailing::isAllowed($oneList->access_sub) || !$oneList->published || !$oneList->visible) {
         return JError::raiseError(404, JText::_('ACY_NOTALLOWED'));
     }
     $filters = array();
     $filters[] = 'a.type = \'news\'';
     $filters[] = 'a.published = 1';
     $filters[] = 'a.visible = 1';
     $filters[] = 'c.listid = ' . $oneList->listid;
     $query = 'SELECT a.*';
     $query .= ' FROM ' . acymailing::table('listmail') . ' as c';
     $query .= ' LEFT JOIN ' . acymailing::table('mail') . ' as a on a.mailid = c.mailid ';
     $query .= ' WHERE (' . implode(') AND (', $filters) . ')';
     $query .= ' ORDER BY a.senddate DESC, c.mailid DESC';
     $db->setQuery($query, 0, $app->getCfg('feed_limit'));
     $rows = $db->loadObjectList();
     foreach ($rows as $row) {
     }
 }
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;
     $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 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();
 }
Esempio n. 13
0
 function display($tpl = null)
 {
     include ACYMAILING_FRONT . 'inc' . DS . 'openflash' . DS . 'php-ofc-library' . DS . 'open-flash-chart.php';
     $function = $this->getLayout();
     $this->setLayout('diagram');
     if (method_exists($this, $function)) {
         $this->{$function}();
     }
     $filters = null;
     $diagramType = acymailing::get('type.diagram');
     $filters->task = $diagramType->display('task', JRequest::getCmd('task'));
     $this->assignRef('filters', $filters);
     $bar =& JToolBar::getInstance('toolbar');
     $bar->appendButton('Link', 'back', JText::_('GLOBAL_STATISTICS'), acymailing::completeLink('stats'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'diagram-' . JRequest::getCmd('task', 'lists'));
     parent::display($tpl);
 }
Esempio n. 14
0
 function export()
 {
     $selectedMail = JRequest::getInt('filter_mail', 0);
     $selectedUrl = JRequest::getInt('filter_url', 0);
     $filters = array();
     if (!empty($selectedMail)) {
         $filters[] = 'a.mailid = ' . $selectedMail;
     }
     if (!empty($selectedMail)) {
         $filters[] = 'a.urlid = ' . $selectedUrl;
     }
     $query = 'SELECT `subid` FROM `#__acymailing_urlclick` as a ';
     if (!empty($filters)) {
         $query .= ' WHERE (' . implode(') AND (', $filters) . ')';
     }
     $db =& JFactory::getDBO();
     $db->setQuery($query);
     $_SESSION['acymailing']['exportusers'] = $db->loadResultArray();
     $this->setRedirect(acymailing::completeLink('data&task=export&sessionvalues=1', true, true));
 }
Esempio n. 15
0
 function send()
 {
     if (!$this->isAllowed('newsletters', 'send')) {
         return;
     }
     JRequest::checkToken() or die('Invalid Token');
     $mailid = acymailing::getCID('mailid');
     if (empty($mailid)) {
         exit;
     }
     $user =& JFactory::getUser();
     $time = time();
     $queueClass = acymailing::get('class.queue');
     $onlyNew = JRequest::getInt('onlynew');
     $totalSub = $queueClass->queue($mailid, $time, $onlyNew);
     if (empty($totalSub)) {
         acymailing::display(JText::_('NO_RECEIVER'), 'warning');
         return;
     }
     $mailObject = null;
     $mailObject->senddate = $time;
     $mailObject->published = 1;
     $mailObject->mailid = $mailid;
     $mailObject->sentby = $user->id;
     $db =& JFactory::getDBO();
     $db->updateObject(acymailing::table('mail'), $mailObject, 'mailid');
     $config =& acymailing::config();
     $queueType = $config->get('queue_type');
     if ($queueType == 'onlyauto') {
         $messages = array();
         $messages[] = JText::sprintf('ADDED_QUEUE', $totalSub);
         $messages[] = JText::_('AUTOSEND_CONFIRMATION');
         acymailing::display($messages, 'success');
         return;
     } else {
         JRequest::setVar('totalsend', $totalSub);
         $app =& JFactory::getApplication();
         $app->redirect(acymailing::completeLink('send&task=continuesend&mailid=' . $mailid . '&totalsend=' . $totalSub, true, true));
         exit;
     }
 }
Esempio n. 16
0
 function listing()
 {
     $db =& JFactory::getDBO();
     $db->setQuery('SELECT * FROM `#__acymailing_fields` ORDER BY `ordering` ASC');
     $rows = $db->loadObjectList();
     $bar =& JToolBar::getInstance('toolbar');
     JToolBarHelper::addNew();
     JToolBarHelper::editList();
     JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'));
     JToolBarHelper::divider();
     $bar->appendButton('Pophelp', 'fields-listing');
     $bar->appendButton('Link', 'acymailing', JText::_('JOOMEXT_CPANEL'), acymailing::completeLink('dashboard'));
     jimport('joomla.html.pagination');
     $total = count($rows);
     $pagination = new JPagination($total, 0, $total);
     acymailing::setTitle(JText::_('EXTRA_FIELDS'), 'fields', 'fields');
     $this->assignRef('rows', $rows);
     $this->assignRef('toggleClass', acymailing::get('helper.toggle'));
     $this->assignRef('pagination', $pagination);
     $this->assignRef('fieldtype', acymailing::get('type.fields'));
     $this->assignRef('fieldsClass', acymailing::get('class.fields'));
 }
Esempio n. 17
0
$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;
}
?>
</div>
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
					</td>
					<?php 
    foreach ($this->displayFields as $map => $oneField) {
        if ($map == 'html') {
            continue;
        }
        ?>

						<td>
						<?php 
        if ($map == 'name' and empty($row->accept)) {
            $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__);
    }
    ?>
Esempio n. 20
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. 21
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. 22
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. 23
0
    echo "row{$k}";
    ?>
">
					<td align="center">
					<?php 
    echo $this->pagination->getRowOffset($i);
    ?>
					</td>
					<td align="center">
						<?php 
    echo JHTML::_('grid.id', $i, $row->tempid);
    ?>
					</td>
					<td>
						<a href="<?php 
    echo acymailing::completeLink('template&task=edit&cid[]=' . $row->tempid);
    ?>
"><?php 
    echo $row->name;
    ?>
</a>
					</td>
					<td>
						<?php 
    echo acymailing::absoluteURL($row->description);
    ?>
					</td>
					<td class="order">
						<span><?php 
    echo $this->pagination->orderUpIcon($i, $this->order->reverse xor $row->ordering >= @$this->rows[$i - 1]->ordering, $this->order->orderUp, 'Move Up', $this->order->ordering);
    ?>
Esempio n. 24
0
 function setTitle($name, $picture, $link)
 {
     JToolBarHelper::title('<a href="' . acymailing::completeLink($link) . '">' . $name . '</a>', $picture . '.png');
 }
Esempio n. 25
0
 function listing()
 {
     $listid = JRequest::getInt('listid');
     $redirect = empty($listid) ? acymailing::completeLink('lists', false, true) : acymailing::completeLink('archive&listid=' . $listid, false, true);
     $this->setRedirect($redirect);
 }
Esempio n. 26
0
echo $this->pageInfo->filter->order->value;
?>
" />
					<input type="hidden" name="filter_order_Dir" value="<?php 
echo $this->pageInfo->filter->order->dir;
?>
" />
				</form>
			</td>
		</tr>
	</table>
	<?php 
if ($this->access->frontEndManament) {
    ?>
		<span class="acynewbutton"><a href="<?php 
    echo acymailing::completeLink('newsletter&task=add&listid=' . $this->list->listid);
    ?>
" title="<?php 
    echo JText::_('CREATE_EMAIL', true);
    ?>
" ><img class="icon16" src="<?php 
    echo ACYMAILING_IMAGES;
    ?>
icons/icon-16-add.png" alt="<?php 
    echo JText::_('CREATE_EMAIL', true);
    ?>
"/></a></span>
	<?php 
}
?>
</div>
Esempio n. 27
0
            ?>
" <?php 
            echo $check;
            ?>
 value="<?php 
            echo $myListId;
            ?>
"/>
						<label for="acylist_<?php 
            echo $myListId;
            ?>
">
						<?php 
            $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 = '';
                }
                echo acymailing::tooltip($allLists[$myListId]->description, $allLists[$myListId]->name, '', $allLists[$myListId]->name, $archivelink);
            } else {
                if ($params->get('link', 1) and $allLists[$myListId]->visible) {
                    echo '<a href="' . $archivelink . '">';
                }
                echo $allLists[$myListId]->name;
                if ($params->get('link', 1) and $allLists[$myListId]->visible) {
                    echo '</a>';
                }
            }
            ?>
Esempio n. 28
0
 function license()
 {
     $bar =& JToolBar::getInstance('toolbar');
     $bar->appendButton('Link', 'back', 'JavaScript Check', acymailing::completeLink('update&task=licensejs'));
     return $this->_iframe(ACYMAILING_UPDATEURL . 'license');
 }
Esempio n. 29
0
						</a>
						<?php 
    if (!empty($row->nbwait)) {
        echo '&nbsp;&nbsp;';
        ?>
							<?php 
        $title = '(+' . $row->nbwait . ')';
        echo acymailing::tooltip(JText::_('NB_PENDING'), ' ', 'tooltip.png', $title, acymailing::completeLink('subscriber&filter_status=2&filter_lists=' . $row->listid));
        ?>
						<?php 
    }
    ?>
					</td>
					<td align="center">
						<a href="<?php 
    echo acymailing::completeLink('subscriber&filter_status=-1&filter_lists=' . $row->listid);
    ?>
">
						<?php 
    echo $row->nbunsub;
    ?>
						</a>
					</td>
					<td align="center">
						<?php 
    if (!empty($row->userid)) {
        $text = '<b>' . JText::_('JOOMEXT_NAME') . ' : </b>' . $row->creatorname;
        $text .= '<br/><b>' . JText::_('ACY_USERNAME') . ' : </b>' . $row->username;
        $text .= '<br/><b>' . JText::_('JOOMEXT_EMAIL') . ' : </b>' . $row->email;
        $text .= '<br/><b>' . JText::_('ACY_ID') . ' : </b>' . $row->userid;
        echo acymailing::tooltip($text, $row->creatorname, 'tooltip.png', $row->creatorname, 'index.php?option=com_users&task=edit&eid[]=' . $row->userid);
Esempio n. 30
0
 function listing()
 {
     $app =& JFactory::getApplication();
     $pageInfo = null;
     $config = acymailing::config();
     $paramBase = ACYMAILING_COMPONENT . '.' . $this->getName() . $this->getLayout();
     $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');
     $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();
     if (!empty($pageInfo->search)) {
         $searchVal = '\'%' . $database->getEscaped($pageInfo->search, true) . '%\'';
         $this->filters[] = "a.name LIKE {$searchVal} OR a.description LIKE {$searchVal} OR a.tempid LIKE {$searchVal}";
     }
     $query = 'SELECT ' . implode(',', $this->selection) . ' FROM ' . acymailing::table('template') . ' as a';
     if (!empty($this->filters)) {
         $query .= ' WHERE (' . implode(') AND (', $this->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);
     $this->rows = $database->loadObjectList();
     $queryCount = 'SELECT COUNT(a.tempid) FROM ' . acymailing::table('template') . ' as a';
     if (!empty($this->filters)) {
         $queryCount .= ' WHERE (' . implode(') AND (', $this->filters) . ')';
     }
     $database->setQuery($queryCount);
     $pageInfo->elements->total = $database->loadResult();
     if (!empty($pageInfo->search)) {
         $rows = acymailing::search($pageInfo->search, $this->rows);
     } else {
         $rows =& $this->rows;
     }
     $pageInfo->elements->page = count($rows);
     jimport('joomla.html.pagination');
     $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value);
     if ($this->button) {
         acymailing::setTitle(JText::_('ACY_TEMPLATES'), 'acytemplate', 'template');
         $bar =& JToolBar::getInstance('toolbar');
         $bar->appendButton('Popup', 'upload', JText::_('IMPORT'), "index.php?option=com_acymailing&ctrl=template&task=upload&tmpl=component");
         JToolBarHelper::divider();
         JToolBarHelper::addNew();
         JToolBarHelper::editList();
         if (acymailing::isAllowed($config->get('acl_templates_delete', 'all'))) {
             JToolBarHelper::deleteList(JText::_('ACY_VALIDDELETEITEMS', true));
         }
         JToolBarHelper::spacer();
         JToolBarHelper::custom('copy', 'copy.png', 'copy.png', JText::_('ACY_COPY'));
         JToolBarHelper::divider();
         $bar->appendButton('Pophelp', 'template-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');
     $order = null;
     $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;
         }
     }
     $this->assignRef('order', $order);
     $this->assignRef('toggleClass', $toggleClass);
     $this->assignRef('rows', $rows);
     $this->assignRef('pageInfo', $pageInfo);
     $this->assignRef('pagination', $pagination);
 }