Example #1
0
 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}/";
 }