Начнем рассказ со структуры шаблонов и с системой связи фалов шаблона. Посмотрите внимательно на следующую таблицу:
Данную таблицу, перед началом каких-либо действий нужно изучить как отче наш, иначе можно так накосорезить что недель разбираться придется!!! Ну что поняли взаимосвязи файлов, тогда переходим к действиям!!
Имеется два пути создания своего шаблона для Битрикса: 1) самый простой путь изменения готового шаблона путем перетасовки кусков и замены фоток (Быстро, но неэффективно); 2)Создание с нуля (самый правильный путь, хотя и долгий). В данной статье будут описан стандартный шаблон все его функции и процедуры, ЧТО ПОМОЖЕТ ВАМ СДЕЛАТЬ ЧТО ХОТИТЕ В ДИЗАЙНЕ БИТРЫ!
Header.php.
Структура главного файла header.php представляет из себя, простую HTML страницу с простыми включениями объектов (скриптов) в заданную область.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
Ну что про это скажешь!
<meta http-equiv="Content-Type" content="text/html; charset=<?echo LANG_CHARSET;?>">
Опрашиваем ядро Битры какой язык выбран, чтобы в последующем загружать нужный языковой пакет.
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
Тоже ничего сложного, кто не понял тому этого и не надо. В принципе весчь не критичная и послать куда подальше эти мета теги и указать на свое. Ваш сайт и без этого нормально проиндексируют поисковики.
<title><?$APPLICATION->ShowTitle()?></title>
Заголовок окна! Берется из index.php корневого каталога
$APPLICATION->SetTitle("«Битрикс: Управление сайтом 4.x» nulled by Nosferatu");
3 строка сверху обрабатываем и выдаем наружу
<?$APPLICATION->ShowCSS();?>
Подгружаем каскадку, там вся инфа о шрифтах цветах и прочем если кто незнает!! Хотя если вы этого не знали то идите в жопу, это не для вас!
<script language="JavaScript1.2" src="/bitrix/templates/template3/js/ddnmenu.js"></script>
Подгружаем скрипт выпадающего меню.
</head>
Закрыли заголовок, эту часть желательно сильно не коцать она все равно должна быть. Сейчас пойдет самое интересное. ТЕЛО!!!!
<body link="#B5B5B5" alink="#999999" vlink="#C8C8C8" text="#000000">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
Тело, открываем таблицу для особо одаренных!
<?$APPLICATION->ShowPanel();?>
Вызываем администраторскую панель Вот ету вот.
Её можно поместить как вверху страницы, так и в низу её, главное соблюсти форматирование таблиц. Вызов функции идет из bitrix\modules\main\public\top_panel.php там же можно и изменить дизайн этой панельки, но это в другой статье (обезличивание админки).
<?IncludeTemplateLangFile(__FILE__);?>
Загружаем сам языковой пакет
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="0%" background="/bitrix/templates/template3/images/top_back.gif"><a href="<?echo SITE_DIR?>"><img src="/bitrix/templates/template3/images/top_1.gif" alt="<?echo GetMessage("MAIN_PAGE");?>" width="380" height="82" border="0"></a></td>
<td width="100%" align="right" background="/bitrix/templates/template3/images/top_back.gif">
<?$APPLICATION->IncludeFile("main/site_panel.php", "php");?></td>
<td background="/bitrix/templates/template3/images/top_back.gif"><img src="/bitrix/templates/template3/images/top_right.gif" alt="" width="125" height="82"></td>
</tr>
Открыли табличку, открыли столбик, открыли строчку поставили фон, все проще простого.
<a href="<?echo SITE_DIR?>">
Ссылочка на главную страницу, ссылочка представляет из себя фотку типа LOGO COMPANY хех муть та какая.
alt="<?echo GetMessage("MAIN_PAGE");?>
Вот эта весчь вызывает надпись: “На главную страницу”, но в языковом пакете можно переделать на: “Пошли на хуй ублюдки” рекомендуется :=).
<?$APPLICATION->IncludeFile("main/site_panel.php", "php");?>
Без комментариев, вызываем функцию смены сайтов!! По умолчанию из два Ваш сайт и Ваш сайт но на непонятной смеси китайского и английского языков.
</table>
Закрыли таблицу, ну и флаг ей в руки и барабан на шею.
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="0%" background="/bitrix/templates/template3/images/top_menu_back.gif"><img src="/bitrix/templates/template3/images/1.gif" alt="" width="20" height="1"></td>
<td width="100%" background="/bitrix/templates/template3/images/top_menu_back.gif"><?echo $APPLICATION->GetMenuHtmlEx("top");?></td>
<td width="0%" background="/bitrix/templates/template3/images/top_menu_back.gif"><img src="/bitrix/templates/template3/images/1.gif" alt="" width="20" height="1"></td>
</tr>
Что то где-то я ужо это видел, бля да чуть выше!! Все тоже самое только здесь вызывается только вот ето:
<?echo $APPLICATION->GetMenuHtmlEx("top");?>
Это у нас выпадающая менюшка помните такую, так вот она и вызывается из top.menu_template.php, кто смотрел на табличку в самом начале врубился, сто при небольшой переделки её можно вхуяривать в любую часть сайта.
</table>
Уря закрыли табличку!!!!!!!!!!!!!!!
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="0%" valign="top" bgcolor="#F6F8FB">
<img src="/bitrix/templates/template3/images/photo_1.jpg" width="177" height="140" alt=""><br>
Левое меню отрываем, пропускаем кусок.
<?echo $APPLICATION->GetMenuHtml("left", true);?>
Вызываем левобокое меню. Оба-на смотрим внимательно на верхнее и на левое меню
<?echo $APPLICATION->GetMenuHtmlEx("top");?>
<?echo $APPLICATION->GetMenuHtml("left", true);?>
Найди 10 отличий и дауну понятно, что практически одно и тоже!! Хочеш сделать выплывающее меню слева, запросто меняем LEFT на TOP и TOP на LEFT, труе за борт и кое что меняем в менюхах и все готово (разберитесь сами там ничего сложного нет). Получится типа
<?echo $APPLICATION->GetMenuHtml("top", true);?> верх
<?echo $APPLICATION->GetMenuHtmlEx("left");?> бок
Про дескрипторы не забывать, а то накасячите, знаю я вас!!!
<?$APPLICATION->IncludeFile("sale/sale_pieces/basket_line.php", "php");?>
Вызов карзинки пользователя, ну и заодно персональный раздел
<br>
<div style="padding-left: 30px;"><font class="smalltextwhite"><b><?echo GetMessage("SEARCH");?></b></font></div>
<br>
Вызываем заголовок поиска из языкового модуля.
<?$APPLICATION->IncludeFile("search/search_form.php", Array("SEARCH_PAGE" => SITE_DIR."search/index.php"));?>
<br>
Поиск по сайту, глупо вооще думать даже не надо что где все ужо написано кодом.
Функция Search находится по адресу: bitrix\modules\search\ Дальше спросить Васю Пупкина!! К стати там можно покопаться посерьезней сука хорошо написан поисковичек. Пизди на свой сайт если надо, лучше не найдешь!!!
<div style="padding-left: 30px;"><font class="smalltextwhite"><b><?echo GetMessage("AUTH_LOGIN");?></b></font></div>
<br>
Тупо заголовок авторизации.
<?$APPLICATION->IncludeFile("main/auth/auth_form.php", "php");?>
Тупо авторизация.
<div style="padding-left: 30px;"><font class="smalltextwhite"><b><?echo GetMessage("RATES_HEADER");?></b></font></div>
Тупо заголовок курса волют!!! Скушно жуть как!!!
<br>
<?$APPLICATION->IncludeFile("currency/show_rates.php", Array(
"arrCURRENCY_FROM" => Array("USD"), // Массив преобразованной валюты "CURRENCY_BASE" => "RUR", // конвертирующая валюта "RATE_DAY" => "", // Показатель даты в формате "Y-m-d"// "CACHE_TIME" => $GLOBALS["CACHE_TIME"], // Время Кеша (sec.) )
);?>
<br>
Вызываем его. Вооще интересно пиздец сделали везде все в модулях спрятано, а тут во как. Я хуею чем дальше тем больше!! Вооще заборт нах её (валюту эту).
<div style="padding-left: 30px;"><font class="smalltextwhite"><b><?echo GetMessage("SUBSCR");?></b></font></div>
Заголовок подписьки.
<?$APPLICATION->IncludeFile("subscribe/subscr_form.php", Array("PAGE" => SITE_DIR."personal/subscr_edit.php"));?>
<br>
Собственно подписка, штука нужная!! Найди где лежит!
<?$APPLICATION->ShowBanner("LEFT", '<div align="center">', '<br></div><br>');?>
<?$APPLICATION->ShowBanner("LEFT2", '<div align="center">', '<br></div><br>');?>
Боковые баннеры, где, что и как лежит все вбивается сюда!!
<?$APPLICATION->ShowBanner("COUNTER", '<div align="center">', '<br></div><br>');?>
Баннер типа кнопки, для Flash баннеров.
<div align="center">
<?$APPLICATION->IncludeFile("statistic/stat_table/default.php", Array());?>
</div>
<br>
Таблица статистики, её внешний вид меняется в bitrix\modules\statistic\public\stat_table.php Если кому охота переправит эту гадость!!
<td width="0%" valign="top"><img src="/bitrix/templates/template3/images/shadow_back.gif" alt="" width="16" height="8"><br>
<script language="javascript1.2">
nav=navigator.appName;
if (nav!= "Netscape") {var w = document.body.clientHeight;}else{var w = window.innerHeight;}
document.write('<img name="line" src="/bitrix/templates/template3/images/1.gif" width="1" height="'+(w-111)+'">');
</script></td>
<td width="100%" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td background="/bitrix/templates/template3/images/shadow_back.gif"><img src="/images/1.gif" alt="" width="16" height="8"></td>
</tr>
</table>
Показывает тень от бокового меню!!! НАХ ЕШО оптимизацию для Нетскапа вывесил вооще охуели, кому это надо!!
<p><?$APPLICATION->ShowNavChain();?></p>
Очень нужная функция показывает где ты сейчас находится
Вот собственоо где она порылась!!
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="100%"><h1><?$APPLICATION->ShowTitle(false)?></h1></td>
<td width="0%" valign="top"><table width="0%">
<tr>
Собственно Вот мы и подошли к информационной части страницы. Вот здесь и начинаются подводные камни!! Хватит тупости надо думать!!!
<?$APPLICATION->ShowTitle(false)?>
Выводим Заголовок на главной странице, из индекса конечно.
td><a href="<?echo htmlspecialchars($APPLICATION->GetCurUri("print=Y"));?>" class="smalltext" target="_blank"><img src="/bitrix/templates/template1/images/print.gif" width="20" height="16" border="0" alt="<?echo GetMessage("PRINT");?>"></a></td>
<td nowrap><a href="<?echo htmlspecialchars($APPLICATION->GetCurUri("print=Y"));?>" class="smalltext" target="_blank"><?echo GetMessage("PRINT");?></a></td>
</tr>
</table></td>
</tr>
</table>
Меняем тему на версию для печати и все!!!!!!! Документ окончен, но как же основное окно!! Со всей инфой!!! Где оно? Спросите вы меня, а я скажу вам. Оно ставится автоматически битрой по её неизвестным законом в свободное табличное место!!!
То есть создавая структуру сайта делайте свободное место от таблиц!!!!!!!!!!!! Именно туда битра вставит всю информацию!!
Пример структуры
Шаблона
Надеюсь вам примерно понятно куда пихается все это!!!!!
footer.php
Вообще этот файл не нужен вообще, он формирует подвал страницы и закрывает её. Создавая завершенную страницу. Он может быть любого вида, никаких критичных правил там нет, только ваш вкус. Вообщем вот он листинг.
<br><br><br>
<?IncludeTemplateLangFile(__FILE__);?>
</td>
<td width="0%" valign="top" background="/bitrix/templates/template3/images/right_fill_divider.gif"><img src="/bitrix/templates/template3/images/shadow_top.gif" width="17" height="8" alt=""></td>
<td width="0%" valign="top" align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td background="/bitrix/templates/template3/images/shadow_back.gif"><img src="/images/1.gif" alt="" width="16" height="8"></td>
</tr>
</table><br>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td style="padding: 5px;">
<?$APPLICATION->IncludeFile(substr($APPLICATION->GetCurPage(), 0, strlen($APPLICATION->GetCurPage())-4)."_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("PAGE_INC"), "TEMPLATE"=>"page_inc.php"));?>
<?$APPLICATION->IncludeFile($APPLICATION->GetCurDir()."sect_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("SECT_INC"), "TEMPLATE"=>"sect_inc.php"));?></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="0%" bgcolor="#F6F8FB" align="right" style="padding: 5px;"><a href="<?echo GetMessage("POWERED_SITE");?>"><img src="/bitrix/templates/template3/images/bitrix_logo.gif" width="69" height="58" border="0" alt="<?echo GetMessage("POWERED_BY")?>"></a><br>
<?$APPLICATION->IncludeFile("powered_by.php", "text");?><br></td>
<td width="0%"> </td>
<td width="100%"><?$APPLICATION->ShowBanner("BOTTOM", '<div align="left">', '<br></div><br>');?></td>
<td width="0%" background="/bitrix/templates/template3/images/right_fill_divider.gif"> </td>
<td width="0%"> </td>
</tr>
<tr>
<td width="0%" bgcolor="#EBF1F7" align="right" style="padding-right: 5px;"><?$APPLICATION->IncludeFile("copy.php", "text");?></td>
<td width="0%" bgcolor="#F3F7FA"><img src="/images/1.gif" width="12" height="24" alt=""></td>
<td bgcolor="#F3F7FA" width="100%" align="right"> </td>
<td bgcolor="#F3F7FA" width="0%"><img src="/bitrix/templates/template3/images/bottom_right_fill_divider.gif" width="17" height="25" alt=""></td>
<td bgcolor="#ABBECE" width="0%"> </td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Если вы читали предъидущую часть статьи, то понять че к чиму у вас не составит труда!
Внимание!
<?$APPLICATION->IncludeFile(substr($APPLICATION->GetCurPage(), 0, strlen($APPLICATION->GetCurPage())-4)."_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("PAGE_INC"), "TEMPLATE"=>"page_inc.php"));?>
<?$APPLICATION->IncludeFile($APPLICATION->GetCurDir()."sect_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("SECT_INC"), "TEMPLATE"=>"sect_inc.php"));?>
Эта часть загружает информационную часть страницы, то есть если вы хотите делать уникальный шаблон, то впихните эту часть в нужное вам место и все!!!!
Styles.css
Будем рассматривать прямо в каскадке!
body { margin: 0px; padding:0px; background-color: #FFFFFF}
/*Выподающее(часть верхнего) меню */
.popupmenuact {padding:2px; padding-left:5px; padding-right:10px; background-color:#D5D5C8; border-color: #FFFFFF; border-bottom: 1px solid #FFFFFF }
.popupmenu {padding:2px; padding-left:5px; background-color:#F2F2E9; padding-right:10px; border-color: #FFFFFF; border-bottom: 1px solid #FFFFFF }
.popupmenutext, .popupmenuclosed { font-family: Arial, Helvetica, sans-serif; font-size: 11px;}
.popupmenutext {color: #546470;}
.popupmenuclosed {color: #C3C3C3;}
/*Левое меню */
.leftmenu, .leftmenuact {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-weight:bold; color: #619DCD; text-decoration:none;}
.leftmenuact {color:#355B7C;}
/*Верхнее меню*/
.topmenu, .topmenuact {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-weight:normal; color: #546470; text-decoration:none;}
.topmenuact {color: #619DCD;}
/*Меню сайта*/
.lang, .langact {font-family:Arial, Helvetica, sans-serif; font-size:11px; font-weight:normal; color: #FFFFFF; text-decoration:underline;}
.langact {text-decoration:none;}
/*Стиль корзины */
.smalltext, .smalltextwhite,
.smalltextblack, .baskettext {font-family: Arial, Helvetica, sans-serif; font-size:11px; font-weight:normal;} /*Маленький текст */
.smalltext {color: #7D7D7D;} /*Маленький текст голубой */
.smalltextwhite{color: #60605E;} /* Маленький текст белый*/
.smalltextblack{color: #000000;} /* Маленький текст черный*/
.baskettext {color: #999999;}
.chain {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:10px; font-weight:normal; color: #7F7F7F;}
.newstext, .newsdata, .newsdatab {font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:normal; color: #7C7E7F; text-decoration:none;}
.newstext {color: #7C7E7F;}
.newsdata {color: #5892BF;}
.newsdatab {font-weight: bold; color: #5892BF;}
.titletext {font-family: Arial, Helvetica, sans-serif; color:#4757C4; font-size:15px; font-weight:bold; line-height: 18px;}/*Заголовок */
.subtitletext {font-family: Arial, Helvetica, sans-serif; color:#000000; font-size:13px; font-weight:bold;}/*Подзаголовок */
.errortext, .oktext, .notetext {font-family:Arial; font-size:13px; font-weight:bold;}
.errortext {color:red;}
.oktext {color:#005000;}
.notetext {color:green;}
.copy {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; text-decoration: none; color: #88B2D2;}
.tableheads {background-color:#FCFDFE;}
.tableborders {background-color:#B9CEDF;}
.incborder{border: 1px solid #C1E6FF}
.incimage{background-image: url(/bitrix/templates/demo/images/include_corner.gif); background-position:bottom; background-repeat:no-repeat; background-color:#C6DFF5;}
.incbg{background-color:#C6DFF5}
.sectincborder{border: 1px solid #C1E6FF}
.sectincimage{background-image: url(/bitrix/templates/demo/images/include_sect_corner.gif); background-position:bottom; background-repeat:no-repeat; background-color:#9BD0FC;}
.sectincbg{background-color:#9BD0FC}
.mainincbg{height: 18px;}
.mainincline{background-color:#B4BDCD}
.maininctitle{font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; font-weight: bold; color: #6A7B9C; text-decoration:none;}
hr {color: #BDCEDE; height: 1px}
.inputfield, .inputbuttonflat, .inputbuttonS {font-family:Verdana,Arial,Helvetica; font-size:11px;}
.inputfield {color:black; border: solid 1px #C8C8C8;}
.inputbuttonflat { color:#929292; background-color:#EFEFEF; border: solid 1px #C8C8C8;}
.inputbuttonS {font-weight:bold;}
/* Заголовки*/
H1, .H1, H2, .H2, H3, .H3, H4, .H4 {font-family: Verdana, Arial, Helvetica, sans-serif;}
H1, .H1 {color:#7F7F7F; font-size:17px; font-weight:normal; line-height: 16px; margin-bottom: 1px;}
H2, .H2 {color:#7F7F7F; font-size:13px; line-height: 18px; font-weight:bold; }
H3, .H3 {font-size:12px; color: #5892BF; font-weight:bold; }
H4, .H4 {font-size:12px; color: #5892BF; font-weight:bold; }
/* Цвет таблици*/
.tableborder {background-color:#B9CEDF;}
.tablehead {background-color:#D5E3F0;}
.tablebody {background-color:#F4F8FB;}
.tablenullbody {background-color:#FFFFFF;}
/* Текст таблици*/
.tablebodytext, .tablefieldtext, .tabletitletext,
.tableheadtext, .tablebodylink {font-family: Arial, Helvetica, sans-serif; font-size:12px;}
.tableheadtext {color:#25639A;}
.tablebodylink {text-decoration: none}
a.tablebodylink:hover {text-decoration: underline}
/* Основной текст*/
.text {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
/* Цвет выделенного текста*/
.errorcolor {color:red;}
.successcolor {color:green;}
/* Onscreen сообщения */
.errormessage{font-family: Arial, Helvetica, sans-serif; font-size:13px; color:red; font-weight:bold;}
/* Форма*/
.inputtext, .inputtextarea, .inputselect, .inputcheckbox,
.inputradio, .inputfile, .inputbutton, .inputbodybutton {font-family:Verdana,Arial,Helvetica; font-size:11px;}
/* Знаки*/
.starrequired, .required{font-family: Verdana, Arial, Helvetica, sans-serif; color:red; font-size:12px; }
Практика
Делаем здесь листинг самого простого шаблона под Битрикс
И так смотрим Header.php
<html>
<head>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
<script language="JavaScript1.2" src="/bitrix/templates/template3/js/ddnmenu.js"></script>
</head>
<body>
<table>
<td><?echo $APPLICATION->GetMenuHtmlEx("top");?></td>
</table>
<table>
<td>
<?$APPLICATION->IncludeFile(substr($APPLICATION->GetCurPage(), 0, strlen($APPLICATION->GetCurPage())-4)."_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("PAGE_INC"), "TEMPLATE"=>"page_inc.php"));?>
<?$APPLICATION->IncludeFile($APPLICATION->GetCurDir()."sect_inc.php", Array(), Array("MODE"=>"html", "NAME"=>GetMessage("SECT_INC"), "TEMPLATE"=>"sect_inc.php"));?>
<td>
</table>
Собственно и все из файлов копируем popup.menu_template.php, top.menu_template.php, styles.css
js\ddnmenu.js
lang\ru\header.php
Остальное ненадо!!! Вот вам и шаблончек минимальный.
Следующие статьи: Изменение названия папки ядра битрикса;
Обезличиваем админку;
Обезличиваем форум
Все статьи взяты с
про-сайта