Example #1
0
 function language()
 {
     $this->setLayout('default');
     $code = JRequest::getString('code');
     if (empty($code)) {
         acymailing::display('Code not specified', 'error');
         return;
     }
     $file = null;
     $file->name = $code;
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini';
     $file->path = $path;
     jimport('joomla.filesystem.file');
     $showLatest = true;
     $loadLatest = false;
     if (JFile::exists($path)) {
         $file->content = JFile::read($path);
         if (empty($file->content)) {
             acymailing::display('File not found : ' . $path, 'error');
         }
     } else {
         $loadLatest = true;
         acymailing::display(JText::_('LOAD_ENGLISH_1') . '<br/>' . JText::_('LOAD_ENGLISH_2') . '<br/>' . JText::_('LOAD_ENGLISH_3'), 'info');
         $file->content = JFile::read(JLanguage::getLanguagePath(JPATH_ROOT) . DS . 'en-GB' . DS . 'en-GB.com_acymailing.ini');
     }
     if ($loadLatest or JRequest::getString('task') == 'latest') {
         $doc =& JFactory::getDocument();
         $doc->addScript(ACYMAILING_UPDATEURL . 'languageload&code=' . JRequest::getString('code'));
         $showLatest = false;
     } elseif (JRequest::getString('task') == 'save') {
         $showLatest = false;
     }
     $this->assignRef('showLatest', $showLatest);
     $this->assignRef('file', $file);
 }
Example #2
0
	function __construct(& $subject, $config) {
		// Check if Kunena API exists
		$api = JPATH_ADMINISTRATOR . '/components/com_kunena/api.php';
		if (! is_file ( $api ))
			return false;

		jimport ( 'joomla.application.component.helper' );
		// Check if Kunena component is installed/enabled
		if (! JComponentHelper::isEnabled ( 'com_kunena', true )) {
			return false;
		}

		// Load Kunena API
		require_once $api;

		// Fix Joomla 1.5 bugs and bad performance
		$version = new JVersion();
		if ($version->RELEASE == '1.5') {
			$lang = JFactory::getLanguage();
			if (JFactory::getApplication()->isAdmin()) {
				$lang->load('com_kunena.menu', JPATH_ADMINISTRATOR);
			} else {
				$filename = JLanguage::getLanguagePath( JPATH_BASE, $lang->_lang)."/{$lang->_lang}.com_kunena.ini";
				$lang->_paths['com_kunena'][$filename] = 1;
			}
		}

		parent::__construct ( $subject, $config );
	}
Example #3
0
 /**
  * 
  *
  * 
  */
 protected function setFile()
 {
     $params = JComponentHelper::getParams('com_languages');
     $frontend_lang = $params->get('site', 'en-GB');
     $language = JLanguage::getInstance($frontend_lang);
     // get language file for edit
     $language = JFactory::getLanguage();
     $language->load('com_jdownloads');
     $lang_file = JLanguage::getLanguagePath(JPATH_SITE);
     $lang_file .= DS . $frontend_lang . DS . $frontend_lang . '.com_jdownloads.ini';
     @chmod($lang_file, 0755);
     clearstatcache();
     if (is_writable($lang_file) == false) {
         $language_writable = false;
     } else {
         $language_writable = true;
     }
     if ($language_writable) {
         $f = fopen($lang_file, "r");
         $language_text = fread($f, filesize($lang_file));
         $this->languagetext = htmlspecialchars($language_text);
     } else {
         $this->languagetext = '';
     }
     $this->languagefile = $lang_file;
     $this->languagefile_writable = $language_writable;
 }
Example #4
0
 function listslanguagesType()
 {
     jimport('joomla.filesystem.folder');
     $path = JLanguage::getLanguagePath(JPATH_ROOT);
     $dirs = JFolder::folders($path);
     $this->languages = array();
     foreach ($dirs as $dir) {
         if (strlen($dir) != 5 || $dir == "xx-XX") {
             continue;
         }
         $xmlFiles = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$');
         $xmlFile = reset($xmlFiles);
         if (empty($xmlFile)) {
             continue;
         }
         $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $xmlFile);
         $oneLanguage = new stdClass();
         $oneLanguage->language = strtolower($dir);
         $oneLanguage->name = empty($data['name']) ? $dir : $data['name'];
         $this->languages[] = $oneLanguage;
     }
     if (count($this->languages) < 2) {
         return;
     }
     $this->multipleLang = true;
     $this->choice = array();
     $this->choice[] = JHTML::_('select.option', 'all', JText::_('ACY_ALL'));
     $this->choice[] = JHTML::_('select.option', 'special', JText::_('ACY_CUSTOM'));
     $js = "function updateLanguages(){\n\t\t\tchoice = eval('document.adminForm.choice_languages');\n\t\t\tchoiceValue = 'special';\n\t\t\tfor (var i=0; i < choice.length; i++){\n\t\t\t\t if (choice[i].checked){\n\t\t\t\t\t choiceValue = choice[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thiddenVar = document.getElementById('hidden_languages');\n\t\t\tif(choiceValue != 'special'){\n\t\t\t\thiddenVar.value = choiceValue;\n\t\t\t\tdocument.getElementById('div_languages').style.display = 'none';\n\t\t\t}else{\n\t\t\t\tdocument.getElementById('div_languages').style.display = 'block';\n\t\t\t\tspecialVar = eval('document.adminForm.special_languages');\n\t\t\t\tfinalValue = '';\n\t\t\t\tfor (var i=0; i < specialVar.length; i++){\n\t\t\t\t\tif (specialVar[i].checked){\n\t\t\t\t\t\t\t finalValue += specialVar[i].value+',';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thiddenVar.value = finalValue;\n\t\t\t}\n\n\t\t}";
     $doc = JFactory::getDocument();
     $doc->addScriptDeclaration($js);
 }
Example #5
0
 function convertLng($data)
 {
     session_cache_expire(1800000);
     $path = JLanguage::getLanguagePath(JPATH_COMPONENT_ADMINISTRATOR) . DS . $data['lng'] . DS . '*.ini';
     $dirs = glob($path);
     foreach ($dirs as $file) {
         header("Content-type: application/csv");
         header("Content-Disposition: attachment; filename=" . basename($file));
         header("Pragma: no-cache");
         header("Expires: 0");
         $arr = file($file);
         foreach ($arr as $line) {
             $line = str_replace('"', "'", $line);
             // dmp($line);
             $ex = explode("=", $line);
             // dmp($ex);
             if (count($ex) > 1) {
                 echo $ex[0] . "=";
                 if (count($ex) > 2) {
                     unset($ex[0]);
                     $str = '"' . implode("=", $ex);
                     $str = str_replace("\r\n", "\"\r\n", $str);
                     echo $str;
                 } else {
                     $str = '"' . $ex[1];
                     $str = str_replace("\r\n", "\"\r\n", $str);
                     echo $str;
                 }
             }
         }
     }
 }
 function installMessage()
 {
     $db = JFactory::getDBO();
     $lang = JFactory::getLanguage();
     $currentlang = $lang->getTag();
     $objectReadxmlDetail = new JSNISReadXmlDetails();
     $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails();
     $langSupport = $infoXmlDetail['langs'];
     $registry = new JRegistry();
     $newStrings = array();
     $path = null;
     $realLang = null;
     $queries = array();
     if (array_key_exists($currentlang, $langSupport)) {
         $path = JLanguage::getLanguagePath(JPATH_BASE, $currentlang);
         $realLang = $currentlang;
     } else {
         $filepath = JPATH_ROOT . DS . 'administrator' . DS . 'language';
         $foldersLang = $this->getFolder($filepath);
         foreach ($foldersLang as $value) {
             if (in_array($value, $langSupport) == true) {
                 $path = JLanguage::getLanguagePath(JPATH_BASE, $value);
                 $realLang = $value;
                 break;
             }
         }
     }
     $filename = $path . DS . $realLang . '.com_imageshow.ini';
     $objJNSUtils = JSNISFactory::getObj('classes.jsn_is_utils');
     $content = $objJNSUtils->readFileToString($filename);
     if ($content) {
         $registry->loadString($content);
         $newStrings = $registry->toArray();
         if (count($newStrings)) {
             if (count($infoXmlDetail['menu'])) {
                 $queries[] = 'TRUNCATE TABLE #__jsn_imageshow_messages';
                 foreach ($infoXmlDetail['menu'] as $value) {
                     $index = 1;
                     while (isset($newStrings['MESSAGE_' . $value . '_' . $index . '_PRIMARY'])) {
                         $queries[] = 'INSERT INTO #__jsn_imageshow_messages (msg_screen, published, ordering) VALUES (\'' . $value . '\', 1, ' . $index . ')';
                         $index++;
                     }
                 }
             }
         }
         if (count($queries)) {
             foreach ($queries as $query) {
                 $query = trim($query);
                 if ($query != '') {
                     $db->setQuery($query);
                     $db->query();
                 }
             }
         }
     }
     return true;
 }
 function installMessage()
 {
     $db =& JFactory::getDBO();
     $lang =& JFactory::getLanguage();
     $currentlang = $lang->getTag();
     $objectReadxmlDetail = new JSNISReadXmlDetails();
     $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails();
     $langSupport = $infoXmlDetail['langs'];
     $registry = new JRegistry();
     $newStrings = array();
     $path = null;
     $realLang = null;
     $queries = array();
     if (array_key_exists($currentlang, $langSupport)) {
         $path = JLanguage::getLanguagePath(JPATH_BASE, $currentlang);
         $realLang = $currentlang;
     } else {
         $filepath = JPATH_ROOT . DS . 'administrator' . DS . 'language';
         $foldersLang = $this->getFolder($filepath);
         foreach ($foldersLang as $value) {
             if (in_array($value, $langSupport) == true) {
                 $path = JLanguage::getLanguagePath(JPATH_BASE, $value);
                 $realLang = $value;
                 break;
             }
         }
     }
     $filename = $path . DS . $realLang . '.com_imageshow.ini';
     $content = @file_get_contents($filename);
     if ($content) {
         $registry->loadINI($content);
         $newStrings = $registry->toArray();
         if (count($newStrings)) {
             if (count($infoXmlDetail['menu'])) {
                 $queries[] = 'TRUNCATE TABLE `#__imageshow_messages`';
                 foreach ($infoXmlDetail['menu'] as $value) {
                     $index = 1;
                     while (isset($newStrings['MESSAGE ' . $value . ' ' . $index . ' PRIMARY'])) {
                         $queries[] = 'INSERT INTO `#__imageshow_messages` (`msg_id`,`msg_screen`,`published`,`ordering`) VALUES (NULL, "' . $value . '", 1, ' . $index . ')';
                         $index++;
                     }
                 }
             }
         }
         if (count($queries)) {
             foreach ($queries as $query) {
                 $query = trim($query);
                 if ($query != '') {
                     $db->setQuery($query);
                     $db->query();
                 }
             }
         }
     }
     return true;
 }
Example #8
0
 function language()
 {
     $this->setLayout('default');
     $code = JRequest::getCmd('code');
     if (empty($code)) {
         acymailing_display('Code not specified', 'error');
         return;
     }
     $file = new stdClass();
     $file->name = $code;
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini';
     $file->path = $path;
     jimport('joomla.filesystem.file');
     $showLatest = true;
     $loadLatest = false;
     if (JFile::exists($path)) {
         $file->content = JFile::read($path);
         if (empty($file->content)) {
             acymailing_display('File not found : ' . $path, 'error');
         }
     } else {
         $loadLatest = true;
         acymailing_enqueueMessage(JText::_('LOAD_ENGLISH_1') . '<br />' . JText::_('LOAD_ENGLISH_2') . '<br />' . JText::_('LOAD_ENGLISH_3'), 'info');
         $file->content = JFile::read(JLanguage::getLanguagePath(JPATH_ROOT) . DS . 'en-GB' . DS . 'en-GB.com_acymailing.ini');
     }
     $custompath = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing_custom.ini';
     if (JFile::exists($custompath)) {
         $file->customcontent = JFile::read($custompath);
     }
     if ($loadLatest or JRequest::getCmd('task') == 'latest') {
         if (file_exists(JPATH_ROOT . DS . 'language' . DS . $code)) {
             $doc = JFactory::getDocument();
             $doc->addScript(ACYMAILING_UPDATEURL . 'languageload&code=' . JRequest::getCmd('code'));
         } else {
             acymailing_enqueueMessage('The specified language "' . htmlspecialchars($code, ENT_COMPAT, 'UTF-8') . '" is not installed on your site', 'warning');
         }
         $showLatest = false;
     } elseif (JRequest::getCmd('task') == 'save') {
         $showLatest = false;
     }
     if (JRequest::getString('tmpl') == 'component') {
         $acyToolbar = acymailing::get('helper.toolbar');
         $acyToolbar->save();
         $acyToolbar->custom('share', JText::_('SHARE'), 'share', false);
         $acyToolbar->setTitle(JText::_('ACY_FILE') . ' : ' . $this->escape($file->name));
         $acyToolbar->topfixed = false;
         $acyToolbar->display();
     }
     $this->assignRef('showLatest', $showLatest);
     $this->assignRef('file', $file);
 }
Example #9
0
 function wizard()
 {
     $db = JFactory::getDBO();
     hikashop_setTitle(JText::_('HIKA_WIZARD'), 'config', 'update&task=wizard');
     if (!HIKASHOP_PHP5) {
         $bar =& JToolBar::getInstance('toolbar');
     } else {
         $bar = JToolBar::getInstance('toolbar');
     }
     $bar->appendButton('Link', 'hikashop', JText::_('HIKA_SKIP'), hikashop_completeLink('update&task=post_install&fromversion=&update=0'));
     $languagesCodes = array();
     $languagesNames = array();
     if (HIKASHOP_J25) {
         $db->setQuery('SELECT * FROM ' . hikashop_table('languages', false) . ' WHERE `published` = 1');
         $languages = $db->loadObjectList();
         foreach ($languages as $language) {
             $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $language->lang_code . DS . $language->lang_code . '.com_hikashop.ini';
             if (!JFile::exists($path)) {
                 $languagesCodes[] = $language->lang_code;
                 $languagesNames[] = $language->title;
             }
         }
     }
     if (!empty($languagesCodes)) {
         $languageCodes = implode('_', $languagesCodes);
     }
     if (!empty($languagesNames)) {
         $languagesNames = implode(', ', $languagesNames);
     }
     $this->assignRef('languageCodes', $languageCodes);
     $this->assignRef('languageNames', $languagesNames);
     $fieldsClass = hikashop_get('class.field');
     $this->assignRef('fieldsClass', $fieldsClass);
     static $Itemid;
     if (isset($Itemid) && !empty($Itemid)) {
         $url_itemid = '&item_id=' . $Itemid;
     } else {
         $url_itemid = '';
     }
     $address = new stdClass();
     $extraFields = array();
     $extraFields['address'] = $fieldsClass->getFields('frontcomp', $address, 'address', 'update&task=state' . $url_itemid);
     $this->assignRef('extraFields', $extraFields);
     $this->assignRef('address', $address);
     $db->setQuery('SELECT * FROM ' . hikashop_table('currency') . ' WHERE 1 ORDER BY `currency_code`');
     $currencies = $db->loadObjectList();
     $this->assignRef('currencies', $currencies);
     hikashop_loadJslib('jquery');
     $app = JFactory::getApplication();
     $app->enqueueMessage(JText::_('WELCOME_WIZARD', 'success'));
 }
Example #10
0
	function _loadItems()
	{
		global $mainframe, $option;

		$db = &JFactory::getDBO();

		// Get the site languages
		$langBDir = JLanguage::getLanguagePath(JPATH_SITE);
		$langDirs = JFolder::folders($langBDir);

		for ($i=0; $i < count($langDirs); $i++)
		{
			$lang = new stdClass();
			$lang->folder = $langDirs[$i];
			$lang->baseDir = $langBDir;
			$languages[] = $lang;
		}
		$rows = array();
		$rowid = 0;
		foreach ($languages as $language)
		{
			$files = JFolder::files( $language->baseDir.DS.$language->folder, '\.(com_jce)\.xml$' );
			foreach ($files as $file)
			{
				$data = JApplicationHelper::parseXMLInstallFile($language->baseDir.DS.$language->folder.DS.$file);

				$row 			= new StdClass();
				$row->id 		= $rowid;
				$row->language 	= $language->baseDir.DS.$language->folder;

				// If we didn't get valid data from the xml file, move on...
				if (!is_array($data)) {
					continue;
				}

				// Populate the row from the xml meta file
				foreach($data as $key => $value) {
					$row->$key = $value;
				}
				$row->jname = JString::strtolower( str_replace( " ", "_", $row->name ) );
				$rows[] = $row;
				$rowid++;
			}
		}
		$this->setState('pagination.total', count($rows));
		if($this->_state->get('pagination.limit') > 0) {
			$this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') );
		} else {
			$this->_items = $rows;
		}
	}
Example #11
0
/**
* Compiles a list of installed languages
*/
function viewLanguages()
{
    global $mainframe, $option;
    // Initialize some variables
    $db =& JFactory::getDBO();
    $client =& JApplicationHelper::getClientInfo(JRequest::getVar('client', '0', '', 'int'));
    $rows = array();
    $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
    $limitstart = $mainframe->getUserStateFromRequest($option . '.limitstart', 'limitstart', 0, 'int');
    $rowid = 0;
    // Set FTP credentials, if given
    jimport('joomla.client.helper');
    $ftp =& JClientHelper::setCredentialsFromRequest('ftp');
    //load folder filesystem class
    jimport('joomla.filesystem.folder');
    $path = JLanguage::getLanguagePath($client->path);
    $dirs = JFolder::folders($path);
    foreach ($dirs as $dir) {
        $files = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$');
        foreach ($files as $file) {
            $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $file);
            $row = new StdClass();
            $row->id = $rowid;
            $row->language = substr($file, 0, -4);
            if (!is_array($data)) {
                continue;
            }
            foreach ($data as $key => $value) {
                $row->{$key} = $value;
            }
            // if current than set published
            $params = JComponentHelper::getParams('com_languages');
            if ($params->get($client->name, 'en-GB') == $row->language) {
                $row->published = 1;
            } else {
                $row->published = 0;
            }
            $row->checked_out = 0;
            $row->mosname = JString::strtolower(str_replace(" ", "_", $row->name));
            $rows[] = $row;
            $rowid++;
        }
    }
    jimport('joomla.html.pagination');
    $pageNav = new JPagination($rowid, $limitstart, $limit);
    $rows = array_slice($rows, $pageNav->limitstart, $pageNav->limit);
    HTML_languages::showLanguages($rows, $pageNav, $option, $client, $ftp);
}
Example #12
0
 /**
  * Loads an aray of javascript language
  * 
  * @params array $langs Array of language files
  * 
  * @return void
  */
 public function language($langs)
 {
     //force array
     settype($langs, 'array');
     $scripts = '';
     $tag = JFactory::getLanguage()->getTag();
     $base = JLanguage::getLanguagePath(JPATH_ROOT, $tag);
     foreach ($langs as $lang) {
         $path = $base . '/' . $tag . '.' . $lang . '.js';
         if (is_readable($path)) {
             $src = JURI::base() . '/language/' . $tag . '/' . $tag . '.' . $lang . '.js';
             $scripts .= '<script type="text/javascript" src="' . $src . '"></script>' . "\n";
         }
     }
     return $scripts;
 }
Example #13
0
 /**
  * Get a list of langpack info
  *
  * @return array
  */
 public function getList()
 {
     if (!isset($this->_list)) {
         $basedir = JLanguage::getLanguagePath(JPATH_SITE);
         $dirs = JFolder::folders($basedir, '.', false, false, array('.svn', 'CVS', 'pdf_fonts'));
         $this->_list = array();
         foreach ($dirs as $dir) {
             foreach (JFolder::files($basedir . DS . $dir, '^([-_A-Za-z]*)\\.xml$') as $file) {
                 if ($data = $this->_parseXml($basedir . DS . $dir . DS . $file)) {
                     $this->_list[$dir] = $data;
                     break;
                 }
             }
         }
     }
     return $this->_list;
 }
 public static function language($value)
 {
     if (empty($value)) {
         return static::value($value);
     } else {
         $path = JLanguage::getLanguagePath(JPATH_SITE, $value);
         $file = "{$value}.xml";
         $result = null;
         if (is_file("{$path}/{$file}")) {
             $result = JLanguage::parseXMLLanguageFile("{$path}/{$file}");
         }
         if ($result) {
             return htmlspecialchars($result['name']);
         } else {
             return static::value('');
         }
     }
 }
Example #15
0
 function __construct(&$subject, $config)
 {
     // Check if Kunena API exists
     $api = JPATH_ADMINISTRATOR . '/components/com_kunena/api.php';
     if (!is_file($api)) {
         return false;
     }
     jimport('joomla.application.component.helper');
     // Check if Kunena component is installed/enabled
     if (!JComponentHelper::isEnabled('com_kunena', true)) {
         return false;
     }
     // Load Kunena API
     require_once $api;
     // Do not load if Kunena version is not supported or Kunena is not installed
     if (!(class_exists('KunenaForum') && KunenaForum::isCompatible('2.0') && KunenaForum::installed())) {
         return false;
     }
     $this->loadLanguage('plg_system_kunena.sys', JPATH_ADMINISTRATOR) || $this->loadLanguage('plg_system_kunena.sys', KPATH_ADMIN);
     if (version_compare(JVERSION, '1.6', '<')) {
         // Joomla 1.5: Fix bugs and bad performance
         $lang = JFactory::getLanguage();
         if (JFactory::getApplication()->isAdmin()) {
             // Load the missing language files in administration
             $lang->load('com_kunena.menu', JPATH_ADMINISTRATOR) || $lang->load('com_kunena.menu', KPATH_ADMIN);
             $lang->load('com_kunena.sys', JPATH_ADMINISTRATOR) || $lang->load('com_kunena.sys', KPATH_ADMIN);
             if (JRequest::getCmd('option') == 'com_plugins' && JRequest::getCmd('view') == 'plugin' && JRequest::getCmd('task') == 'edit') {
                 // Support for J!1.7 .sys language files
                 $cid = JRequest::getVar('cid', array(0), '', 'array');
                 $row = JTable::getInstance('plugin');
                 $row->load((int) $cid[0]);
                 $lang->load('plg_' . trim($row->folder) . '_' . trim($row->element) . '.sys', JPATH_ADMINISTRATOR) || $lang->load('plg_' . trim($row->folder) . '_' . trim($row->element) . '.sys', KPATH_ADMIN);
             }
         } else {
             // Never load language file
             $filename = JLanguage::getLanguagePath(JPATH_BASE, $lang->_lang) . "/{$lang->_lang}.com_kunena.ini";
             $lang->_paths['com_kunena'][$filename] = 1;
         }
     }
     parent::__construct($subject, $config);
 }
Example #16
0
 function _savelanguage()
 {
     jimport('joomla.filesystem.file');
     $code = JRequest::getString('code');
     JRequest::setVar('code', $code);
     $content = JRequest::getVar('content', '', '', 'string', JREQUEST_ALLOWRAW);
     if (empty($code) or empty($content)) {
         return;
     }
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini';
     $result = JFile::write($path, $content);
     if ($result) {
         acymailing::display(JText::_('JOOMEXT_SUCC_SAVED'), 'success');
         $js = "window.top.document.getElementById('image{$code}').src = '" . ACYMAILING_LIVE . "images/M_images/edit.png'";
         $doc =& JFactory::getDocument();
         $doc->addScriptDeclaration($js);
     } else {
         acymailing::display(JText::sprintf('FAIL_SAVE', $path), 'error');
     }
     return $result;
 }
Example #17
0
 function installMenu($code = '')
 {
     if (empty($code)) {
         $lang =& JFactory::getLanguage();
         $code = $lang->getTag();
     }
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini';
     if (!file_exists($path)) {
         return;
     }
     $content = file_get_contents($path);
     if (empty($content)) {
         return;
     }
     $menuFileContent = 'COM_ACYMAILING="AcyMailing"' . "\r\n";
     $menuFileContent = 'ACYMAILING="AcyMailing"' . "\r\n";
     $menuStrings = array('USERS', 'LISTS', 'TEMPLATES', 'NEWSLETTERS', 'AUTONEWSLETTERS', 'CAMPAIGN', 'QUEUE', 'STATISTICS', 'CONFIGURATION', 'UPDATE_ABOUT');
     foreach ($menuStrings as $oneString) {
         preg_match('#(\\n|\\r)(ACY_)?' . $oneString . '="(.*)"#i', $content, $matches);
         if (empty($matches[3])) {
             continue;
         }
         if (version_compare(JVERSION, '1.6.0', '<')) {
             $menuFileContent .= 'COM_ACYMAILING.' . $oneString . '="' . $matches[3] . '"' . "\r\n";
         } else {
             $menuFileContent .= $oneString . '="' . $matches[3] . '"' . "\r\n";
         }
     }
     if (version_compare(JVERSION, '1.6.0', '<')) {
         $menuPath = ACYMAILING_ROOT . 'administrator' . DS . 'language' . DS . $code . DS . $code . '.com_acymailing.menu.ini';
     } else {
         $menuPath = ACYMAILING_ROOT . 'administrator' . DS . 'language' . DS . $code . DS . $code . '.com_acymailing.sys.ini';
     }
     if (!JFile::write($menuPath, $menuFileContent)) {
         acymailing::display(JText::sprintf('FAIL_SAVE', $menuPath), 'error');
     }
 }
Example #18
0
 public function getLanguages()
 {
     // Get the site languages
     $base = JLanguage::getLanguagePath(JPATH_SITE);
     $dirs = JFolder::folders($base);
     for ($i = 0; $i < count($dirs); $i++) {
         $lang = new stdClass();
         $lang->folder = $dirs[$i];
         $lang->baseDir = $base;
         $languages[] = $lang;
     }
     $rows = array();
     foreach ($languages as $language) {
         $files = JFolder::files($language->baseDir . '/' . $language->folder, '\\.(com_jce)\\.xml$');
         foreach ($files as $file) {
             $data = WFXMLHelper::parseInstallManifest($language->baseDir . '/' . $language->folder . '/' . $file);
             $row = new StdClass();
             $row->language = $language->folder;
             if ($row->language == 'en-GB') {
                 $row->cbd = 'disabled="disabled"';
                 $row->style = ' style="color:#999999;"';
             } else {
                 $row->cbd = '';
                 $row->style = '';
             }
             // If we didn't get valid data from the xml file, move on...
             if (!is_array($data)) {
                 continue;
             }
             // Populate the row from the xml meta file
             foreach ($data as $key => $value) {
                 $row->{$key} = $value;
             }
             $rows[] = $row;
         }
     }
     return $rows;
 }
Example #19
0
 /**
  * Returns the installed language files in the administrative and
  * front-end area.
  *
  * @param   mixed  $db  JDatabaseDriver instance.
  *
  * @return  array  Array with installed language packs in admin and site area.
  *
  * @since   3.1
  */
 public function getLocaliseAdmin($db = false)
 {
     // Read the files in the admin area.
     $path = JLanguage::getLanguagePath(JPATH_ADMINISTRATOR);
     $langfiles['admin'] = JFolder::folders($path);
     // Read the files in the site area.
     $path = JLanguage::getLanguagePath(JPATH_SITE);
     $langfiles['site'] = JFolder::folders($path);
     if ($db) {
         $langfiles_disk = $langfiles;
         $langfiles = array();
         $langfiles['admin'] = array();
         $langfiles['site'] = array();
         $query = $db->getQuery(true)->select($db->quoteName(array('element', 'client_id')))->from($db->quoteName('#__extensions'))->where($db->quoteName('type') . ' = ' . $db->quote('language'));
         $db->setQuery($query);
         $langs = $db->loadObjectList();
         foreach ($langs as $lang) {
             switch ($lang->client_id) {
                 // Site.
                 case 0:
                     if (in_array($lang->element, $langfiles_disk['site'])) {
                         $langfiles['site'][] = $lang->element;
                     }
                     break;
                     // Administrator.
                 // Administrator.
                 case 1:
                     if (in_array($lang->element, $langfiles_disk['admin'])) {
                         $langfiles['admin'][] = $lang->element;
                     }
                     break;
             }
         }
     }
     return $langfiles;
 }
 function getLanguages()
 {
     $path = JLanguage::getLanguagePath(JPATH_ROOT);
     $dirs = JFolder::folders($path);
     foreach ($dirs as $dir) {
         if (strlen($dir) != 5) {
             continue;
         }
         $xmlFiles = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$');
         $xmlFile = reset($xmlFiles);
         if (empty($xmlFile)) {
             continue;
         }
         $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $xmlFile);
         $oneLanguage = new stdClass();
         $oneLanguage->language = $dir;
         $oneLanguage->name = $data['name'];
         $languageFiles = JFolder::files(JPATH_COMPONENT . DS . 'language' . DS . $dir, '^(.*)\\.' . getBookingExtName() . '\\.ini$');
         $imageName = JFolder::files(JPATH_COMPONENT . DS . 'language' . DS . $dir, '^(.*)\\.' . getBookingExtName() . '\\.png$');
         $languageFile = reset($languageFiles);
         if (!empty($languageFile)) {
             $linkEdit = 'index.php?option=' . getBookingExtName() . '&amp;task=language.editLanguage&amp;lngCode=' . $oneLanguage->language;
             $oneLanguage->edit = ' <a class="modal" title="' . JText::_('LNG_EDIT_LANGUAGE_FILE', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><img id="image' . $oneLanguage->language . '" class="icon16" src="' . PATH_ASSETS_IMG . 'edit.png" alt="' . JText::_('LNG_EDIT_LANGUAGE_FILE', true) . '"/></a>';
         } else {
             $linkEdit = 'index.php?option=' . getBookingExtName() . '&amp;task=language.editLanguage&amp;lngCode=' . $oneLanguage->language;
             $oneLanguage->edit = ' <a class="modal" title="' . JText::_('LNG_ADD_LANGUAGE_FILE', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><img id="image' . $oneLanguage->language . '" class="icon16" src="' . PATH_ASSETS_IMG . 'edit.png" alt="' . JText::_('LNG_EDIT_LANGUAGE_FILE', true) . '"/></a>';
         }
         $languages[] = $oneLanguage;
     }
     return $languages;
 }
Example #21
0
 function _loadItems()
 {
     global $mainframe, $option;
     $db =& JFactory::getDBO();
     if ($this->_state->get('filter.client') < 0) {
         $client = 'all';
         // Get the site languages
         $langBDir = JLanguage::getLanguagePath(JPATH_SITE);
         $langDirs = JFolder::folders($langBDir);
         for ($i = 0; $i < count($langDirs); $i++) {
             $lang = new stdClass();
             $lang->folder = $langDirs[$i];
             $lang->client = 0;
             $lang->baseDir = $langBDir;
             $languages[] = $lang;
         }
         // Get the admin languages
         $langBDir = JLanguage::getLanguagePath(JPATH_ADMINISTRATOR);
         $langDirs = JFolder::folders($langBDir);
         for ($i = 0; $i < count($langDirs); $i++) {
             $lang = new stdClass();
             $lang->folder = $langDirs[$i];
             $lang->client = 1;
             $lang->baseDir = $langBDir;
             $languages[] = $lang;
         }
     } else {
         $clientInfo =& JApplicationHelper::getClientInfo($this->_state->get('filter.client'));
         $client = $clientInfo->name;
         $langBDir = JLanguage::getLanguagePath($clientInfo->path);
         $langDirs = JFolder::folders($langBDir);
         for ($i = 0, $n = count($langDirs); $i < $n; $i++) {
             $lang = new stdClass();
             $lang->folder = $langDirs[$i];
             $lang->client = $clientInfo->id;
             $lang->baseDir = $langBDir;
             if ($this->_state->get('filter.string')) {
                 if (strpos($lang->folder, $this->_state->get('filter.string')) !== false) {
                     $languages[] = $lang;
                 }
             } else {
                 $languages[] = $lang;
             }
         }
     }
     $rows = array();
     $rowid = 0;
     foreach ($languages as $language) {
         $files = JFolder::files($language->baseDir . DS . $language->folder, '^([-_A-Za-z]*)\\.xml$');
         foreach ($files as $file) {
             $data = JApplicationHelper::parseXMLLangMetaFile($language->baseDir . DS . $language->folder . DS . $file);
             $row = new StdClass();
             $row->id = $rowid;
             $row->client_id = $language->client;
             $row->language = $language->baseDir . DS . $language->folder;
             // If we didn't get valid data from the xml file, move on...
             if (!is_array($data)) {
                 continue;
             }
             // Populate the row from the xml meta file
             foreach ($data as $key => $value) {
                 $row->{$key} = $value;
             }
             // if current than set published
             $clientVals =& JApplicationHelper::getClientInfo($row->client_id);
             $lang = JComponentHelper::getParams('com_languages');
             if ($lang->get($clientVals->name, 'en-GB') == basename($row->language)) {
                 $row->published = 1;
             } else {
                 $row->published = 0;
             }
             $row->checked_out = 0;
             $row->jname = JString::strtolower(str_replace(" ", "_", $row->name));
             $rows[] = $row;
             $rowid++;
         }
     }
     $this->setState('pagination.total', count($rows));
     // if the offset is greater than the total, then can the offset
     if ($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) {
         $this->setState('pagination.offset', 0);
     }
     if ($this->_state->get('pagination.limit') > 0) {
         $this->_items = array_slice($rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit'));
     } else {
         $this->_items = $rows;
     }
 }
Example #22
0
 /**
  * Get the languages folder path.
  *
  * @return  string  The path to the languages folders
  *
  * @since   3.1
  */
 protected function getPath()
 {
     if (is_null($this->path)) {
         $client = $this->getClient();
         $this->path = JLanguage::getLanguagePath($client->path);
     }
     return $this->path;
 }
Example #23
0
 function _savelanguage()
 {
     if (!$this->isAllowed('configuration', 'manage')) {
         return;
     }
     JRequest::checkToken() or die('Invalid Token');
     jimport('joomla.filesystem.file');
     $code = JRequest::getCmd('code');
     JRequest::setVar('code', $code);
     $content = JRequest::getVar('content', '', '', 'string', JREQUEST_ALLOWHTML);
     if (empty($code) or empty($content)) {
         return;
     }
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing.ini';
     $result = JFile::write($path, $content);
     if ($result) {
         acymailing_display(JText::_('JOOMEXT_SUCC_SAVED'), 'success');
         $js = "window.top.document.getElementById('image{$code}').src = '" . ACYMAILING_IMAGES . "icons/icon-16-edit.png'";
         $doc = JFactory::getDocument();
         $doc->addScriptDeclaration($js);
         $updateHelper = acymailing_get('helper.update');
         $updateHelper->installMenu($code);
     } else {
         acymailing_display(JText::sprintf('FAIL_SAVE', $path), 'error');
     }
     $customcontent = JRequest::getVar('customcontent', '', '', 'string', JREQUEST_ALLOWHTML);
     $custompath = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_acymailing_custom.ini';
     $customresult = JFile::write($custompath, $customcontent);
     if (!$customresult) {
         acymailing_display(JText::sprintf('FAIL_SAVE', $custompath), 'error');
     }
     return $result;
 }
Example #24
0
/**
* get system language
* 
* @param int $client (0 - site, 1 - admin)
*/
function getAllLanguages($client = 0)
{
    $pattern = '#(.*?)\\(#is';
    $client = JApplicationHelper::getClientInfo($client);
    $rows = array();
    jimport('joomla.filesystem.folder');
    $path = JLanguage::getLanguagePath($client->path);
    $dirs = JFolder::folders($path);
    foreach ($dirs as $dir) {
        $files = JFolder::files($path . '/' . $dir, '^([-_A-Za-z]*)\\.xml$');
        foreach ($files as $file) {
            $data = JApplicationHelper::parseXMLLangMetaFile($path . '/' . $dir . '/' . $file);
            $row = new StdClass();
            $row->descr = $data['name'];
            $row->language = substr($file, 0, -4);
            $row->lang = substr($row->language, 0, 2);
            $row->name = $data['name'];
            preg_match($pattern, $row->name, $matches);
            if (isset($matches[1])) {
                $row->name = trim($matches[1]);
            }
            if (!is_array($data)) {
                continue;
            }
            $rows[] = $row;
        }
    }
    return $rows;
}
Example #25
0
 /**
  * Returns an annotated list of all front-end or back-end languages
  *
  * @param bool $frontend If true returns front-end languages, if false returns back-end languages
  * @return array The annotated languages array
  */
 function &_getAllLanguages($frontend = true)
 {
     static $_feLanguages;
     static $_beLanguages;
     if ($frontend) {
         if (!$_feLanguages) {
             $_feLanguages = array();
             jimport('joomla.filesystem.folder');
             // Get the site languages
             $langBDir = JLanguage::getLanguagePath(JPATH_SITE);
             $langDirs = JFolder::folders($langBDir);
             for ($i = 0; $i < count($langDirs); $i++) {
                 // Try to find VALID languages, by scanning and parsing their XML files
                 $row = array();
                 $row['language'] = $langDirs[$i];
                 $row['basedir'] = $langBDir;
                 $files = JFolder::files($langBDir . DS . $langDirs[$i], '^([-_A-Za-z]*)\\.xml$');
                 foreach ($files as $file) {
                     $data = JApplicationHelper::parseXMLLangMetaFile($langBDir . DS . $langDirs[$i] . DS . $file);
                     // If we didn't get valid data from the xml file, move on...
                     if (!is_array($data)) {
                         continue;
                     }
                     // Populate the row from the xml meta file
                     foreach ($data as $key => $value) {
                         $row[$key] = $value;
                     }
                     $clientVals =& JApplicationHelper::getClientInfo(0);
                     $lang = JComponentHelper::getParams('com_languages');
                     $row['default'] = $lang->get($clientVals->name, 'en-GB') == basename($row['language']);
                 }
                 if (isset($row['default'])) {
                     $_feLanguages[] = $row;
                 }
             }
         }
         return $_feLanguages;
     } else {
         if (!$_beLanguages) {
             $_beLanguages = array();
             jimport('joomla.filesystem.folder');
             // Get the site languages
             $langBDir = JLanguage::getLanguagePath(JPATH_ADMINISTRATOR);
             $langDirs = JFolder::folders($langBDir);
             for ($i = 0; $i < count($langDirs); $i++) {
                 // Try to find VALID languages, by scanning and parsing their XML files
                 $row = array();
                 $row['language'] = $langDirs[$i];
                 $row['basedir'] = $langBDir;
                 $files = JFolder::files($langBDir . DS . $langDirs[$i], '^([-_A-Za-z]*)\\.xml$');
                 foreach ($files as $file) {
                     $data = JApplicationHelper::parseXMLLangMetaFile($langBDir . DS . $langDirs[$i] . DS . $file);
                     // If we didn't get valid data from the xml file, move on...
                     if (!is_array($data)) {
                         continue;
                     }
                     // Populate the row from the xml meta file
                     foreach ($data as $key => $value) {
                         $row[$key] = $value;
                     }
                     $clientVals =& JApplicationHelper::getClientInfo(1);
                     $lang = JComponentHelper::getParams('com_languages');
                     $row['default'] = $lang->get($clientVals->name, 'en-GB') == basename($row['language']);
                 }
                 if (isset($row['default'])) {
                     $_beLanguages[] = $row;
                 }
             }
         }
         return $_beLanguages;
     }
 }
    function display($tpl = null)
    {
        JHTML::_('behavior.modal', 'a.modal');
        $toggleClass = acymailing_get('helper.toggle');
        $config = acymailing_config();
        $db = JFactory::getDBO();
        $doc = JFactory::getDocument();
        $app = JFactory::getApplication();
        jimport('joomla.filesystem.folder');
        jimport('joomla.filesystem.file');
        $lg = JFactory::getLanguage();
        $language = $lg->getTag();
        $styleRemind = 'float:right;margin-right:30px;position:relative;';
        $loadLink = '<a onclick="window.document.getElementById(\'acymailing_messages_warning\').style.display = \'none\';return true;" class="modal" rel="{handler: \'iframe\', size:{x:800, y:500}}" href="index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=latest&amp;code=' . $language . '">' . JText::_('LOAD_LATEST_LANGUAGE') . '</a>';
        if (!file_exists(ACYMAILING_ROOT . 'language' . DS . $language . DS . $language . '.com_acymailing.ini')) {
            if ($config->get('errorlanguagemissing', 1)) {
                $notremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('acymailing_messages_warning', 'errorlanguagemissing_0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
                acymailing_enqueueMessage(JText::_('MISSING_LANGUAGE') . ' ' . $loadLink . ' ' . $notremind, 'warning');
            }
        } elseif (version_compare(JText::_('ACY_LANG_VERSION'), $config->get('version'), '<')) {
            if ($config->get('errorlanguageupdate', 1)) {
                $notremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('acymailing_messages_warning', 'errorlanguageupdate_0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
                acymailing_enqueueMessage(JText::_('UPDATE_LANGUAGE') . ' ' . $loadLink . ' ' . $notremind, 'warning');
            }
        }
        if (ACYMAILING_J30 && $app->getTemplate() == 'hathor') {
            if ($config->get('errortemplatenotisis', 1)) {
                $message = ' You can change the default Back-end template <a href="index.php?option=com_templates&view=styles">Here</a> or change your personnal default Back-end template by editing your user profile <a href="index.php?option=com_users&view=users">Here</a>, tab "Basic Settings".';
                $personalTemplate = JFactory::getUser()->getParam('admin_style');
                if (!empty($personalTemplate)) {
                    $message = ' You can change your personnal default Back-end template by editing your user profile <a href="index.php?option=com_users&view=users">Here</a>, tab "Basic Settings".';
                }
                $notremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('acymailing_messages_warning', 'errortemplatenotisis_0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
                acymailing_enqueueMessage('You should rather use the isis template in the Back-End which suits more AcyMailing.' . $message . $notremind, 'warning');
            }
        }
        $indexes = array('listsub', 'stats', 'list', 'mail', 'userstats', 'urlclick', 'history', 'template', 'queue', 'subscriber');
        $addIndexes = array('We recenty optimized our database...');
        foreach ($indexes as $oneTable) {
            if ($config->get('optimize_' . $oneTable, 1)) {
                continue;
            }
            $addIndexes[] = 'Please ' . $toggleClass->toggleText('addindex', $oneTable, 'config', 'click here') . ' to add indexes on the ' . $oneTable . ' table';
        }
        if (count($addIndexes) > 1) {
            acymailing_enqueueMessage($addIndexes, 'warning');
        }
        $acyToolbar = acymailing::get('helper.toolbar');
        $acyToolbar->custom('test', JText::_('SEND_TEST'), 'send', false);
        $acyToolbar->divider();
        $acyToolbar->addButtonOption('apply', JText::_('ACY_APPLY'), 'apply', false);
        $acyToolbar->save();
        $acyToolbar->cancel();
        $acyToolbar->divider();
        $acyToolbar->help('config');
        $acyToolbar->setTitle(JText::_('ACY_CONFIGURATION'), 'cpanel');
        $acyToolbar->display();
        $elements = new stdClass();
        $elements->add_names = JHTML::_('acyselect.booleanlist', "config[add_names]", '', $config->get('add_names', true));
        $elements->embed_images = JHTML::_('acyselect.booleanlist', "config[embed_images]", '', $config->get('embed_images', 0));
        $elements->embed_files = JHTML::_('acyselect.booleanlist', "config[embed_files]", '', $config->get('embed_files', 1));
        $elements->multiple_part = JHTML::_('acyselect.booleanlist', "config[multiple_part]", '', $config->get('multiple_part', 0));
        $mailerMethods = array('elasticemail', 'smtp', 'sendmail');
        $js = "function updateMailer(mailermethod){" . "\n";
        foreach ($mailerMethods as $oneMethod) {
            $js .= " window.document.getElementById('" . $oneMethod . "_config').style.display = 'none'; " . "\n";
        }
        $js .= "if(window.document.getElementById(mailermethod+'_config')) {window.document.getElementById(mailermethod+'_config').style.display = 'block';} }";
        $js .= 'window.addEvent(\'domready\', function(){ updateMailer(\'' . $config->get('mailer_method', 'phpmail') . '\'); });';
        $doc->addScriptDeclaration($js);
        $encodingval = array();
        $encodingval[] = JHTML::_('select.option', 'binary', 'Binary');
        $encodingval[] = JHTML::_('select.option', 'quoted-printable', 'Quoted-printable');
        $encodingval[] = JHTML::_('select.option', '7bit', '7 Bit');
        $encodingval[] = JHTML::_('select.option', '8bit', '8 Bit');
        $encodingval[] = JHTML::_('select.option', 'base64', 'Base 64');
        $elements->encoding_format = JHTML::_('select.genericlist', $encodingval, "config[encoding_format]", 'size="1" style="width:150px;"', 'value', 'text', $config->get('encoding_format', 'base64'));
        $charset = acymailing_get('type.charset');
        $elements->charset = $charset->display("config[charset]", $config->get('charset', 'UTF-8'));
        $securedVals = array();
        $securedVals[] = JHTML::_('select.option', '', '- - -');
        $securedVals[] = JHTML::_('select.option', 'ssl', 'SSL');
        $securedVals[] = JHTML::_('select.option', 'tls', 'TLS');
        $elements->smtp_secured = JHTML::_('select.genericlist', $securedVals, "config[smtp_secured]", 'size="1" style="width:100px;"', 'value', 'text', $config->get('smtp_secured'));
        $elements->smtp_auth = JHTML::_('acyselect.booleanlist', "config[smtp_auth]", '', $config->get('smtp_auth', 0));
        $elements->smtp_keepalive = JHTML::_('acyselect.booleanlist', "config[smtp_keepalive]", '', $config->get('smtp_keepalive', 1));
        $elements->allow_visitor = JHTML::_('acyselect.booleanlist', "config[allow_visitor]", '', $config->get('allow_visitor', 1));
        $editorType = acymailing_get('type.editor');
        $elements->editor = $editorType->display('config[editor]', $config->get('editor'));
        $elements->subscription_message = JHTML::_('acyselect.booleanlist', "config[subscription_message]", '', $config->get('subscription_message', 1));
        $elements->confirmation_message = JHTML::_('acyselect.booleanlist', "config[confirmation_message]", '', $config->get('confirmation_message', 1));
        $elements->unsubscription_message = JHTML::_('acyselect.booleanlist', "config[unsubscription_message]", '', $config->get('unsubscription_message', 1));
        $elements->welcome_message = JHTML::_('acyselect.booleanlist', "config[welcome_message]", '', $config->get('welcome_message', 1));
        $elements->unsub_message = JHTML::_('acyselect.booleanlist', "config[unsub_message]", '', $config->get('unsub_message', 1));
        $elements->confirm_message = JHTML::_('acyselect.booleanlist', "config[confirm_message]", '', $config->get('confirm_message', 0));
        if (acymailing_level(1)) {
            $forwardValues = array();
            $forwardValues[] = JHTML::_('select.option', 0, JTEXT::_('JOOMEXT_NO'));
            $forwardValues[] = JHTML::_('select.option', 1, JTEXT::_('JOOMEXT_YES'));
            $forwardValues[] = JHTML::_('select.option', 2, JTEXT::_('JOOMEXT_YES_FORWARD'));
            $elements->forward = JHTML::_('acyselect.radiolist', $forwardValues, "config[forward]", '', 'value', 'text', $config->get('forward', 0));
        } else {
            $elements->forward = acymailing_getUpgradeLink('essential');
        }
        if (acymailing_level(1)) {
            $js = "function updateDKIM(dkimval){\n\t\t\t\t\t\tif(dkimval == 1){document.getElementById('dkim_config').style.display = 'block';}\n\t\t\t\t\t\telse{document.getElementById('dkim_config').style.display = 'none';}\n\t\t\t\t\t\t};";
            $doc->addScriptDeclaration($js);
            if (function_exists('openssl_sign')) {
                $elements->dkim = JHTML::_('acyselect.booleanlist', "config[dkim]", 'onclick="updateDKIM(this.value)"', $config->get('dkim', 0));
            } else {
                $elements->dkim = '<input type="hidden" name="config[dkim]" value="0" />PHP Extension openssl not enabled';
            }
            $js = "function updateQueueProcess(newvalue){";
            $js .= "if(newvalue == 'onlyauto') {window.document.getElementById('method_auto').style.display = ''; window.document.getElementById('method_manual').style.display = 'none';}";
            $js .= "if(newvalue == 'auto') {window.document.getElementById('method_auto').style.display = ''; window.document.getElementById('method_manual').style.display = '';}";
            $js .= "if(newvalue == 'manual') {window.document.getElementById('method_auto').style.display = 'none'; window.document.getElementById('method_manual').style.display = '';}";
            $js .= '};';
            $doc->addScriptDeclaration($js);
            $queueType = array();
            $queueType[] = JHTML::_('select.option', 'onlyauto', JText::_('AUTO_ONLY'));
            $queueType[] = JHTML::_('select.option', 'auto', JText::_('AUTO_MAN'));
            $queueType[] = JHTML::_('select.option', 'manual', JText::_('MANUAL_ONLY'));
            $elements->queue_type = JHTML::_('acyselect.radiolist', $queueType, "config[queue_type]", 'onclick="updateQueueProcess(this.value);"', 'value', 'text', $config->get('queue_type', 'auto'));
        } else {
            $elements->dkim = acymailing_getUpgradeLink('essential');
        }
        $js = 'var selectedHTTPS = ' . ($config->get('ssl_links', 0) == 0 ? 'false;' : 'true;') . '
		function confirmHTTPS(element){
			var clickedHTTPS = (element == 1);
			if(clickedHTTPS == selectedHTTPS) return true;
			if(clickedHTTPS){
				var cnfrm = confirm(\'' . str_replace("'", "\\'", JText::_('ACY_SSLCHOICE_CONFIRMATION')) . '\');
				if(!cnfrm){';
        if (ACYMAILING_J30) {
            $js .= 'var labels = document.getElementById(\'config_ssl_linksfieldset\').getElementsByTagName(\'label\');
					if(labels[0].hasClass(\'btn-success\')){
						labels[1].click();
						return true;
					}else{
						labels[0].click();
						return true;
					}';
        } else {
            $js .= 'return false;';
        }
        $js .= '}
			}
			selectedHTTPS = clickedHTTPS;
			return true;
		}';
        $doc->addScriptDeclaration($js);
        $elements->ssl_links = JHTML::_('acyselect.booleanlist', "config[ssl_links]", 'onclick="return confirmHTTPS(this.value);"', $config->get('ssl_links', 0));
        $delayTypeManual = acymailing_get('type.delay');
        $elements->queue_pause = $delayTypeManual->display('config[queue_pause]', $config->get('queue_pause'), 0);
        $delayTypeAuto = acymailing_get('type.delay');
        $delayTypeAuto->onChange = "window.document.getElementById('autoFrequencyWarning').style.display='inline';";
        $onChangeMsg = '<span style="display:none;color:red;" id="autoFrequencyWarning">' . JText::_('ACY_CRON_CHANGE_FREQUENCY_WARNING') . '</span>';
        $elements->cron_frequency = $delayTypeAuto->display('config[cron_frequency]', $config->get('cron_frequency'), 2) . $onChangeMsg;
        $js = "function detectTimeout(id){\n\t\t\t\ttry{\n\t\t\t\t\twindow.document.getElementById(id).className = 'onload';\n\t\t\t\t\twindow.document.getElementById(id).innerHTML = '" . str_replace("'", "\\'", JText::_('ACY_CLOSE_TIMEOUT')) . "';\n\n\t\t\t\t\ttry{\n\t\t\t\t\t\tnew Ajax('" . rtrim(JURI::root(), '/') . "/index.php?option=com_acymailing&tmpl=component&ctrl=stats&task=detecttimeout&seckey=" . $config->get('security_key') . "',{ method: 'get', onComplete: function() { document.id(id).innerHTML = 'Done!'; window.document.getElementById(id).className = 'loading'; }}).request();\n\t\t\t\t\t}catch(err){\n\t\t\t\t\t\tnew Request({url:'" . rtrim(JURI::root(), '/') . "/index.php?option=com_acymailing&tmpl=component&ctrl=stats&task=detecttimeout&seckey=" . $config->get('security_key') . "',method: 'get', onComplete: function(response) { document.id(id).innerHTML = 'Done!'; window.document.getElementById(id).className = 'loading'; }}).send();\n\t\t\t\t\t}\n\t\t\t\t}catch(err){alert('Could not load the max execution time value : '+err);}\n\t\t\t\treturn;\n\t\t}";
        $maxexecutiontime = $config->get('max_execution_time');
        if (empty($maxexecutiontime) && intval($config->get('last_maxexec_check')) < time() - 60) {
            $js .= 'window.addEvent(\'domready\', function(){ detectTimeout(\'timeoutcheck\');return; });';
        }
        $doc = JFactory::getDocument();
        $doc->addScriptDeclaration($js);
        $cssval = array('css_frontend' => 'component', 'css_module' => 'module', 'css_backend' => 'backend');
        foreach ($cssval as $configval => $type) {
            $myvals = array();
            $myvals[] = JHTML::_('select.option', '', JText::_('ACY_NONE'));
            if ($configval == 'css_backend') {
                $myvals[] = JHTML::_('select.option', 'backend_custom', JText::_('ACY_CUSTOM'));
                $editFileName = $config->get('css_backend', 'default');
            } else {
                $regex = '^' . $type . '_([-_a-z0-9]*)\\.css$';
                $allCSSFiles = JFolder::files(ACYMAILING_MEDIA . 'css', $regex);
                $family = '';
                foreach ($allCSSFiles as $oneFile) {
                    preg_match('#' . $regex . '#i', $oneFile, $results);
                    $fileName = str_replace('default_', '', $results[1]);
                    $fileNameArray = explode('_', $fileName);
                    if (count($fileNameArray) == 2) {
                        if ($fileNameArray[0] != $family) {
                            if (!empty($family)) {
                                $myvals[] = JHTML::_('select.option', '</OPTGROUP>');
                            }
                            $family = $fileNameArray[0];
                            $myvals[] = JHTML::_('select.option', '<OPTGROUP>', ucfirst($family));
                        }
                        unset($fileNameArray[0]);
                        $fileName = implode('_', $fileNameArray);
                    }
                    $fileName = ucwords(str_replace('_', ' ', $fileName));
                    $myvals[] = JHTML::_('select.option', $results[1], $fileName);
                }
                if (!empty($family)) {
                    $myvals[] = JHTML::_('select.option', '</OPTGROUP>');
                }
                $editFileName = $type . '_' . $config->get($configval, 'default');
            }
            $currentVal = $config->get($configval, 'default');
            $aStyle = empty($currentVal) ? 'style="display:none"' : '';
            $js = 'onchange="updateCSSLink(\'' . $configval . '\',\'' . $type . '\',this.value);"';
            $elements->{$configval} = JHTML::_('select.genericlist', $myvals, 'config[' . $configval . ']', 'class="inputbox" size="1" ' . $js, 'value', 'text', $config->get($configval, 'default'), $configval . '_choice');
            $linkEdit = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=css&amp;var=' . $configval . '&amp;file=' . $editFileName;
            $elements->{$configval} .= ' <a id="' . $configval . '_link" ' . $aStyle . ' class="modal" title="' . JText::_('ACY_EDIT', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><i class="acyicon-edit" style="margin: 5px 5px 0px 5px; display: inline-block;"></i></a>';
        }
        $js = "function updateCSSLink(myid,type,newval){\n\t\t\tif(newval){document.getElementById(myid+'_link').style.display = '';}else{document.getElementById(myid+'_link').style.display = 'none'}\n\t\t\tif(myid == 'css_backend') filename = newval;\n\t\t\telse filename = type+'_'+newval;\n\t\t\tdocument.getElementById(myid+'_link').href = 'index.php?option=com_acymailing&tmpl=component&ctrl=file&task=css&var='+myid+'&file='+filename;\n\t\t}";
        $doc->addScriptDeclaration($js);
        $bootstrapFrontValues = array();
        $bootstrapFrontValues[] = JHTML::_('select.option', 0, JTEXT::_('JOOMEXT_NO'));
        $bootstrapFrontValues[] = JHTML::_('select.option', 1, 'Bootstrap 2');
        $bootstrapFrontValues[] = JHTML::_('select.option', 2, 'Bootstrap 3');
        $elements->bootstrap_frontend = JHTML::_('acyselect.radiolist', $bootstrapFrontValues, "config[bootstrap_frontend]", '', 'value', 'text', $config->get('bootstrap_frontend', 0));
        $elements->colortype = acymailing_get('type.color');
        $elements->use_sef = JHTML::_('acyselect.booleanlist', "config[use_sef]", '', $config->get('use_sef', 0));
        if (acymailing_level(1)) {
            $trackingMode = $config->get('trackingsystem', 'acymailing');
            $tracking_system = '<input type="checkbox" name="config[trackingsystem][]" id="trackingsystem[0]" value="acymailing" style="margin-left:10px" ' . (stripos($trackingMode, 'acymailing') !== false ? 'checked="checked"' : '') . '/> <label for="trackingsystem[0]">Acymailing</label>';
            $tracking_system .= '<input type="checkbox" name="config[trackingsystem][]" id="trackingsystem[1]" value="google" style="margin-left:10px;" ' . (stripos($trackingMode, 'google') !== false ? 'checked="checked"' : '') . '/> <label for="trackingsystem[1]">Google Analytics</label>';
            $tracking_system .= '<input type="hidden" name="config[trackingsystem][]" value="1"/>';
            $tracking_system_external_website = JHTML::_('acyselect.booleanlist', "config[trackingsystemexternalwebsite]", ' id="trackingsystemexternalwebsite"', $config->get('trackingsystemexternalwebsite', 1));
        } else {
            $tracking_system = acymailing_getUpgradeLink('essential');
            $tracking_system_external_website = acymailing_getUpgradeLink('essential');
        }
        $elements->tracking_system = $tracking_system;
        $elements->tracking_system_external_website = $tracking_system_external_website;
        $indexType = $config->get('indexFollow', '');
        $indexFollow = '<div style="float: left;"><input type="checkbox" name="config[indexFollow][]" id="indexFollow[0]" value="noindex" style="margin-left:10px" ' . (stripos($indexType, 'noindex') !== false ? 'checked="checked"' : '') . '/> <label for="indexFollow[0]">noindex</label></div>';
        $indexFollow .= '<div style="float: left;"><input type="checkbox" name="config[indexFollow][]" id="indexFollow[1]" value="nofollow" style="margin-left:10px" ' . (stripos($indexType, 'nofollow') !== false ? 'checked="checked"' : '') . '/> <label for="indexFollow[1]">nofollow</label></div>';
        $indexFollow .= '<input type="hidden" name="config[indexFollow][]" value="1"/>';
        $elements->indexFollow = $indexFollow;
        if (acymailing_level(3)) {
            $geolocAvailable = true;
            $geolocation = '<input type="hidden" name="config[geolocation]" value="0"/>';
            $geoloc_api_key = '';
            if (!function_exists('curl_init')) {
                $geolocAvailable = false;
                $geolocation .= 'The AcyMailing geolocation plugin needs the CURL library installed but it seems that it is not available on your server. Please contact your web hosting to set it up.';
            }
            if (!function_exists('json_decode')) {
                if (!$geolocAvailable) {
                    $geolocation .= '<br />';
                }
                $geolocAvailable = false;
                $geolocation .= 'The AcyMailing geolocation plugin can only work with PHP 5.2 at least. Please ask your web hosting to update your PHP version.';
            }
            if ($geolocAvailable) {
                $geoloc = $config->get('geolocation', '');
                $geolocation = '<span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_0" value="creation" style="margin-left:10px" ' . (stripos($geoloc, 'creation') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_0">' . JText::_('ON_USER_CREATE') . '</label></span>';
                $geolocation .= ' <span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_1" value="modify" style="margin-left:10px;" ' . (stripos($geoloc, 'modify') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_1">' . JText::_('ON_USER_CHANGE') . '</label></span>';
                $geolocation .= ' <span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_2" value="confirm" style="margin-left:10px;" ' . (stripos($geoloc, 'confirm') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_2">' . JText::_('GEOLOC_CONFIRM_SUB') . '</label></span>';
                $geolocation .= ' <span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_3" value="clic" style="margin-left:10px;" ' . (stripos($geoloc, 'clic') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_3">' . JText::_('ON_USER_CLICK') . '</label></span>';
                $geolocation .= ' <span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_4" value="open" style="margin-left:10px;" ' . (stripos($geoloc, 'open') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_4">' . JText::_('ON_OPEN_NEWS') . '</label></span>';
                $geolocation .= ' <span style="white-space:nowrap"><input type="checkbox" name="config[geolocation][]" id="geolocation_5" value="unsubscription" style="margin-left:10px;" ' . (stripos($geoloc, 'unsubscription') !== false ? 'checked="checked"' : '') . '/> <label for="geolocation_5">' . JText::_('GEOLOC_UNSUB') . '</label></span>';
                $geolocation .= '<input type="hidden" name="config[geolocation][]" value="1"/>';
                $geoloc_api_key = '<input class="inputbox" type="text" id="geoloc_api_key" name="config[geoloc_api_key]" style="width:450px" value="' . $this->escape($config->get('geoloc_api_key', '')) . '">';
            }
        } else {
            $geolocation = acymailing_getUpgradeLink('enterprise');
            $geoloc_api_key = false;
        }
        $elements->geolocation = $geolocation;
        $elements->geoloc_api_key = $geoloc_api_key;
        if (!ACYMAILING_J16) {
            $query = 'SELECT a.name, a.id as itemid, b.title  FROM `#__menu` as a JOIN `#__menu_types` as b on a.menutype = b.menutype WHERE a.access = 0 ORDER BY b.title ASC,a.ordering ASC';
        } else {
            $orderby = ACYMAILING_J30 ? 'a.lft' : 'a.ordering';
            $query = 'SELECT a.alias as name, a.id as itemid, b.title  FROM `#__menu` as a JOIN `#__menu_types` as b on a.menutype = b.menutype WHERE a.access NOT IN (2, 3) AND a.client_id=0 AND a.parent_id != 0 ORDER BY b.title ASC,' . $orderby . ' ASC';
        }
        $db->setQuery($query);
        $joomMenus = $db->loadObjectList();
        $menuvalues = array();
        $menuvalues[] = JHTML::_('select.option', '0', JText::_('ACY_NONE'));
        $lastGroup = '';
        foreach ($joomMenus as $oneMenu) {
            if ($oneMenu->title != $lastGroup) {
                if (!empty($lastGroup)) {
                    $menuvalues[] = JHTML::_('select.option', '</OPTGROUP>');
                }
                $menuvalues[] = JHTML::_('select.option', '<OPTGROUP>', $oneMenu->title);
                $lastGroup = $oneMenu->title;
            }
            $menuvalues[] = JHTML::_('select.option', $oneMenu->itemid, $oneMenu->name);
        }
        $elements->acymailing_menu = JHTML::_('select.genericlist', $menuvalues, 'config[itemid]', 'size="1"', 'value', 'text', $config->get('itemid'));
        $acyrss_format = array();
        $acyrss_format[] = JHTML::_('select.option', '', JText::_('ACY_NONE'));
        $acyrss_format[] = JHTML::_('select.option', 'rss', 'RSS feed');
        $acyrss_format[] = JHTML::_('select.option', 'atom', 'Atom feed');
        $acyrss_format[] = JHTML::_('select.option', 'both', JText::_('ACY_ALL'));
        $elements->acyrss_format = JHTML::_('select.genericlist', $acyrss_format, "config[acyrss_format]", 'size="1"', 'value', 'text', $config->get('acyrss_format', ''));
        $acyrss_order = array();
        $acyrss_order[] = JHTML::_('select.option', 'senddate', JText::_('SEND_DATE'));
        $acyrss_order[] = JHTML::_('select.option', 'mailid', JText::_('ACY_ID'));
        $acyrss_order[] = JHTML::_('select.option', 'subject', JText::_('ACY_TITLE'));
        $elements->acyrss_order = JHTML::_('select.genericlist', $acyrss_order, "config[acyrss_order]", 'size="1"', 'value', 'text', $config->get('acyrss_order', 'senddate'));
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=confirmation';
        $elements->editConfEmail = '<a class="modal" id="confirmemail"  href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_CONF_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_created';
        $elements->edit_notification_created = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_refuse';
        $elements->edit_notification_refuse = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_unsuball';
        $elements->edit_notification_unsuball = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_unsub';
        $elements->edit_notification_unsub = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_contact';
        $elements->edit_notification_contact = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_contact_menu';
        $elements->edit_notification_contact_menu = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=notification_confirm';
        $elements->edit_notification_confirm = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=email&amp;task=edit&amp;mailid=modif';
        $elements->editModifEmail = '<a class="modal" id="modifemail"  href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('EDIT_NOTIFICATION_MAIL') . '</button></a>';
        $link = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=cpanel&amp;task=checkDB';
        $elements->checkDB = '<a class="modal" href="' . $link . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><button class="acymailing_button_grey" onclick="return false">' . JText::_('DATABASE_INTEGRITY') . '</button></a>';
        $js = "function addUnsubReason(){\n\t\t\tvar input = document.createElement('input');\n\t\t\tinput.name = 'unsub_reasons[]';\n\t\t\tinput.style.width = '300px';\n\t\t\tinput.style.margin = '3px 0px';\n\t\t\tinput.type = 'text';\n\t\t\tdocument.getElementById('unsub_reasons').appendChild(input);\n\t\t\tvar br = document.createElement('br');\n\t\t\tdocument.getElementById('unsub_reasons').appendChild(br);\n\t\t}\n\t\tfunction displaySurvey(surveyval){\n\t\t\tif(surveyval == 1){\n\t\t\t\tdocument.getElementById('unsub_reasons_area').style.display = 'block';\n\t\t\t}else{\n\t\t\t\tdocument.getElementById('unsub_reasons_area').style.display = 'none';\n\t\t\t}\n\t\t}\n\t\t";
        $doc->addScriptDeclaration($js);
        $path = JLanguage::getLanguagePath(JPATH_ROOT);
        $dirs = JFolder::folders($path);
        $languages = array();
        foreach ($dirs as $dir) {
            if (strlen($dir) != 5 || $dir == "xx-XX") {
                continue;
            }
            $xmlFiles = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$');
            $xmlFile = reset($xmlFiles);
            if (empty($xmlFile)) {
                $data = array();
            } else {
                $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $xmlFile);
            }
            $oneLanguage = new stdClass();
            $oneLanguage->language = $dir;
            $oneLanguage->name = empty($data['name']) ? $dir : $data['name'];
            $languageFiles = JFolder::files($path . DS . $dir, '^(.*)\\.com_acymailing\\.ini$');
            $languageFile = reset($languageFiles);
            if (!empty($languageFile)) {
                $linkEdit = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=language&amp;code=' . $oneLanguage->language;
                $oneLanguage->edit = ' <a class="modal" title="' . JText::_('EDIT_LANGUAGE_FILE', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><i class="acyicon-edit" id="image' . $oneLanguage->language . '"></i></a>';
            } else {
                $linkEdit = 'index.php?option=com_acymailing&amp;tmpl=component&amp;ctrl=file&amp;task=language&amp;code=' . $oneLanguage->language;
                $oneLanguage->edit = ' <a class="modal" title="' . JText::_('ADD_LANGUAGE_FILE', true) . '"  href="' . $linkEdit . '" rel="{handler: \'iframe\', size:{x:800, y:500}}"><i class="acyicon-new" id="image' . $oneLanguage->language . '"></i></a>';
            }
            $languages[] = $oneLanguage;
        }
        $js = "function updateConfirmation(newvalue){";
        $js .= "if(newvalue == 0) {window.document.getElementById('confirmemail').style.display = 'none'; window.document.getElementById('confirm_redirect').disabled = true;}else{window.document.getElementById('confirmemail').style.display = 'inline'; window.document.getElementById('confirm_redirect').disabled = false;}";
        $js .= '}';
        $js .= "function updateModification(newvalue){ if(newvalue != 'none') {window.document.getElementById('modifemail').style.display = 'none';}else{window.document.getElementById('modifemail').style.display = 'inline';}} ";
        $js .= 'window.addEvent(\'load\', function(){ updateModification(\'' . $config->get('allow_modif', 'data') . '\'); updateConfirmation(' . $config->get('require_confirmation', 0) . '); });';
        $doc->addScriptDeclaration($js);
        $elements->require_confirmation = JHTML::_('acyselect.booleanlist', "config[require_confirmation]", 'onclick="updateConfirmation(this.value)"', $config->get('require_confirmation', 0));
        $allowmodif = array();
        $allowmodif[] = JHTML::_('select.option', "none", JText::_('JOOMEXT_NO'));
        $allowmodif[] = JHTML::_('select.option', "data", JText::_('ONLY_SUBSCRIPTION'));
        $allowmodif[] = JHTML::_('select.option', "all", JText::_('JOOMEXT_YES'));
        $elements->allow_modif = JHTML::_('acyselect.radiolist', $allowmodif, "config[allow_modif]", 'size="1" onclick="updateModification(this.value)"', 'value', 'text', $config->get('allow_modif', 'data'));
        if (!ACYMAILING_J16) {
            $db->setQuery("SELECT name,published,id FROM `#__plugins` WHERE `folder` = 'acymailing' AND `element` NOT LIKE 'plg%' ORDER BY published DESC, ordering ASC");
        } else {
            $db->setQuery("SELECT name,enabled as published,extension_id as id FROM `#__extensions` WHERE `state` <> -1 AND `folder` = 'acymailing' AND `type`= 'plugin' AND `element` NOT LIKE 'plg%' ORDER BY enabled DESC, ordering ASC");
        }
        $plugins = $db->loadObjectList();
        if (!ACYMAILING_J16) {
            $db->setQuery("SELECT name,published,id FROM `#__plugins` WHERE (`folder` != 'acymailing' OR `element` LIKE 'plg%') AND (`name` LIKE '%acymailing%' OR `element` LIKE '%acymailing%') ORDER BY published DESC, ordering ASC");
        } else {
            $db->setQuery("SELECT name,enabled as published ,extension_id as id FROM `#__extensions` WHERE `state` <> -1 AND (`folder` != 'acymailing' OR `element` LIKE 'plg%') AND `type` = 'plugin' AND (`name` LIKE '%acymailing%' OR `element` LIKE '%acymailing%') ORDER BY enabled DESC, ordering ASC");
        }
        $integrationplugins = $db->loadObjectList();
        if (ACYMAILING_J16) {
            $db->setQuery("SELECT COUNT(*) FROM #__extensions WHERE `enabled` = 1 AND `state` = -1 AND `type` = 'plugin' AND (`folder` = 'acymailing' OR `name` LIKE '%acymailing%' OR `element` LIKE '%acymailing%')");
            $discoveredPlugins = $db->loadResult();
            if (!empty($discoveredPlugins)) {
                acymailing_display('Some AcyMailing plugins are placed in the Joomla "Discover" feature and will not work, you should install them through the "Discover" menu in the Extension manager.', 'warning');
            }
        }
        $bounceaction = acymailing_get('type.bounceaction');
        $this->assignRef('bounceaction', $bounceaction);
        $this->assignRef('config', $config);
        $this->assignRef('languages', $languages);
        $this->assignRef('elements', $elements);
        $this->assignRef('plugins', $plugins);
        $this->assignRef('integrationplugins', $integrationplugins);
        $tabs = acymailing_get('helper.acytabs');
        $tabs->setOptions(array('useCookie' => true));
        $this->assignRef('tabs', $tabs);
        $this->assignRef('toggleClass', $toggleClass);
        if (!ACYMAILING_J16 and !file_exists(rtrim(JPATH_SITE, DS) . DS . 'plugins' . DS . 'acymailing' . DS . 'tagsubscriber.php') or ACYMAILING_J16 and !file_exists(rtrim(JPATH_SITE, DS) . DS . 'plugins' . DS . 'acymailing' . DS . 'tagsubscriber' . DS . 'tagsubscriber.php')) {
            acymailing_checkPluginsFolders();
        }
        return parent::display($tpl);
    }
Example #27
0
 function _savelanguage()
 {
     jimport('joomla.filesystem.file');
     jimport('joomla.filesystem.folder');
     $code = JRequest::getString('code');
     JRequest::setVar('code', $code);
     $content = JRequest::getVar('content', '', '', 'string', JREQUEST_ALLOWRAW);
     if (empty($code)) {
         return;
     }
     $content_override = JRequest::getVar('content_override', '', '', 'string', JREQUEST_ALLOWRAW);
     $folder = JLanguage::getLanguagePath(JPATH_ROOT) . DS . 'overrides';
     jimport('joomla.filesystem.folder');
     if (!JFolder::exists($folder)) {
         JFolder::create($folder);
     }
     if (JFolder::exists($folder)) {
         $path = $folder . DS . $code . '.override.ini';
         if (!JPath::check($path)) {
             hikashop_display(JText::sprintf('FAIL_SAVE', 'invalid filename'), 'error');
             return false;
         }
         $result = JFile::write($path, $content_override);
         if (!$result) {
             hikashop_display(JText::sprintf('FAIL_SAVE', $path), 'error');
         }
     }
     if (empty($content)) {
         return;
     }
     $path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . $code . DS . $code . '.com_hikashop.ini';
     if (!JPath::check($path)) {
         hikashop_display(JText::sprintf('FAIL_SAVE', 'invalid filename'), 'error');
         return false;
     }
     $result = JFile::write($path, $content);
     if ($result) {
         hikashop_display(JText::_('HIKASHOP_SUCC_SAVED'), 'success');
         $updateHelper = hikashop_get('helper.update');
         $updateHelper->installMenu($code);
         $js = "window.top.document.getElementById('image{$code}').src = '" . HIKASHOP_IMAGES . "icons/icon-16-edit.png'";
         $doc = JFactory::getDocument();
         $doc->addScriptDeclaration($js);
     } else {
         hikashop_display(JText::sprintf('FAIL_SAVE', $path), 'error');
     }
     return $result;
 }
Example #28
0
/**
 * Get list of front-end available langauges
 *
 * @return unknown
 */
function shGetFrontEndActiveLanguages()
{
    $shLangs = array();
    // Initialize some variables
    $mainframe =& JFactory::getApplication();
    $client =& JApplicationHelper::getClientInfo($mainframe->getClientId());
    //load folder filesystem class
    jimport('joomla.filesystem.folder');
    $path = JLanguage::getLanguagePath($client->path);
    $dirs = JFolder::folders($path);
    foreach ($dirs as $dir) {
        //$files = JFolder::files( $path.DS.$dir, '^([-_A-Za-z]*)\.xml$' );
        $files = JFolder::files($path . DS . $dir, '^([A-Za-z]{2}-[A-Za-z]{2})\\.xml$');
        // some languages may add other xml files
        // Read the file to see if it's a valid component XML file
        $xml =& JFactory::getXMLParser('simple');
        foreach ($files as $file) {
            if (!$xml->loadFile($path . DS . $dir . DS . $file)) {
                unset($xml);
                continue;
            }
            if (is_object($xml->document) && $xml->document->name() != 'metafile') {
                unset($xml);
                continue;
            }
            $shLang = new StdClass();
            $element =& $xml->document->metadata[0];
            $subElem = $element->tag[0];
            $shTemp = explode('-', $subElem->data());
            $shLang->iso = $shTemp[0] ? $shTemp[0] : 'en';
            if (!empty($element->backwardLang)) {
                $subLang = $element->backwardLang[0];
            } else {
                $subLang = $element->backwardlang[0];
                // some language files have backwardlang instead of backwardLang
            }
            $subLang = $element->tag[0];
            $shLang->code = $subLang->data();
            $shLangs[] = $shLang;
        }
    }
    return $shLangs;
}
Example #29
0
					</select>
					&nbsp; <?php 
    echo JText::_('LNG_EMAILS_TAG_EDITOR');
    ?>
					<BR>
					<?php 
    $appSettings = JHotelUtil::getApplicationSettings();
    $options = array('onActive' => 'function(title, description){
															        description.setStyle("display", "block");
															        title.addClass("open").removeClass("closed");
															    }', 'onBackground' => 'function(title, description){
															        description.setStyle("display", "none");
															        title.addClass("closed").removeClass("open");
															    }', 'startOffset' => 0, 'useCookie' => true);
    echo JHtml::_('tabs.start', 'tab_group_id', $options);
    $path = JLanguage::getLanguagePath(JPATH_COMPONENT_ADMINISTRATOR);
    $dirs = JFolder::folders($path);
    sort($dirs);
    //dmp($dirs);
    $j = 0;
    foreach ($dirs as $_lng) {
        echo JHtml::_('tabs.panel', $_lng, 'tab' . $j);
        $langContent = isset($this->translations[$_lng]) ? $this->translations[$_lng] : "";
        $editor = JFactory::getEditor();
        echo $editor->display('email_content_' . $_lng, $langContent, '800', '400', '70', '15', false);
    }
    echo JHtml::_('tabs.end');
    ?>
				</TD>
			</TR>
		</TABLE>
Example #30
0
 function loadLocale(&$order)
 {
     $locale = '';
     if (!empty($order->customer->user_cms_id)) {
         $user = JFactory::getUser($order->customer->user_cms_id);
         $locale = $user->getParam('language');
         if (empty($locale)) {
             $locale = $user->getParam('admin_language');
         }
     }
     if (empty($locale)) {
         $params = JComponentHelper::getParams('com_languages');
         $locale = $params->get('site', 'en-GB');
     }
     if (HIKASHOP_J16) {
         $config = JFactory::getConfig();
         $this->oldLocale = $config->get('language');
         $config->set('language', $locale);
         $debug = $config->get('debug');
         if (HIKASHOP_J25) {
             JFactory::$language = new hikaLanguage($locale, $debug);
         }
     }
     $lang = JFactory::getLanguage();
     $override_path = JLanguage::getLanguagePath(JPATH_ROOT) . DS . 'overrides' . DS . $locale . '.override.ini';
     $lang->load(HIKASHOP_COMPONENT, JPATH_SITE, $locale, true);
     if (file_exists($override_path)) {
         if (!HIKASHOP_J16) {
             $lang->_load($override_path, 'override');
         } elseif (HIKASHOP_J25) {
             $lang->publicLoadLanguage($override_path, 'override');
         }
     }
     return $locale;
 }