function listing() { global $Itemid; $app = JFactory::getApplication(); $config = acymailing_config(); $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)) { $this->assign('listsintrotext', $menuparams->get('listsintrotext')); $this->assign('listsfinaltext', $menuparams->get('listsfinaltext')); } $document = JFactory::getDocument(); 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')) { $document->setTitle($menuparams->get('page_title')); } } if (empty($menuparams)) { $pathway = $app->getPathway(); $pathway->addItem(JText::_('MAILING_LISTS')); } $document = JFactory::getDocument(); $link = '&format=feed&limitstart='; if ($config->get('acyrss_format') == 'rss' || $config->get('acyrss_format') == 'both') { $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0'); $document->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs); } if ($config->get('acyrss_format') == 'atom' || $config->get('acyrss_format') == 'both') { $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0'); $document->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs); } $listsClass = acymailing_get('class.list'); $allLists = $listsClass->getLists(); if (acymailing_level(1)) { $allLists = $listsClass->onlyCurrentLanguage($allLists); } $myItem = empty($Itemid) ? '' : '&Itemid=' . $Itemid; $this->assignRef('rows', $allLists); $this->assignRef('item', $myItem); }
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); } }
function display($tpl = null) { global $Itemid; $db = JFactory::getDBO(); $app = JFactory::getApplication(); $doc = JFactory::getDocument(); $jsite = JFactory::getApplication('site'); $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 acyParameter($menu->params); } $listid = acymailing_getCID('listid'); if (empty($listid) and !empty($menuparams)) { $listid = $menuparams->get('listid'); } $doc->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')); } $config = acymailing_config(); $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.' . $config->get('acyrss_order', 'senddate') . ' ' . ($config->get('acyrss_order', 'senddate') == 'subject' ? 'ASC' : 'DESC'); $query .= ' LIMIT ' . $config->get('acyrss_element', '20'); $db->setQuery($query); $rows = $db->loadObjectList(); $doc->title = $config->get('acyrss_name', ''); $doc->description = $config->get('acyrss_description', ''); $receiver = new stdClass(); $receiver->name = JText::_('VISITOR'); $receiver->subid = 0; $mailClass = acymailing_get('helper.mailer'); foreach ($rows as $row) { $mailClass->loadedToSend = false; $oneMail = $mailClass->load($row->mailid); $oneMail->sendHTML = true; $mailClass->dispatcher->trigger('acymailing_replaceusertags', array(&$oneMail, &$receiver, false)); $title = $this->escape($oneMail->subject); $title = html_entity_decode($title); $link = JRoute::_('index.php?option=com_acymailing&ctrl=archive&task=view&listid=' . $oneList->listid . '-' . $oneList->alias . '&mailid=' . $row->mailid . '-' . $row->alias); $author = $oneMail->userid; $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $oneMail->body; $item->date = $oneMail->created; $item->category = $oneMail->type; $item->author = $author; $doc->addItem($item); } }
function modify() { global $Itemid; $app = JFactory::getApplication(); $pathway = $app->getPathway(); $document = JFactory::getDocument(); $values = new stdClass(); $values->show_page_heading = 0; $listsClass = acymailing_get('class.list'); $subscriberClass = acymailing_get('class.subscriber'); $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)) { $this->assign('introtext', $menuparams->get('introtext')); $this->assign('finaltext', $menuparams->get('finaltext')); 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')); } $values->suffix = $menuparams->get('pageclass_sfx', ''); $values->page_heading = ACYMAILING_J16 ? $menuparams->get('page_heading') : $menuparams->get('page_title'); $values->show_page_heading = ACYMAILING_J16 ? $menuparams->get('show_page_heading', 0) : $menuparams->get('show_page_title', 0); } } $subscriber = $subscriberClass->identify(true); if (empty($subscriber)) { $subscription = $listsClass->getLists('listid'); $subscriber = new stdClass(); $subscriber->html = 1; $subscriber->subid = 0; $subscriber->key = 0; if (!empty($subscription)) { foreach ($subscription as $id => $onesub) { $subscription[$id]->status = 1; if (!empty($menuparams) and strtolower($menuparams->get('listschecked', 'all')) != 'all' and !in_array($id, explode(',', $menuparams->get('listschecked', 'all')))) { $subscription[$id]->status = 0; } } } $pathway->addItem(JText::_('SUBSCRIPTION')); if (empty($menu)) { acymailing_setPageTitle(JText::_('SUBSCRIPTION')); } } else { $subscription = $subscriberClass->getSubscription($subscriber->subid, 'listid'); $pathway->addItem(JText::_('MODIFY_SUBSCRIPTION')); if (empty($menu)) { acymailing_setPageTitle(JText::_('MODIFY_SUBSCRIPTION')); } } acymailing_initJSStrings(); if (!empty($menuparams) and strtolower($menuparams->get('lists', 'all')) != 'all') { $visibleLists = strtolower($menuparams->get('lists', 'all')); if ($visibleLists == 'none') { $subscription = array(); } else { $newSubscription = array(); $visiblesListsArray = explode(',', $visibleLists); foreach ($subscription as $id => $onesub) { if (in_array($id, $visiblesListsArray)) { $newSubscription[$id] = $onesub; } } $subscription = $newSubscription; } } if (!acymailing_level(3)) { if (!empty($menuparams) && strtolower($menuparams->get('customfields', 'default')) != 'default') { $fieldsToDisplay = strtolower($menuparams->get('customfields', 'default')); $this->assignRef('fieldsToDisplay', $fieldsToDisplay); } else { $this->assign('fieldsToDisplay', 'default'); } } $displayLists = false; foreach ($subscription as $oneSub) { if (!empty($oneSub->published) and $oneSub->visible) { $displayLists = true; break; } } $this->assignRef('values', $values); $this->assign('status', acymailing_get('type.festatus')); $this->assignRef('subscription', $subscription); $this->assignRef('subscriber', $subscriber); $this->assignRef('displayLists', $displayLists); $this->assign('config', acymailing_config()); }
function display($tpl = null) { global $Itemid; $db = JFactory::getDBO(); $app = JFactory::getApplication(); $doc = JFactory::getDocument(); $feedEmail = @$app->getCfg('feed_email') ? $app->getCfg('feed_email') : 'author'; $siteEmail = $app->getCfg('mailfrom'); $jsite = JFactory::getApplication('site'); $menus = $jsite->getMenu(); $menu = $menus->getActive(); $listed = array(); if (empty($menu) and !empty($Itemid)) { $menus->setActive($Itemid); $menu = $menus->getItem($Itemid); } $myItem = empty($Itemid) ? '' : '&Itemid=' . $Itemid; $selectedLists = 'all'; if (is_object($menu)) { jimport('joomla.html.parameter'); $menuparams = new acyParameter($menu->params); $selectedLists = $menuparams->get('lists', 'all'); } $listsClass = acymailing_get('class.list'); $allLists = $listsClass->getLists('listid', $selectedLists); foreach ($allLists as $oneList) { if ($oneList->published && $oneList->visible && acymailing_isAllowed($oneList->access_sub)) { $listed[] = $oneList->listid; } } $config = acymailing_config(); $filters = array(); $filters[] = 'a.type = \'news\''; $filters[] = 'a.published = 1'; $filters[] = 'a.visible = 1'; $filters[] = 'c.listid IN (' . implode(',', $listed) . ')'; $query = 'SELECT a.*,c.listid'; $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 .= ' GROUP BY a.mailid ORDER BY a.' . $config->get('acyrss_order', 'senddate') . ' ' . ($config->get('acyrss_order', 'senddate') == 'subject' ? 'ASC' : 'DESC'); $query .= ' LIMIT ' . $config->get('acyrss_element', '20'); $db->setQuery($query); $rows = $db->loadObjectList(); $doc->title = $config->get('acyrss_name', ''); $doc->description = $config->get('acyrss_description', ''); $receiver = new stdClass(); $receiver->name = JText::_('VISITOR'); $receiver->subid = 0; $mailClass = acymailing_get('helper.mailer'); $mailClass->loadedToSend = false; foreach ($rows as $row) { $oneMail = $mailClass->load($row->mailid); $oneMail->sendHTML = true; $mailClass->dispatcher->trigger('acymailing_replaceusertags', array(&$oneMail, &$receiver, false)); $title = $this->escape($oneMail->subject); $title = html_entity_decode($title); $oneList = $allLists[$row->listid]; $link = JRoute::_('index.php?option=com_acymailing&ctrl=archive&task=view&listid=' . $oneList->listid . '-' . $oneList->alias . '&mailid=' . $row->mailid . '-' . $row->alias); $description = $oneMail->body; $author = $oneMail->userid; $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = acymailing_getDate($oneMail->senddate, '%Y-%m-%d %H:%M:%S'); $item->category = JText::_('NEWSLETTER'); $doc->addItem($item); } }
function modify(){ global $Itemid; $app = JFactory::getApplication(); $pathway = $app->getPathway(); $document = JFactory::getDocument(); $values = new stdClass(); $values->show_page_heading = 0; $listsClass = acymailing_get('class.list'); $subscriberClass = acymailing_get('class.subscriber'); $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)){ $this->assign('introtext',$menuparams->get('introtext')); $this->assign('finaltext',$menuparams->get('finaltext')); 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')); $values->suffix = $menuparams->get('pageclass_sfx',''); $values->page_heading = ACYMAILING_J16 ? $menuparams->get('page_heading') : $menuparams->get('page_title'); $values->show_page_heading = ACYMAILING_J16 ? $menuparams->get('show_page_heading',0) : $menuparams->get('show_page_title',0); } } $subscriber = $subscriberClass->identify(true); if(empty($subscriber)){ $subscription = $listsClass->getLists('listid'); $subscriber = new stdClass(); $subscriber->html = 1; $subscriber->subid = 0; $subscriber->key = 0; if(!empty($subscription)){ foreach($subscription as $id => $onesub){ $subscription[$id]->status = 1; if(!empty($menuparams) && strtolower($menuparams->get('listschecked','all')) != 'all' && !in_array($id,explode(',',$menuparams->get('listschecked','all')))){ $subscription[$id]->status = 0; } } } $pathway->addItem(JText::_('SUBSCRIPTION')); if(empty($menu)) acymailing_setPageTitle(JText::_('SUBSCRIPTION')); }else{ $subscription = $subscriberClass->getSubscription($subscriber->subid,'listid'); $pathway->addItem(JText::_('MODIFY_SUBSCRIPTION')); if(empty($menu)) acymailing_setPageTitle(JText::_('MODIFY_SUBSCRIPTION')); } acymailing_initJSStrings(); if(!empty($menuparams) AND strtolower($menuparams->get('lists','all')) != 'all'){ $visibleLists = strtolower($menuparams->get('lists','all')); if($visibleLists == 'none') $subscription = array(); else{ $newSubscription = array(); $visiblesListsArray = explode(',',$visibleLists); foreach($subscription as $id => $onesub){ if(in_array($id,$visiblesListsArray)) $newSubscription[$id] = $onesub; } $subscription = $newSubscription; } } if(acymailing_level(1)){ $subscription = $listsClass->onlyCurrentLanguage($subscription); $js = "function refreshCaptcha(){ var captchaLink = document.getElementById('captcha_picture').src; myregexp = new RegExp('val[-=]([0-9]+)'); valToChange=captchaLink.match(myregexp)[1]; document.getElementById('captcha_picture').src = captchaLink.replace(valToChange,valToChange+'0'); }"; $document->addScriptDeclaration( $js ); } if(acymailing_level(3)){ $fieldsClass = acymailing_get('class.fields'); $fieldsClass->origin = 'subform'; if(!empty($menuparams) && strtolower($menuparams->get('customfields','default')) != 'default'){ $extraFields = $fieldsClass->getFields(strtolower($menuparams->get('customfields')),$subscriber); } else{ $extraFields = $fieldsClass->getFields('frontcomp',$subscriber); } $this->assignRef('fieldsClass',$fieldsClass); $this->assignRef('extraFields',$extraFields); $js = $fieldsClass->prepareConditionalDisplay($extraFields, 'data[subscriber]', 'modifyForm'); if(!empty($js)) $document->addScriptDeclaration($js); $requiredFields = array(); $validMessages = array(); $checkFields = array(); $checkFieldsType = array(); $checkFieldsRegexp = array(); $validCheckMsg = array(); foreach($extraFields as $oneField){ if(in_array($oneField->namekey,array('name','email'))) continue; if(!empty($oneField->required)){ $requiredFields[] = $oneField->namekey; if(!empty($oneField->options['errormessage'])){ $validMessages[] = addslashes($fieldsClass->trans($oneField->options['errormessage'])); }else{ $validMessages[] = addslashes(JText::sprintf('FIELD_VALID',$fieldsClass->trans($oneField->fieldname))); } } if($oneField->type == 'text' && !empty($oneField->options['checkcontent'])){ $checkFields[] = $oneField->namekey; $checkFieldsType[] = $oneField->options['checkcontent']; if($oneField->options['checkcontent'] == 'regexp') $checkFieldsRegexp[] = $oneField->options['regexp']; if(!empty($oneField->options['errormessagecheckcontent'])){ $validCheckMsg[] = addslashes($fieldsClass->trans($oneField->options['errormessagecheckcontent'])); }elseif(!empty($oneField->options['errormessage'])){ $validCheckMsg[] = addslashes($fieldsClass->trans($oneField->options['errormessage'])); } else{ $validCheckMsg[] = addslashes(JText::sprintf('FIELD_CONTENT_VALID',$fieldsClass->trans($oneField->fieldname))); } } } $doc = JFactory::getDocument(); if(!empty($requiredFields)){ $js = " acymailing['reqFieldsComp'] = Array('".implode("','",$requiredFields)."'); acymailing['validFieldsComp'] = Array('".implode("','",$validMessages)."'); "; $doc->addScriptDeclaration( $js ); } if(!empty($checkFields)){ $js = "acymailing['checkFields'] = Array('".implode("','",$checkFields)."'); acymailing['checkFieldsType'] = Array('".implode("','",$checkFieldsType)."'); acymailing['validCheckFields'] = Array('".implode("','",$validCheckMsg)."');"; if(!empty($checkFieldsRegexp)) $js .= "acymailing['checkFieldsRegexp'] = Array('".implode("','",$checkFieldsRegexp)."');"; $js .= " "; $doc->addScriptDeclaration( $js ); } $my = JFactory::getUser(); foreach($subscription as $listid => $oneList){ if(!acymailing_isAllowed($oneList->access_sub)){ $subscription[$listid]->published = false; continue; } } } if(!acymailing_level(3)){ if(!empty($menuparams) && strtolower($menuparams->get('customfields','default')) != 'default'){ $fieldsToDisplay = strtolower($menuparams->get('customfields','default')); $this->assignRef('fieldsToDisplay',$fieldsToDisplay); } else{ $this->assign('fieldsToDisplay','default'); } } $hiddenLists = ''; if(!empty($menuparams)){ $hiddenLists = trim($menuparams->get('hiddenlists','None')); if(empty($subscriber)) $allLists = $listsClass->getLists('listid'); else $allLists = $subscriberClass->getSubscription($subscriber->subid,'listid'); if(acymailing_level(1)) $allLists = $listsClass->onlyCurrentLanguage($allLists); if(acymailing_level(3)) $allLists = $listsClass->onlyAllowedLists($allLists); $hiddenListsArray = array(); if(strpos($hiddenLists,',') || is_numeric($hiddenLists)){ $allhiddenlists = explode(',',$hiddenLists); foreach($allLists as $oneList){ if(!$oneList->published || !in_array($oneList->listid,$allhiddenlists)) continue; $hiddenListsArray[] = $oneList->listid; unset($subscription[$oneList->listid]); } }elseif(strtolower($hiddenLists) == 'all'){ $subscription = array(); foreach($allLists as $oneList){ if(!empty($oneList->published)) $hiddenListsArray[] = $oneList->listid; } } $hiddenLists = implode(',',$hiddenListsArray); } $displayLists = false; foreach($subscription as $oneSub){ if(!empty( $oneSub->published) AND $oneSub->visible){ $displayLists = true; break; } } $this->assignRef('hiddenlists',$hiddenLists); $this->assignRef('values',$values); $this->assign('status',acymailing_get('type.festatus')); $this->assignRef('subscription',$subscription); $this->assignRef('subscriber',$subscriber); $this->assignRef('displayLists',$displayLists); $this->assign('config',acymailing_config()); }
function view() { global $Itemid; $app = JFactory::getApplication(); $document = JFactory::getDocument(); $currentBase = $document->getBase(); if (!empty($currentBase)) { if (isset($_SERVER["REQUEST_URI"])) { $requestUri = $_SERVER["REQUEST_URI"]; } else { $requestUri = $_SERVER['PHP_SELF']; if (!empty($_SERVER['QUERY_STRING'])) { $requestUri = rtrim($requestUri, '/') . '?' . $_SERVER['QUERY_STRING']; } } $currenturl = ((empty($_SERVER['HTTPS']) or strtolower($_SERVER['HTTPS']) != "on") ? 'http://' : 'https://') . $_SERVER["HTTP_HOST"] . $requestUri; $document->setBase($currenturl); } $pathway = $app->getPathway(); $my = JFactory::getUser(); $frontEndManagement = false; $listid = acymailing_getCID('listid'); if (empty($listid)) { $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)) { $listid = $menuparams->get('listid'); $document = JFactory::getDocument(); 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')) { $document->setTitle($menuparams->get('page_title')); } } } 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)) { return JError::raiseError(404, 'You can not preview a Newsletter-template, please create a Newsletter from your template'); } 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 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; $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::getString('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; } } $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(); $document->setTitle($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); }