public function getInput() { jimport('joomla.filesystem.file'); $mainframe = JFactory::getApplication(); if (!JFile::exists(JPATH_ADMINISTRATOR . '/components/com_joomailermailchimpintegration/libraries/MCAPI.class.php')) { $mainframe->enqueueMessage(JText::_('JM_PLEASE_INSTALL_JOOMLAMAILER'), 'error'); $mainframe->redirect('index.php'); } jimport('joomla.plugin.plugin'); require_once JPATH_ADMINISTRATOR . '/components/com_joomailermailchimpintegration/libraries/MCAPI.class.php'; require_once JPATH_ADMINISTRATOR . '/components/com_joomailermailchimpintegration/helpers/JoomlamailerMC.php'; $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if (!$MCapi || !$JoomlamailerMC->pingMC()) { $mainframe->enqueueMessage(JText::_('APIKEY ERROR'), 'error'); $mainframe->redirect('index.php?option=com_joomailermailchimpintegration&view=main'); } $api = new joomlamailerMCAPI($MCapi); $lists = $api->lists(); $options = array(); $options[] = array('id' => '', 'name' => '-- ' . JText::_('JM_PLEASE_SELECT_A_LIST') . ' --'); foreach ($lists as $list) { $options[] = array('id' => $list['id'], 'name' => $list['name']); } $attribs = 'onchange="submitbutton(\'module.apply\')"'; if (count($options)) { return JHtml::_('select.genericlist', $options, 'jform[params][listid]', $attribs, 'id', 'name', $this->value, $this->id); } return ''; }
public function display($tpl = null) { $user = JFactory::getUser(); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); JToolBarHelper::title(JText::_('JM_NEWSLETTER_SEND_CAMPAIGN'), $this->getPageTitleClass()); if (!$MCapi) { if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '350'); JToolBarHelper::spacer(); } } else { if (!$JoomlamailerMC->pingMC()) { if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '350'); JToolBarHelper::spacer(); } } else { $document = JFactory::getDocument(); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/jquery.clockpick.1.2.9.min.js'); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/jquery.clockpick.1.2.9.css'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.send.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.sync.js'); $AECambraVM = $this->get('AecAmbraVm'); if ($AECambraVM) { JToolBarHelper::custom('syncHotness', 'hotness', 'hotness', 'Sync Hotness', false, false); JToolBarHelper::spacer(); } if (JRequest::getVar('campaign', 0)) { JToolBarHelper::custom('send', 'send', 'send', 'JM_SEND', false, false); JToolBarHelper::spacer(); } // assign data to the template $drafts = $this->get('Drafts'); $this->assignRef('drafts', $drafts); $sentCampaigns = $this->get('SentCampaigns'); $this->assignRef('sentCampaigns', $sentCampaigns); $clientDetails = $this->get('ClientDetails'); $this->assignRef('clientDetails', $clientDetails); $MClists = $this->get('MClists'); $this->assignRef('MClists', $MClists); $campaignStamp = JRequest::getVar('campaign', 0, '', 'string'); $this->assignRef('campaignStamp', $campaignStamp); $campaignDetails = false; if ($campaignStamp) { $db = JFactory::getDBO(); $query = $db->getQuery(true)->select('*')->from('#__joomailermailchimpintegration_campaigns')->where($db->qn('creation_date') . ' = ' . $db->q($campaignStamp)); $db->setQuery($query); $campaignDetails = $db->loadObject(); } $this->assignRef('campaignDetails', $campaignDetails); } } parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { if (!JOOMLAMAILER_MANAGE_REPORTS) { $this->app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } JToolBarHelper::title(JText::_('JM_NEWSLETTER_ANALYTICS_360'), $this->getPageTitleClass()); JToolBarHelper::custom('goToCampaigns', 'reports', 'reports', 'JM_REPORTS', false); $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '450'); JToolBarHelper::spacer(); } $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $JoomlamailerMC = new JoomlamailerMC(); if (!$JoomlamailerMC->pingMC()) { $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } $a360_ga_profile_id = $params->get('params.gprofileid'); $gusername = $params->get('params.gusername'); $gpassword = $params->get('params.gpw'); $gapi = new gapi($gusername, $gpassword); if ($a360_ga_profile_id && $gusername && $gpassword && $gapi->auth_token) { $this->setModel($this->getModelInstance('main')); if (!isset($_SESSION['gtoken'])) { $_SESSION['gtoken'] = $gapi->auth_token; } $a360_ga_token = $_SESSION['gtoken']; $a360_list_options = $this->a360_dashboard($a360_ga_token, $a360_has_key); $this->assignRef('a360_list_options', $a360_list_options); $this->assignRef('a360_ga_token', $a360_ga_token); $doc = JFactory::getDocument(); $doc->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/a360/a360.css'); $doc->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/a360/datePicker.css'); $doc->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/analytics360/a360.js'); $doc->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/analytics360/date.js'); $doc->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/analytics360/date-coolite.js'); $doc->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/analytics360/jquery.datePicker.js'); $doc->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/analytics360/jquery.datePickerMultiMonth.js'); $doc->addScript('http://www.google.com/jsapi'); $doc->addScriptDeclaration('if (typeof google !== \'undefined\') {google.load("gdata", "1");google.load("visualization", "1", {"packages": ["areachart", "table", "piechart", "imagesparkline", "geomap", "columnchart"]});}'); $doc->addScriptDeclaration('var MCapikey = "' . $params->get('params.MCapi') . '";'); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; } else { $this->app->enqueueMessage(JText::_('JM_NO_ANALYTICS_LOGIN_SUPPLIED'), 'error'); $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } }
public function display($tpl = null) { if (!JOOMLAMAILER_MANAGE_LISTS) { $this->app->redirect('index.php?option=com_joomailermailchimpintegration', JText::_('JERROR_ALERTNOAUTHOR'), 'error'); } JToolBarHelper::title(JText::_('JM_NEWSLETTER_LISTS'), $this->getPageTitleClass()); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); // Get data from the model $lists = $this->get('Lists'); $this->assignRef('lists', $lists); if ($MCapi && $JoomlamailerMC->pingMC() && isset($lists[0])) { JToolBarHelper::custom('addUsers', 'plus', 'plus', 'JM_ADD_USERS', false); JToolBarHelper::spacer(); } parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { JToolBarHelper::title(JText::_('JM_NEWSLETTER_SUBSCRIBERS'), $this->getPageTitleClass()); $option = JRequest::getCmd('option'); $limit = $this->app->getUserStateFromRequest('global.list.limit', 'limit', $this->app->getCfg('list_limit'), 'int'); $limitstart = $this->app->getUserStateFromRequest($option . '.limitstart', 'limitstart', 0, 'int'); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if ($MCapi && $JoomlamailerMC->pingMC()) { JToolBarHelper::custom('goToLists', 'lists', 'lists', 'JM_LISTS', false, false); JToolBarHelper::spacer(); if (JRequest::getVar('type') == 's') { JToolBarHelper::custom('unsubscribe', 'unsubscribe', 'unsubscribe', 'JM_UNSUBSCRIBE', true, false); JToolBarHelper::spacer(); JToolBarHelper::custom('delete', 'unsubscribe', 'unsubscribe', 'JM_DELETE', true, false); JToolBarHelper::spacer(); } else { if (JRequest::getVar('type') == 'u') { // JToolBarHelper::custom('resubscribe', 'resubscribe', 'resubscribe', 'Resubscribe', false, false); } } } // Get data from the model $active = $this->get('Active'); $this->getModel()->addJoomlaUserData($active); $this->assignRef('active', $active); $lists = $this->get('Lists'); $this->assignRef('lists', $lists); $total = $this->get('Total'); $this->assignRef('total', $total); // if ($total<$limit) $limit = $total; $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit); $this->assignRef('pagination', $pagination); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { JToolBarHelper::title(JText::_('JM_NEWSLETTER'), $this->getPageTitleClass()); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); JToolBarHelper::custom('extensions', 'extensions', 'extensions', 'JM_EXTENSIONS', false); JToolBarHelper::spacer(); $bar = JToolBar::getInstance('toolbar'); if ($MCapi && $JoomlamailerMC->pingMC()) { $subdomain = explode('-', $MCapi); $url = 'https://' . $subdomain[1] . '.admin.mailchimp.com'; if (JOOMLAMAILER_CREATE_DRAFTS || JOOMLAMAILER_MANAGE_CAMPAIGNS) { JToolBarHelper::custom('templates', 'templates', 'templates', 'JM_EMAIL_TEMPLATES', false); JToolBarHelper::spacer(); } } else { $url = 'https://login.mailchimp.com/'; } $bar->appendButton('Link', 'link', 'JM_ACCOUNT_SETTINGS', $url); JToolBarHelper::spacer(); $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '450'); JToolBarHelper::spacer(); } if ($MCapi && $JoomlamailerMC->pingMC()) { $details = $this->get('ClientDetails'); $this->assignRef('details', $details); $drafts = $this->get('Drafts'); $this->assignRef('drafts', $drafts); $campaigns = $this->get('Campaigns'); $this->assignRef('campaigns', $campaigns); $chimpChatter = $this->get('ChimpChatter'); $this->assignRef('chimpChatter', $chimpChatter); } $this->assignRef('params', $params); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
* it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. **/ // no direct access defined('_JEXEC') or die('Restricted Access'); JHTML::_('behavior.modal'); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if (!$MCapi) { echo '<table>'; echo $JoomlamailerMC->apiKeyMissing(); return; } else { if (!$JoomlamailerMC->pingMC()) { echo '<table>'; echo $JoomlamailerMC->apiKeyMissing(1); return; } } ?> <form action="index.php?option=com_joomailermailchimpintegration&view=templates" method="post" name="adminForm" id="adminForm"> <?php if (!count($this->templateFolders)) {
public function display($tpl = null) { if (!JOOMLAMAILER_CREATE_DRAFTS) { $this->app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } JToolBarHelper::title(JText::_('JM_NEWSLETTER_CREATE_DRAFT'), $this->getPageTitleClass()); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if (!$MCapi) { $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '350'); } } else { if (!$JoomlamailerMC->pingMC()) { $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '350'); JToolBarHelper::spacer(); } } else { JHTML::_('behavior.modal'); JHTML::_('behavior.tooltip'); // Include css/js files $document = JFactory::getDocument(); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.create.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.preview.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/tablednd.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/sorttable.js'); if (version_compare(JVERSION, '3.0.0') < 0) { $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.create_2_5.js'); } // plugin support JPluginHelper::importPlugin('joomlamailer'); $plugins = JDispatcher::getInstance(); $this->assignRef('plugins', $plugins); $db = JFactory::getDBO(); $query = $db->getQuery(true)->select('enabled')->from('#__extensions')->where($db->qn('type') . ' = ' . $db->q('plugin'))->where($db->qn('element') . ' = ' . $db->q('tinymce')); $db->setQuery($query); $tinymce = $db->loadResult(); $editortype = $tinymce ? 'tinymce' : 'none'; $editor = JFactory::getEditor($editortype); $this->assignRef('editor', $editor); $script = '!function($){ $(document).ready(function(){ joomlamailerJS.create.getIntroContent = function() { return ' . $editor->getContent('intro') . '; } joomlamailerJS.create.onSubmit = function() {' . $editor->save('intro'); $submitformJavascript = $plugins->trigger('submitformJavascript'); foreach ($submitformJavascript as $sj) { $script .= $sj; } $script .= '}'; if (JRequest::getVar('text_only', 0, '', 'int')) { $script .= "\$('.create_sidebar').css('display', 'none');"; } $script .= '}); }(jQuery); var includeComponents = new Object(); var includeComponentsOptions = new Object(); var includeComponentsFields = new Object(); var includeTableofcontent = false; var includeTableofcontentComponents = new Object(); var sidebarElements = new Object(); var postData = new Object(); var socialIcons = new Object();'; $document->addScriptDeclaration($script); $categories = $this->get('Categories'); $this->assignRef('categories', $categories); $merge = $this->get('MergeTags'); $this->assignRef('merge', $merge); $K2Installed = $this->get('K2Installed'); $this->assignRef('K2Installed', $K2Installed); if ($K2Installed) { $allk2cat = $this->getModel()->getK2Cat(); $this->assignRef('allk2cat', $allk2cat); } $folders = $this->get('Folders'); $unfiled = array(array('folder_id' => 0, 'name' => JText::_('JM_UNFILED'))); $folder_id = JRequest::getVar('folder_id', 0, '', 'int'); if ($folders) { $folders = array_merge($unfiled, $folders); } else { $folders = $unfiled; } $foldersDropDown = JHTML::_('select.genericlist', $folders, 'folder_id', '', 'folder_id', 'name', $folder_id); $this->assignRef('foldersDropDown', $foldersDropDown); $user = JFactory::getUser(); $this->assignRef('user', $user); } } parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { if (!JOOMLAMAILER_MANAGE_REPORTS) { $this->app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } $this->setModel($this->getModelInstance('main')); $this->setModel($this->getModelInstance('campaignlist')); $option = JRequest::getCmd('option'); $cacheGroup = 'joomlamailerReports'; $cacheOptions = array(); $cacheOptions['cachebase'] = JPATH_ADMINISTRATOR . '/cache'; $cacheOptions['lifetime'] = 31556926; $cacheOptions['storage'] = 'file'; $cacheOptions['defaultgroup'] = 'joomlamailerReports'; $cacheOptions['locking'] = false; $cacheOptions['caching'] = true; $cache = new JCache($cacheOptions); require_once JPATH_COMPONENT . '/helpers/JoomlamailerCache.php'; $mainframe = JFactory::getApplication(); $layout = JRequest::getVar('layout', '', '', 'string'); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest($layout . '.limitstart', $layout . 'limitstart', 0, 'int'); if ($layout == 'sharereport') { $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/shareReport.css'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.shareReport.js'); JToolBarHelper::title(JText::_('JM_NEWSLETTER_SHARE_REPORT'), $this->getPageTitleClass()); } else { JToolBarHelper::title(JText::_('JM_NEWSLETTER_CAMPAIGN_STATS'), $this->getPageTitleClass()); } if ($layout != '') { JToolBarHelper::custom('goToCampaigns', 'reports', 'reports', 'JM_REPORTS', false); } if ($layout == 'clickedlinks') { $cid = JRequest::getVar('cid', 0, '', 'string'); $clicked = $this->getModel()->getClicks($cid); foreach ($clicked as $index => $data) { if (!$data['clicks']) { unset($clicked[$index]); } } $this->assignRef('clicked', $clicked); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination(count($clicked), $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'clickedlinkdetails') { $cid = JRequest::getVar('cid', 0, '', 'string'); $url = urldecode(JRequest::getVar('url', '', '', 'string')); $clicks = $this->getModel()->getClicksAIM($cid, $url); $this->assignRef('clicks', $clicks); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination(count($clicks), $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'clicked') { $cid = JRequest::getVar('cid', 0, '', 'string'); $clicked = $this->getModel()->getCampaignEmailStatsAIMAll($cid, $limitstart, 1000); $i = 0; $click = array(); foreach ($clicked as $key => $value) { $unset = true; foreach ($value as $v) { if ($v['action'] == 'click') { $unset = false; } } if (!$unset) { $click[$key] = $clicked[$key]; $i++; } if ($i == $limit) { break; } } $this->assignRef('clicked', $click); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); $total = $this->getModel()->getCampaignStats($cid); jimport('joomla.html.pagination'); $pagination = new JPagination($total['unique_clicks'], $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'recipients') { $cid = JRequest::getVar('cid', 0, '', 'string'); $url = urldecode(JRequest::getVar('url', 0, '', 'string')); $clicked = $this->getModel()->getCampaignEmailStatsAIMAll($cid, $limitstart, $limit); $campaignStats = $this->getModel()->getCampaignStats($cid); $this->assignRef('clicked', $clicked); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination($campaignStats['emails_sent'], $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'opened') { $cid = JRequest::getVar('cid', 0, '', 'string'); $items = $this->getModel()->getOpens($cid); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination(count($items), $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'abuse') { $cid = JRequest::getVar('cid', 0, '', 'string'); $items = $this->getModel()->getAbuse($cid); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination(count($items), $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'unsubscribes') { $cid = JRequest::getVar('cid', 0, '', 'string'); $items = $this->getModel()->getUnsubscribes($cid); $this->assignRef('limitstart', $limitstart); $this->assignRef('limit', $limit); jimport('joomla.html.pagination'); $pagination = new JPagination(count($items), $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } else { if ($layout == 'sharereport') { $cid = JRequest::getVar('cid', '', 'get', 'string'); $this->setModel($this->getModelInstance('campaigns')); $cData = $this->getModel('campaigns')->getCampaignData($cid); $name = isset($cData[0]->name) ? $cData[0]->name : $cData[0]['title']; $this->assignRef('name', $name); $data = $this->getModel('campaigns')->getShareReport($cid, JText::_('JM_CAMPAIGN_REPORT') . ': ' . $name); $this->assignRef('data', $data); $this->setModel($this->getModelInstance('templates')); $palettes = $this->getModel('templates')->getPalettes(); $this->assignRef('palettes', $palettes); } else { $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/campaigns.css'); $JoomlamailerMC = new JoomlamailerMC(); if (!$JoomlamailerMC->pingMC()) { $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '450'); JToolBarHelper::spacer(); } } else { JToolBarHelper::custom('shareReport', 'shareReport', 'shareReport', 'JM_SEND_REPORT', true, false); JToolBarHelper::spacer(); JToolBarHelper::custom('analytics', 'reports', 'reports', 'Analytics360°', false, false); JToolBarHelper::spacer(); $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '450'); JToolBarHelper::spacer(); } // JToolBarHelper::custom('delete', 'delete', 'delete', 'JM_DELETE_REPORT', true, false); $tmp = array(array('folder_id' => 0, 'name' => '- ' . JText::_('JM_SELECT_FOLDER') . ' -')); $folders = $this->getModel('campaignlist')->getFolders(); $folders = array_merge($tmp, $folders); $folder_id = JRequest::getVar('folder_id', 0, '', 'int'); $foldersDropDown = JHTML::_('select.genericlist', $folders, 'folder_id', 'onchange="document.adminForm.submit();"', 'folder_id', 'name', $folder_id); $this->assignRef('foldersDropDown', $foldersDropDown); $limit = JRequest::getVar('limit', 5, '', 'int'); $cacheID = 'sent_campaigns'; if (!$cache->get($cacheID, $cacheGroup)) { $campaigns = array(); $res = 'not empty'; $page = 0; while (!empty($res)) { $res = $this->getModel()->getCampaigns(array('status' => 'sent'), $page, 1000); if ($res) { $campaigns = array_merge($campaigns, $res); if (count($res) < 1000) { break; } $page++; } } if (count($campaigns)) { foreach ($campaigns as $c) { $stats = $this->getModel()->getCampaignStats($c['id']); $advice = $this->getModel()->getAdvice($c['id']); if ($stats) { $items[$c['id']]['folder_id'] = $c['folder_id']; $items[$c['id']]['title'] = $c['title']; $items[$c['id']]['subject'] = $c['subject']; $items[$c['id']]['send_time'] = $c['send_time']; $items[$c['id']]['emails_sent'] = $c['emails_sent']; $items[$c['id']]['stats'] = $stats; $items[$c['id']]['advice'] = $advice; $items[$c['id']]['archive_url'] = $c['archive_url']; $items[$c['id']]['twitter'] = $this->getModel()->getTwitterStats($c['id']); $items[$c['id']]['geo'] = $this->getModel()->getGeoStats($c['id']); } else { $items[$c['id']]['folder_id'] = $c['folder_id']; $items[$c['id']]['title'] = $c['title']; $items[$c['id']]['subject'] = $c['subject']; $items[$c['id']]['send_time'] = $c['send_time']; $items[$c['id']]['emails_sent'] = $c['emails_sent']; $items[$c['id']]['stats'] = ''; $items[$c['id']]['advice'] = ''; $items[$c['id']]['archive_url'] = $c['archive_url']; $items[$c['id']]['twitter'] = $this->getModel()->getTwitterStats($c['id']); $items[$c['id']]['geo'] = $this->getModel()->getGeoStats($c['id']); } } } $cache->store(json_encode($items), $cacheID, $cacheGroup); } $campaigns = json_decode($cache->get($cacheID, $cacheGroup), true); // get timestamp of when the cache was modified $joomlamailerCache = new JoomlamailerCache('file'); $cacheDate = $joomlamailerCache->getCreationTime($cacheID, $cacheGroup); $this->assignRef('cacheDate', $cacheDate); if ($folder_id) { foreach ($campaigns as $k => $v) { if ($v['folder_id'] != $folder_id) { unset($campaigns[$k]); } } } $total = count($campaigns); $items = array(); $x = 0; if ($total) { foreach ($campaigns as $k => $v) { if ($x == $limitstart + $limit) { break; } if ($x >= $limitstart) { $items[$k] = $v; } $x++; } } jimport('joomla.html.pagination'); $pagination = new JPagination($total, $limitstart, $limit, $layout); $this->assignRef('pagination', $pagination); } } } } } } } } } $this->assignRef('items', $items); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root(true) . '/media/com_joomailermailchimpintegration/backend/css/subscriber.css'); JToolBarHelper::title(JText::_('JM_NEWSLETTER_SUBSCRIBERS'), $this->getPageTitleClass()); $mainframe = JFactory::getApplication(); $option = JRequest::getCmd('option'); $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int'); $limitstart = $mainframe->getUserStateFromRequest($option . '.limitstart', 'limitstart', 0, 'int'); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); $AIM = true; $clientDetails = $this->getModel()->getClientDetails(); if ($MCapi && $JoomlamailerMC->pingMC()) { JToolBarHelper::custom('goToLists', 'lists', 'lists', 'Lists', false, false); JToolBarHelper::spacer(); if (JRequest::getVar('type') == 's') { JToolBarHelper::custom('unsubscribe', 'unsubscribe', 'unsubscribe', 'Unsubscribe', true, false); JToolBarHelper::spacer(); JToolBarHelper::custom('delete', 'unsubscribe', 'unsubscribe', 'Delete', true, false); JToolBarHelper::spacer(); } else { if (JRequest::getVar('type') == 'u') { //JToolBarHelper::custom('resubscribe', 'resubscribe', 'resubscribe', 'Resubscribe', false, false); } } } $userid = JRequest::getVar('uid', 0, 'get', 'string'); $email = JRequest::getVar('email', 0, '', 'string', JREQUEST_ALLOWRAW); $memberInfo = $this->getModel()->getListsForEmail(); foreach ($memberInfo['lists'] as $key => $list) { $member_rating = $memberInfo['lists'][$key]['member_rating']; break; } if ($userid) { $user = JFactory::getUser($userid); } //TODO convert $start to GMT using JConfig and tzoffset $start = $user->registerDate; //$listid = JRequest::getVar('listid', 0, 'get', 'string'); //$campaigns = $this->getModel()->MC_object()->campaigns(array('sendtime_start'=>$start, 'list_id'=>$listid)); $campaigns = $this->getModel()->getCampaignsSince($start); //$lists = $this->getModel()->MC_object()->listsForEmail($email); $stats = array(); foreach ($campaigns as $campaign) { $listmemberinfo = $this->getModel()->getListMemberInfo($campaign['list_id'], $email); //Check if this email was ever subscribed to this list if ($listmemberinfo) { //if (in_array($campaign['list_id'], $lists)) { $clicks = 0; if ($AIM) { $clickStats = $this->getModel()->campaignEmailStatsAIM($campaign['id'], $user->email); if (isset($clickStats[0])) { foreach ($clickStats as $cs) { if ($cs['action'] == 'click') { $clicks++; } } } } $stats[$campaign['id']]['clicks'] = $clicks; $opens = $this->getModel()->campaignOpenedAIM($campaign['id']); if ($opens) { foreach ($opens as $o) { if ($o['email'] == $email) { $stats[$campaign['id']]['opens'] = $o['open_count']; $stats[$campaign['id']]['received'] = true; } else { $stats[$campaign['id']]['opens'] = 0; $softbounces = $this->getModel()->getSoftBounces($campaign['id']); $hardbounces = $this->getModel()->getHardBounces($campaign['id']); $bounces = array_merge($softbounces, $hardbounces); $stats[$campaign['id']]['received'] = in_array($email, $bounces) ? 0 : 1; } } } $stats[$campaign['id']]['title'] = $campaign['title']; $stats[$campaign['id']]['date'] = $campaign['send_time']; $stats[$campaign['id']]['segment_text'] = $campaign['segment_text']; $stats[$campaign['id']]['list_sub'] = $listmemberinfo['timestamp']; } } $cbpath = JPATH_ADMINISTRATOR . '/components/com_comprofiler/admin.comprofiler.php'; $jspath = JPATH_ADMINISTRATOR . '/components/com_community/admin.community.php'; $db = JFactory::getDBO(); $avatar = JURI::root() . 'media/com_joomailermailchimpintegration/backend/images/mailchimp_avatar.jpg'; $gravatar_default = $avatar; if (JFile::exists($cbpath)) { //community builder is being used $query = 'SELECT avatar FROM #__comprofiler WHERE id=' . $userid; $db->setQuery($query); $avatarPath = $db->loadResult(); if ($avatarPath) { $avatar = JURI::root() . 'images/comprofiler/' . $avatarPath; } } else { if (JFile::exists($jspath)) { //jomsocial is being used $query = 'SELECT avatar FROM #__community_users WHERE userid=' . $userid; $db->setQuery($query); $avatarPath = $db->loadResult(); if ($avatarPath) { $avatar = JURI::root() . $avatarPath; } } } if ($gravatar_default == $avatar) { $avatar = $this->getModel()->getGravatar($gravatar_default); } $twitterName = $this->getModel()->getTwitterName(); $kloutScore = $this->getModel()->getKloutScore(); $this->assignRef('kloutScore', $kloutScore); $this->assignRef('twitterName', $twitterName); $facebookName = $this->getModel()->getFacebookName(); $this->assignRef('facebookName', $facebookName); $composite = new hotActivityComposite(); $hotActivity = $composite->getActivity(); $hotnessRating = $composite->getHotnessValue(); $this->assignRef('hotnessRating', $hotnessRating); $this->assignRef('hotActivity', $hotActivity); $jomSocialGroups = $this->getModel()->getJomSocialGroups(); $totalDiscussionsOfUser = $this->getModel()->getTotalJomSocialDiscussionsOfUser(); $jomSocialDiscussions = $this->getModel()->getRecentJomSocialDiscussions(); jimport('joomla.html.pagination'); $pagination = new JPagination(count($stats), $limitstart, $limit); $this->assignRef('memberRating', $member_rating); $this->assignRef('jomSocialGroups', $jomSocialGroups); $this->assignRef('jomSocialDiscussions', $jomSocialDiscussions); $this->assignRef('totalDiscussionsOfUser', $totalDiscussionsOfUser); $this->assignRef('pagination', $pagination); $this->assignRef('email', $email); $this->assignRef('stats', $stats); $this->assignRef('limitstart', $limitstart); $this->assignRef('subscribed', $subscribed); $this->assignRef('user', $user); $this->assignRef('avatar', $avatar); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. **/ // no direct access defined('_JEXEC') or die('Restricted Access'); JHTML::_('behavior.modal'); $MCapi = $this->params->get('params.MCapi'); $sugar_name = $this->params->get('params.sugar_name', 0); $sugar_pwd = $this->params->get('params.sugar_pwd', 0); $sugar_url = $this->params->get('params.sugar_url', 0); $highrise_url = $this->params->get('params.highrise_url', 0); $highrise_api_token = $this->params->get('params.highrise_api_token', 0); //$model = $this->getModel(); $JoomlamailerMC = new JoomlamailerMC(); if (!$MCapi) { echo '<table>' . $JoomlamailerMC->apiKeyMissing(); return; } else { if (!$JoomlamailerMC->pingMC()) { echo '<table>' . $JoomlamailerMC->apiKeyMissing(1); return; } } echo checkPermissions::check(); if ($MCapi && $JoomlamailerMC->pingMC()) { echo $this->getModel()->setupInfo(); } if ($sugar_name && $sugar_pwd && $sugar_url) { $CRMauth = new CRMauth();
public function display($tpl = null) { $mainframe = JFactory::getApplication(); $option = JRequest::getCmd('option'); $document = JFactory::getDocument(); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.sync.js'); $script = '!function($){ $(document).ready(function(){ joomlamailerJS.strings.addSelectedUsers = "' . JText::_('JM_ADD_SELECTED_USERS', true) . '"; joomlamailerJS.strings.addAllUsers = "' . JText::_('JM_ADD_ALL_USERS', true) . '"; joomlamailerJS.strings.addAllUsersConfirm = "' . JText::_('JM_ARE_YOU_SURE_TO_ADD_ALL_USERS', true) . '"; joomlamailerJS.strings.selectAList = "' . JText::_('JM_SELECT_A_LIST_TO_ASSIGN_THE_USERS_TO', true) . '"; joomlamailerJS.strings.noUsersSelected = "' . JText::_('JM_NO_USERS_SELECTED', true) . '"; joomlamailerJS.strings.usersAlreadyAdded = "' . JText::_('JM_ALL_USERS_ALREADY_ADDED', true) . '"; joomlamailerJS.strings.addingUsers = "' . JText::_('JM_ADDING_USERS', true) . '"; joomlamailerJS.strings.done = "' . JText::_('JM_DONE', true) . '"; }); }(jQuery);'; $document->addScriptDeclaration($script); $layout = JRequest::getVar('layout', 'default'); if ($layout == 'default') { $filter_order = $mainframe->getUserStateFromRequest($option . 'filter_order', 'filter_order', 'a.name', 'cmd'); $filter_order_Dir = $mainframe->getUserStateFromRequest($option . 'filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter_type = $mainframe->getUserStateFromRequest($option . 'filter_type', 'filter_type', 0, 'string'); $filter_date = $mainframe->getUserStateFromRequest($option . 'filter_date', 'filter_date', '', 'string'); $search = JString::strtolower($mainframe->getUserStateFromRequest($option . 'search', 'search', '', 'string')); // get list of Groups for dropdown filter require_once JPATH_ADMINISTRATOR . '/components/com_users/helpers/users.php'; $dropdown = '<select name="filter_type" id="filter_type" class="inputbox" onchange="this.form.submit()">'; $dropdown .= '<option value="">- ' . JText::_('JM_USERGROUP') . ' -</option>'; $dropdown .= JHtml::_('select.options', UsersHelper::getGroups(), 'value', 'text', $filter_type); $dropdown .= '</select>'; $lists['type'] = $dropdown; // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // search filter $lists['search'] = $search; //date filter JHtml::_('behavior.calendar'); $attr = array('size' => '16', 'style' => 'top:0;', 'placeholder' => JText::_('JM_LAST_VISIT_AFTER')); $lists['filter_date'] = JHtml::_('calendar', $filter_date, 'filter_date', 'filter_date', '%Y-%m-%d', $attr); $this->assignRef('lists', $lists); $this->assignRef('pagination', $pagination); JToolBarHelper::title(JText::_('JM_NEWSLETTER_ADD_USERS'), $this->getPageTitleClass()); } else { if ($layout == 'sugar') { JToolBarHelper::title(JText::_('JM_NEWSLETTER_SUGARCRM_CONFIGURATION'), $this->getPageTitleClass()); } else { if ($layout == 'highrise') { JToolBarHelper::title(JText::_('JM_NEWSLETTER_HIGHRISE_CONFIGURATION'), $this->getPageTitleClass()); } } } $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if ($MCapi && $JoomlamailerMC->pingMC()) { if ($layout == 'default') { if ($params->get('params.sugar_name') && $params->get('params.sugar_pwd')) { JToolBarHelper::custom('sync_sugar', 'sync_sugar', 'sync_sugar', 'JM_ADD_TO_SUGAR', false, false); JToolBarHelper::spacer(); JToolBarHelper::custom('sugar', 'sync_sugar', 'sync_sugar', 'JM_SUGAR_CONFIG', false, false); JToolBarHelper::spacer(); } if ($params->get('params.highrise_url') && $params->get('params.highrise_api_token')) { JToolBarHelper::custom('sync_highrise', 'sync_highrise', 'sync_highrise', 'JM_ADD_TO_HIGHRISE', false, false); JToolBarHelper::spacer(); JToolBarHelper::custom('highrise', 'sync_highrise', 'sync_highrise', 'JM_HIGHRISE_CONFIG', false, false); JToolBarHelper::spacer(); } JToolBarHelper::custom('mailchimp', 'sync', 'sync', 'JM_ADD_TO_MAILCHIMP', false, false); JToolBarHelper::spacer(); } else { if ($layout == 'sugar') { JToolBarHelper::custom('cancel', 'back', 'back', 'JM_BACK', false, false); JToolBarHelper::spacer(); JToolBarHelper::custom('setConfig', 'sync_sugar', 'sync_sugar', 'JM_SAVE_CONFIG', false, false); JToolBarHelper::spacer(); } else { if ($layout == 'highrise') { JToolBarHelper::custom('cancel', 'back', 'back', 'JM_BACK', false, false); JToolBarHelper::spacer(); JToolBarHelper::custom('setConfig', 'sync_highrise', 'sync_highrise', 'JM_SAVE_CONFIG', false, false); JToolBarHelper::spacer(); } } } } if ($layout == 'default') { // Get data from the model $items = $this->get('Data'); $this->assignRef('items', $items); $this->setModel($this->getModelInstance('lists')); $subscriberLists = $this->getModel('lists')->getLists(); $this->assignRef('subscriberLists', $subscriberLists); $groups = $this->get('Groups'); $this->assignRef('groups', $groups); $CRMusers = $this->get('CRMusers'); $this->assignRef('CRMusers', $CRMusers); } else { if ($layout == 'sugar') { $sugarFields = $this->get('SugarFields'); $this->assignRef('sugarFields', $sugarFields); $JSFields = $this->get('JSFields'); $this->assignRef('JSFields', $JSFields); $CBFields = $this->get('CBFields'); $this->assignRef('CBFields', $CBFields); $config = $this->getModel('sync')->getConfig('sugar'); $this->assignRef('config', $config); } else { if ($layout == 'highrise') { $JSFields = $this->get('JSFields'); $this->assignRef('JSFields', $JSFields); $CBFields = $this->get('CBFields'); $this->assignRef('CBFields', $CBFields); $config = $this->getModel('sync')->getConfig('highrise'); $this->assignRef('config', $config); } } } $total = $this->get('TotalUsers'); $this->assignRef('total', $total); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { if (!JOOMLAMAILER_CREATE_DRAFTS && !JOOMLAMAILER_MANAGE_CAMPAIGNS) { $this->app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $this->app->redirect('index.php?option=com_joomailermailchimpintegration'); } JToolBarHelper::title(JText::_('JM_NEWSLETTER_CAMPAIGNS'), $this->getPageTitleClass()); $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if ($MCapi && $JoomlamailerMC->pingMC()) { if (JOOMLAMAILER_CREATE_DRAFTS) { JToolBarHelper::custom('create', 'create-campaign', 'create-campaign', 'JM_CREATE_CAMPAIGN', false, false); JToolBarHelper::spacer(); } $filter = JRequest::getVar('filter_status', 'sent', '', 'string'); if (JOOMLAMAILER_CREATE_DRAFTS && !JOOMLAMAILER_MANAGE_CAMPAIGNS) { $filter = 'save'; JRequest::setVar('filter_status', 'save'); } else { if (!JOOMLAMAILER_CREATE_DRAFTS && JOOMLAMAILER_MANAGE_CAMPAIGNS) { if ($filter == 'save') { JRequest::setVar('filter_status', 'sent'); } } } if ($filter == 'save') { if (JOOMLAMAILER_CREATE_DRAFTS) { JToolBarHelper::editList(); JToolBarHelper::spacer(); } if (JOOMLAMAILER_MANAGE_CAMPAIGNS) { JToolBarHelper::custom('send', 'send', 'send', 'JM_SEND', true, false); JToolBarHelper::spacer(); } if (JOOMLAMAILER_CREATE_DRAFTS) { JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THE_SELECTED_CAMPAIGNS')); JToolBarHelper::spacer(); } } else { if ($filter == 'schedule') { JToolBarHelper::custom('unschedule', 'unschedule', 'unschedule', 'JM_UNSCHEDULE', true, false); JToolBarHelper::spacer(); // you can only pause autoresponder and rss campaigns // JToolBarHelper::custom('pause', 'pause', 'pause', 'Pause', true, false); if (JOOMLAMAILER_MANAGE_CAMPAIGNS) { JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THE_SELECTED_CAMPAIGNS')); JToolBarHelper::spacer(); } } else { if ($filter == 'sent') { JToolBarHelper::custom('copyCampaign', 'copy', 'copy', 'JM_REPLICATE', true, false); JToolBarHelper::spacer(); if (JOOMLAMAILER_MANAGE_REPORTS) { JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THE_SELECTED_CAMPAIGNS')); JToolBarHelper::spacer(); } } else { if ($filter == 'sending') { if (JOOMLAMAILER_MANAGE_CAMPAIGNS) { JToolBarHelper::custom('pause', 'pause', 'pause', 'JM_PAUSE', true, false); JToolBarHelper::spacer(); } if (JOOMLAMAILER_MANAGE_REPORTS) { JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THE_SELECTED_CAMPAIGNS')); JToolBarHelper::spacer(); } } else { if ($filter == 'paused') { if (JOOMLAMAILER_MANAGE_CAMPAIGNS) { JToolBarHelper::custom('resume', 'resume', 'resume', 'JM_RESUME', true, false); JToolBarHelper::spacer(); } if (JOOMLAMAILER_MANAGE_REPORTS) { JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THE_SELECTED_CAMPAIGNS')); JToolBarHelper::spacer(); } } } } } } } if (JOOMLAMAILER_MANAGE_REPORTS) { $folders = $this->get('Folders'); $undefined[0] = array('folder_id' => 0, 'name' => JText::_('JM_UNFILED')); $folder_id = JRequest::getVar('folder_id', 0, '', 'int'); $folders = array_merge($undefined, $folders); $foldersDropDown = JHTML::_('select.genericlist', $folders, 'folder_id', 'onchange="document.adminForm.submit();"', 'folder_id', 'name', $folder_id); $this->assignRef('foldersDropDown', $foldersDropDown); } // Get data from the model $campaigns = $this->get('Campaigns'); $this->assignRef('campaigns', $campaigns); $page = $this->get('Pagination'); $this->assignRef('pagination', $page); parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }
public function display($tpl = null) { $params = JComponentHelper::getParams('com_joomailermailchimpintegration'); $MCapi = $params->get('params.MCapi'); $JoomlamailerMC = new JoomlamailerMC(); if (!$MCapi || !$JoomlamailerMC->pingMC()) { JToolBarHelper::title(JText::_('JM_NEWSLETTER') . ' : ' . JText::_('JM_UPLOAD_TEMPLATE'), $this->getPageTitleClass()); $user = JFactory::getUser(); if ($user->authorise('core.admin', 'com_joomailermailchimpintegration')) { JToolBarHelper::preferences('com_joomailermailchimpintegration', '350'); JToolBarHelper::spacer(); } } else { jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); $document = JFactory::getDocument(); $script = '!function($){ $(document).ready(function(){ joomlamailerJS.strings.templateDownloadError = "' . JText::_('JM_TEMPLATE_DOWNLOAD_ERROR', true) . '"; joomlamailerJS.strings.templateWidthOf = "' . JText::_('JM_TEMPLATE_WIDTH_OF', true) . '"; joomlamailerJS.strings.uploadButtonText = "' . JText::_('JM_UPLOAD_HEADER_IMAGE', true) . '"; joomlamailerJS.strings.errorInvalidFileType = "' . JText::_('JM_INVALID_FILE_TYPE', true) . '"; joomlamailerJS.strings.allowedFileTypes = "' . JText::_('JM_ALLOWED_EXTENSIONS', true) . '"; joomlamailerJS.strings.clickToEdit = "' . JText::_('JM_CLICK_TO_EDIT', true) . '"; joomlamailerJS.strings.confirmClearPosition = "' . JText::_('JM_ARE_YOU_SURE_TO_DELETE_EVERYTHING_FROM_THE', true) . '"; joomlamailerJS.strings.position = "' . JText::_('JM_POSITION_DELETE', true) . '"; joomlamailerJS.strings.confirmOverwriteTemplate = "' . JText::_('JM_OVERWRITE_TEMPLATE', true) . '"; joomlamailerJS.strings.errorTemplateName = "' . JText::_('JM_INVALID_TEMPLATE_NAME_SUPPLIED', true) . '"; }); }(jQuery);'; $document->addScriptDeclaration($script); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/joomlamailer.templates.js'); $layout = JRequest::getVar('layout', 0, '', 'string'); if ($layout == 'upload') { $uploadIcon = version_compare(JVERSION, '3.0', 'ge') ? 'upload_14' : 'upload_32'; JToolBarHelper::title(JText::_('JM_NEWSLETTER') . ' : ' . JText::_('JM_UPLOAD_TEMPLATE'), $this->getPageTitleClass()); JToolBarHelper::custom('startUpload', $uploadIcon, $uploadIcon, 'JM_START_UPLOAD', false, false); JToolBarHelper::spacer(); JToolBarHelper::cancel(); JToolBarHelper::spacer(); } else { if ($layout == 'edit') { JToolBarHelper::title(JText::_('JM_NEWSLETTER') . ' : ' . JText::_('JM_EDIT_TEMPLATE'), $this->getPageTitleClass()); JToolBarHelper::save(); JToolBarHelper::spacer(); JToolBarHelper::cancel(); JToolBarHelper::spacer(); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/templateEditor.css'); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/picker.css'); $document->addStyleSheet(JURI::root() . 'media/com_joomailermailchimpintegration/backend/css/fileuploader.css'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/jquery-ui-1.10.4.custom.min.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/jquery.jeditable.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/picker.js'); $document->addScript(JURI::root() . 'media/com_joomailermailchimpintegration/backend/js/fileuploader.js'); $templateFolder = JRequest::getVar('template', array(), '', 'array'); $templateFolder = urldecode($templateFolder[0]); $filename = JPATH_ADMINISTRATOR . '/components/com_joomailermailchimpintegration/templates/' . $templateFolder . '/template.html'; $template = JFile::read($filename); $src = JPATH_ADMINISTRATOR . '/components/com_joomailermailchimpintegration/templates/' . $templateFolder; $dest = JPATH_SITE . '/tmp/' . $templateFolder . '/'; JFolder::create($dest, 0777); JFolder::copy($src, $dest, '', true); $imagepath = '$1="' . JURI::base() . 'components/com_joomailermailchimpintegration/templates/' . $templateFolder . '/$2$3'; $template = preg_replace('#(href|src)="([^:"]*)("|(?:(?:%20|\\s|[.]|\\+)[^"]*"))#i', $imagepath, $template); // prevent preview from being cached $metaDataArray = array('<meta http-Equiv="Cache-Control" Content="no-cache">', '<meta http-Equiv="Pragma" Content="no-cache">', '<meta http-Equiv="Expires" Content="0">'); $template = str_ireplace($metaDataArray, '', $template); $metaData = '<meta http-Equiv="Cache-Control" Content="no-cache"><meta http-Equiv="Pragma" Content="no-cache"><meta http-Equiv="Expires" Content="0">'; if (!stristr($template, '<head>')) { $template = str_ireplace('<html>', '<html><head>' . $metaData . '</head>', $template); } else { $template = str_ireplace('</head>', $metaData . '</head>', $template); } $templatesPath = JURI::root() . 'administrator/components/com_joomailermailchimpintegration/templates'; $template = str_replace($templatesPath, JURI::root() . 'tmp', $template); $tmpFile = JPATH_SITE . '/tmp/' . $templateFolder . '/template.html'; if (JFile::exists($tmpFile)) { JFile::delete($tmpFile); } JFile::write($tmpFile, $template); $tmpFileURL = '../tmp/' . $templateFolder . '/template.html'; $this->assignRef('iframeSrc', $tmpFileURL); $this->assignRef('tmpPath', $tmpFile); $this->assignRef('tmpFolder', $templateFolder); // Get data from the model $palettes = $this->get('Palettes'); $this->assignRef('palettes', $palettes); } else { JToolBarHelper::title(JText::_('JM_NEWSLETTER') . ' : ' . JText::_('JM_EMAIL_TEMPLATES'), $this->getPageTitleClass()); JToolBarHelper::addNew('add', 'JM_UPLOAD_TEMPLATE'); JToolBarHelper::spacer(); JToolBarHelper::editList(); JToolBarHelper::spacer(); JToolBarHelper::deleteList(JText::_('JM_ARE_YOU_SURE_TO_DELETE_THIS_TEMPLATE')); JToolBarHelper::spacer(); $templateFolders = $this->get('templateFolders'); $this->assignRef('templateFolders', $templateFolders); } } } parent::display($tpl); require_once JPATH_COMPONENT . '/helpers/jmFooter.php'; }