register(); // set up caching $cache_factory = new phpbb_cache_factory($acm_type); $cache = $cache_factory->get_service(); $class_loader->set_cache($cache->get_driver()); $request = new phpbb_request(); $db = new $sql_db(); // make sure request_var uses this request instance request_var('', 0, false, false, $request); // "dependency injection" for a function // Connect to DB if (!@$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false)) { exit; } unset($dbpasswd); $config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE); set_config(null, null, null, $config); set_config_count(null, null, null, $config); $user = false; // try to get a session ID from REQUEST array $sid = request_var('sid', ''); if (!$sid) { // if that failed, then look in the cookies $sid = request_var($config['cookie_name'] . '_sid', '', false, true); } if (strspn($sid, 'abcdefABCDEF0123456789') !== strlen($sid)) { $sid = ''; } if ($sid) { $sql = 'SELECT u.user_id, u.user_lang FROM ' . SESSIONS_TABLE . ' s, ' . USERS_TABLE . " u WHERE s.session_id = '" . $db->sql_escape($sid) . "' AND s.session_user_id = u.user_id"; $result = $db->sql_query($sql); $user = $db->sql_fetchrow($result); $db->sql_freeresult($result); } $recompile = $config['load_tplcompile']; if (!$user) { $id = ($id) ? $id : $config['default_style']; // Commented out because calls do not always include the SID anymore // $recompile = false; $user = array('user_id' => ANONYMOUS); } $sql = 'SELECT s.style_id, c.theme_id, c.theme_path, c.theme_name, t.template_path FROM ' . STYLES_TABLE . ' s, ' . STYLES_TEMPLATE_TABLE . ' t, ' . STYLES_THEME_TABLE . ' c WHERE s.style_id = ' . $id . ' AND t.template_id = s.template_id AND c.theme_id = s.theme_id'; $result = $db->sql_query($sql, 300); $theme = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$theme) { exit; } if ($user['user_id'] == ANONYMOUS) { $user['user_lang'] = $config['default_lang']; } // gzip_compression if ($config['gzip_compress']) { // IE6 is not able to compress the style (do not ask us why!) $browser = strtolower($request->header('User-Agent')); if ($browser && strpos($browser, 'msie 6.0') === false && @extension_loaded('zlib') && !headers_sent()) { ob_start('ob_gzhandler'); } } // Expire time of seven days if not recached $expire_time = 7*86400; include_once($phpbb_root_path . 'includes/acp/acp_styles.' . $phpEx); $theme['theme_data'] = acp_styles::db_theme_data($theme); header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + $expire_time)); header('Content-type: text/css; charset=UTF-8'); // Echo Theme Data echo $theme['theme_data']; if (!empty($cache)) { $cache->unload(); } $db->sql_close(); }