function checkvalidtheme($theme_check) { // arg1 = theme to check //global $ADMIN_DIRECTORY, $tp, $e107; $e107 = e107::getInstance(); $tp = e107::getParser(); $ADMIN_DIRECTORY = $e107->getFolder('admin'); // e_QUERY not set when in single entry mod if (ADMIN && strpos($_SERVER['QUERY_STRING'], 'themepreview') !== false) { list($action, $id) = explode('.', $_SERVER['QUERY_STRING']); require_once e_HANDLER . 'theme_handler.php'; $themeobj = new themeHandler(); $themeArray = $themeobj->getThemes('id'); $themeDef = $themeobj->findDefault($themeArray[$id]); $id = intval($id); define('THEME_LAYOUT', $themeDef); define('PREVIEWTHEME', e_THEME . $themeArray[$id] . '/'); define('PREVIEWTHEMENAME', $themeArray[$id]); define('THEME', e_THEME . $themeArray[$id] . '/'); define('THEME_ABS', e_THEME_ABS . $themeArray[$id] . '/'); return; } if (@fopen(e_THEME . $theme_check . '/theme.php', 'r')) { define('THEME', e_THEME . $theme_check . '/'); define('THEME_ABS', e_THEME_ABS . $theme_check . '/'); $e107->site_theme = $theme_check; } else { function search_validtheme() { $e107 = e107::getInstance(); $th = substr(e_THEME, 0, -1); $handle = opendir($th); while ($file = readdir($handle)) { if (is_dir(e_THEME . $file) && is_readable(e_THEME . $file . '/theme.php')) { closedir($handle); $e107->site_theme = $file; return $file; } } closedir($handle); } $e107tmp_theme = search_validtheme(); define('THEME', e_THEME . $e107tmp_theme . '/'); define('THEME_ABS', e_THEME_ABS . $e107tmp_theme . '/'); if (ADMIN && strpos(e_SELF, $ADMIN_DIRECTORY) === false) { echo '<script>alert("' . $tp->toJS(CORE_LAN1) . '")</script>'; $tm = e107::getSingleton('themeHandler'); $tm->setTheme($e107tmp_theme); // $config = e107::getConfig(); // $config->set('sitetheme','core'); } } $themes_dir = $e107->getFolder('themes'); $e107->http_theme_dir = "{$e107->server_path}{$themes_dir}{$e107->site_theme}/"; }