Определение текущей темы оформления происходит в следующем порядке:
• если пользователь находится в административной части или построителе страниц текущая тема определяется значением константы u_theme ;
• если пользователь находится в пользовательской части сначала проверяется значение куки alutheme , если значение куки пустое, используется значение константы u_theme ;
• после получения значения текущей темы проверяется существование папки темы. Если папка темы не существует, текущей теме присваивается значение default .
Пример:
< ? php
//blocking direct call file
if (!isset($is_internal) or !$is_internal) die('< br / >Access denied');
//validate incoming parameters
if (isset($_REQUEST['theme_select']) and $_REQUEST['theme_select']) {
$cur_theme = alite_strip_slashes($_REQUEST['theme_select']);
//checking the existence of themes
if (is_dir(alite_get_document_root('/_themes/'.$cur_theme))) {
//write a cookie on user computer
alite_set_cookie('alutheme', $cur_theme, 60 * 60 * 24 * 30);
//page reloads
header('Location: '.$_SERVER['REQUEST_URI']);
exit;
}
}
//this defines the current theme
$cur_theme = get_user_theme();
? >
< form name="form1" action="" method="post" enctype="multipart/form-data" >
< select name="theme_select" < ? php if (stristr($_SERVER['REQUEST_URI'], '_page_builder') === false) echo 'onchange="javascript: this.form.submit();"'; ? > >
< option < ? php if ($cur_theme == 'theme_1') echo 'selected="selected"'; ? > value="theme_1" >Тема оформления 1< /option >
< option < ? php if ($cur_theme == 'theme_2') echo 'selected="selected"'; ? > value="theme_2" >Тема оформления 2< /option >
< option < ? php if ($cur_theme == 'theme_3') echo 'selected="selected"'; ? > value="theme_3" >Тема оформления 3< /option >
< /select >
< /form >