function getCfg($config)
 {
     switch ($config) {
         case 'absolute_path':
             if (checkJversion() >= 1) {
                 return JPATH_SITE;
             }
             break;
         case 'live_site':
             if (checkJversion() >= 1) {
                 if ($this->getUi() == 1) {
                     $live_site = JURI::base();
                 } elseif (checkJversion() == 2) {
                     $live_site = preg_replace('%administrator/%', '', JURI::base());
                 } else {
                     $live_site = $this->_baseFramework->getSiteURL();
                 }
                 if (substr($live_site, -1, 1) == '/') {
                     // fix erroneous ending / in some joomla 1.5 versions:
                     return substr($live_site, 0, -1);
                 } else {
                     return $live_site;
                 }
             }
             break;
         case 'lang':
             return $this->_myLanguage;
             break;
         case 'lang_tag':
             return $this->_myLanguageTag;
             break;
         case 'uniquemail':
             if (checkJversion() >= 1) {
                 return '1';
             }
             break;
         case 'frontend_userparams':
             if (checkJversion() == -1) {
                 return '0';
             }
             // NO break; on purpose for fall-through:
         // NO break; on purpose for fall-through:
         case 'allowUserRegistration':
         case 'useractivation':
         case 'new_usertype':
             if (checkJversion() >= 1) {
                 $usersConfig = JComponentHelper::getParams('com_users');
                 $setting = $usersConfig->get($config);
                 if ($config == 'new_usertype' && checkJversion() == 2) {
                     $setting = $this->acl->get_group_name((int) $setting);
                 }
                 if ($config == 'new_usertype' && !$setting) {
                     $setting = 'Registered';
                 }
                 return $setting;
             } else {
                 if ($config == 'new_usertype') {
                     return 'Registered';
                 }
             }
             break;
         case 'hits':
         case 'vote':
             if (checkJversion() >= 1) {
                 $contentConfig = JComponentHelper::getParams('com_content');
                 return $contentConfig->get('show_' . $config);
             }
             break;
         case 'dirperms':
         case 'fileperms':
             if (checkJversion() >= 1) {
                 return '';
                 //TBD: these two missing configs should one day go to CB
             }
             break;
             // CB-Specific config params:
         // CB-Specific config params:
         case 'tmp_path':
             $abs_path = $this->getCfg('absolute_path');
             $tmpDir = $abs_path . '/tmp';
             if (@is_dir($tmpDir) && @is_writable($tmpDir)) {
                 return $tmpDir;
             }
             $tmpDir = $abs_path . '/media';
             if (@is_dir($tmpDir) && @is_writable($tmpDir)) {
                 return $tmpDir;
             }
             // First try the new PHP 5.2.1+ function:
             if (function_exists('sys_get_temp_dir')) {
                 $tmpDir = @sys_get_temp_dir();
                 if (@is_dir($tmpDir) && @is_writable($tmpDir)) {
                     return $tmpDir;
                 }
             }
             // Based on http://www.phpit.net/article/creating-zip-tar-archives-dynamically-php/2/
             $varsToTry = array('TMP', 'TMPDIR', 'TEMP');
             foreach ($varsToTry as $v) {
                 if (!empty($_ENV[$v])) {
                     $tmpDir = realpath($v);
                     if (@is_dir($tmpDir) && @is_writable($tmpDir)) {
                         return $tmpDir;
                     }
                 }
             }
             // Try the CMS cache directory and other directories desperately:
             $tmpDirToTry = array($this->getCfg('cachepath'), realpath('/tmp'), $abs_path . '/tmp', $abs_path . '/images', $abs_path . '/images/stories', $abs_path . '/images/comprofiler');
             foreach ($tmpDirToTry as $tmpDir) {
                 if (@is_dir($tmpDir) && @is_writable($tmpDir)) {
                     return $tmpDir;
                 }
             }
             return null;
             break;
         case 'offset':
             if (checkJversion() == 2) {
                 static $jOffset = null;
                 if ($jOffset === null) {
                     $dateTimeZoneUTC = new DateTimeZone('UTC');
                     $dateTimeZoneCurrent = new DateTimeZone($this->_baseFramework->getCfg('offset'));
                     $dateTimeUTC = new DateTime('now', $dateTimeZoneUTC);
                     $timeOffset = $dateTimeZoneCurrent->getOffset($dateTimeUTC);
                     $jOffset = $timeOffset / 3600;
                 }
                 return $jOffset;
             }
             break;
         default:
             break;
     }
     return $this->_baseFramework->getCfg($config);
 }