| 5 |
|
|
| 6 |
$BBS_theme_set = array( |
$BBS_theme_set = array( |
| 7 |
"default" => array( |
"default" => array( |
| 8 |
"css" => "css/default.css", |
"css/default" => "css/default.css", |
| 9 |
"member_service_guide" => "member_service_guide.view.php", |
"js/lml_assistant" => "js/lml_assistant.js", |
| 10 |
"update_profile" => "update_profile.view.php", |
"view/list" => "list.view.php", |
| 11 |
"preference" => "preference.view.php", |
"view/post" => "post.view.php", |
| 12 |
|
"view/view_article" => "view_article.view.php", |
| 13 |
|
"view/search_article" => "search_article.view.php", |
| 14 |
|
"view/search_user" => "search_user.view.php", |
| 15 |
|
"view/member_service_guide" => "member_service_guide.view.php", |
| 16 |
|
"view/update_profile" => "update_profile.view.php", |
| 17 |
|
"view/preference" => "preference.view.php", |
| 18 |
|
"view/s_favor" => "s_favor.view.php", |
| 19 |
|
"view/section_setting" => "section_setting.view.php", |
| 20 |
|
"view/show_profile" => "show_profile.view.php", |
| 21 |
|
"view/score_detail" => "score_detail.view.php", |
| 22 |
|
"view/suicide" => "suicide.view.php", |
| 23 |
|
"view/msg_read" => "msg_read.view.php", |
| 24 |
|
), |
| 25 |
|
"xml" => array( |
| 26 |
|
"xsl/1" => "xsl/1.xsl", |
| 27 |
|
"view/view_article" => "view_article_xml.view.php", |
| 28 |
|
), |
| 29 |
|
"gen_ex" => array( |
| 30 |
|
"view/view_article" => "gen_ex_article.view.php", |
| 31 |
|
), |
| 32 |
|
"portal" => array( |
| 33 |
|
"css/default" => "../www/css/default.css", |
| 34 |
|
"view/view_article" => "view_article.view.php", |
| 35 |
), |
), |
| 36 |
); |
); |
| 37 |
|
|
| 38 |
function get_theme_view_file(string $view_name, string $theme_name = "default") : string | null |
$BBS_theme_current = ""; |
| 39 |
|
|
| 40 |
|
function get_theme_file(string $view_name, string $theme_name = "") : string | null |
| 41 |
{ |
{ |
| 42 |
global $BBS_theme_set; |
global $BBS_theme_set; |
| 43 |
|
global $BBS_theme_current; |
| 44 |
|
|
| 45 |
|
if ($theme_name == "") |
| 46 |
|
{ |
| 47 |
|
$theme_name = $BBS_theme_current; // Use current selected theme |
| 48 |
|
} |
| 49 |
|
|
| 50 |
if (!isset($BBS_theme_set[$theme_name]) || !isset($BBS_theme_set[$theme_name][$view_name])) |
if (!isset($BBS_theme_set[$theme_name]) || !isset($BBS_theme_set[$theme_name][$view_name])) |
| 51 |
{ |
{ |
| 52 |
$theme_name = "default"; // fallback |
$theme_name = "default"; // fallback |
| 53 |
} |
} |
| 54 |
|
|
| 55 |
|
$BBS_theme_current = $theme_name; // Remember current theme for later use |
| 56 |
|
|
| 57 |
if (!isset($BBS_theme_set[$theme_name][$view_name])) |
if (!isset($BBS_theme_set[$theme_name][$view_name])) |
| 58 |
{ |
{ |
| 59 |
return null; // View not exist |
return null; // View not exist |
| 60 |
} |
} |
| 61 |
|
|
| 62 |
$file = "./themes/" . $theme_name . "/" . $BBS_theme_set[$theme_name][$view_name]; |
$file = "../bbs/themes/" . $theme_name . "/" . $BBS_theme_set[$theme_name][$view_name]; |
| 63 |
|
|
| 64 |
if (!file_exists($file)) |
if (!file_exists($file)) |
| 65 |
{ |
{ |
| 66 |
return null; // View file not exist |
return $BBS_theme_set[$theme_name][$view_name]; // fallback file without theme |
| 67 |
} |
} |
| 68 |
|
|
| 69 |
return $file; |
return $file; |