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); }