Посл. обновление: 21.09.2009 22.00, для версий
2.87+Итак, написание тем практически полностью идеинтично TBDEV YSE 6, за исключением того, что все важные скрипты вынесены в функцию stdhead, и файл stdhead.php (также как и template.php и stdfoot.php) темы должен начинаться с проверки на IN_TRACKER, подключения необходимых JS-скриптов (если они есть) и закрывающего тега </head>.
В релизер включены Jquery, jquery.cookie, jquery.scroolto, jquery.history, swfobject и кодировщики base64 в js/coding.jsТакже, начиная с версий 2.15+ в stdfoot.php темы не надо прописывать закрывающих тегов </body> и </html>, они вынесены в функцию stdfoot:
function stdfoot() {
global $CURUSER, $ss_uri, $tracker_lang, $queries, $tstart, $query_stat, $querytime, $CACHEARRAY;
@require_once(ROOT_PATH."themes/" . $ss_uri . "/template.php");
@require_once(ROOT_PATH."themes/" . $ss_uri . "/stdfoot.php");
if (($CACHEARRAY['debug_mode']) && count($query_stat) && (get_user_class() >= UC_SYSOP)) {
$qsec = 0;
foreach ($query_stat as $key => $value) {
$qsec = $qsec + $value['seconds'];
print("<div>[".($key+1)."] => <b>".$value["seconds"]."</b> [$value[query]]</div>\n");
}
print("<b>ALL DATABASE QUERIES TOOK $qsec SECONDS</b>");
print('<div align="center"><font color="red"><b>Warning! Debug mode active! Only SYSOP can see this message and above queries.</b></font></div><br/>');
}
print('</body></html>');
}
Часть функции stdhead:
print('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset='. $tracker_lang['language_charset'].'" />
<meta name="Description" content="'.$DESCRIPTION.'" />
<meta name="Keywords" content="'.$KEYWORDS.'" />
<!--Тоже любишь смотреть исходники HTML? Знаешь еще и PHP/MySQL? обратись к админам, наверняка для тебя есть местечко в нашей команде http://www.kinokpk.com/staff.php -->
<title>'.$title.'</title>
<link rel="stylesheet" href="themes/'.$ss_uri.'/'.$ss_uri.'.css" type="text/css">
<link rel="stylesheet" href="css/features.css" type="text/css">
<script language="javascript" type="text/javascript" src="js/resizer.js"></script>'
.((!$CURUSER || ($CURUSER['extra_ef'] == 'yes'))?'
<!--<script language="javascript" type="text/javascript" src="js/snow.js"></script>-->
<script language="javascript" type="text/javascript" src="js/tooltips.js"></script>':'').
'<script language="javascript" type="text/javascript" src="js/jquery.js"></script>
...
API данных пользователя, передаваемых в тему тутВнимание! Начиная с версии 2.70 переменные
$CURUSER['warned'] и
$CURUSER['donor'] передаются
не в виде 'yes' и 'no', а в
виде битов:
1 и
0 соответственно!