Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Интеграция верхнего меню в шаблон.

00 голосов
6
Не отображается меню.
Содержимое файла header.php
Цитата
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?
$APPLICATION->ShowPanel();

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?echo LANG_CHARSET?>">
</head>

<body bgcolor="" background="bitrix/templates/KlStyle/images/back.gif">
<table width="1024" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="150" bgcolor="#FFFFFF"><img src="bitrix/templates/KlStyle/images/top.jpg" width="1024" height="231" hspace="0" vspace="0" border="0" align="top"></td>
  </tr>
  <tr>
    <td height="111" bgcolor="#FFFFFF">
   <?
echo $APPLICATION->GetMenuHtml("top");
?>   </td>
  </tr>
  <tr>
    <td height="443" bgcolor="#FFFFFF">
   #WORK_AREA#<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
   </td>
  </tr>
</table>
</body>
</html>


Содержимое файла top.menu_template.php
Цитата
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><?
$sMenu = '';

for($i=0; $i<count($MENU_ITEMS); $i++)
{
$MENU_ITEM = $MENU_ITEMS[$i];
extract($MENU_ITEM);
$clrtext = 'topmenu';

$sMenu .= '<a href="'.$LINK.'" class="'.$clrtext.'">'.$TEXT.'</a>';

}
?>
спросил 01 Июль, 13 от Harror (160 баллов)

6 Ответы

00 голосов
при таком построении шаблона меню, необходимо использовать функцию его отображения $APPLICATION->GetMenuHtmlEx("top");
ответил 01 Июль, 13 от salo (840 баллов)
00 голосов
Замена echo $APPLICATION->GetMenuHtml("top"); на $APPLICATION->GetMenuHtmlEx("top"); привела к тому полоса меню исчезла даже в режиме "Редактирования сайта". Т.е. ранее была оранжевая полоса без содержимого, теперь нет даже её.
Попутно второй вопрос:
Цитата
Код
#WORK_AREA#<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
не делает выделенное место таблицы рабочей областью (файл index.php). Просто видна надпись "#WORK_AREA#".
ответил 04 Авг, 13 от Harror (160 баллов)
00 голосов
ну так echo надо было же оставить.

в header.php не надо вставлять #WORK_AREA#
header.php обрывается в том месте, где у вас начинается сама страница. все что после #WORK_AREA# должно находиться в footer.php
да и сам #WORK_AREA# вставляется только виртуально в редакторе шаблонов через админский интерфейс. в самих файлах этого нет.
ответил 05 Ноя, 13 от salo (840 баллов)
00 голосов
Спасибо за помощь с верхним меню. Всё заработало.

Разобраться с Work_area не получается. Точнее, если следовать выше сказанному поместить рабочую область в таблицу вернего шаблона не возможно. Т.е. рабочая область должна быть в соответствии с header-ом ?
ответил 12 Фев, 14 от Harror (160 баллов)
00 голосов
тег #WORK_AREA# выводится ТОЛЬКО при редактировании шаблона через административный интерфейс.
этот тег показывает место разделения файлов header.php и footer.php.
физически тег не присутствует ни в одном из файлов.

рабочая область начинается сразу где кончается header.php
ответил 02 Июнь, 14 от salo (840 баллов)
00 голосов
Здорово. Ещё раз - спасибо. Вы всё разъяснили.
ответил 30 Сен, 14 от Harror (160 баллов)

Похожие вопросы

0 голосов
0 ответов
спросил 09 Фев, 14 от O6opoTEHb (260 баллов)
0 голосов
1 ответ
0 голосов
7 ответов
спросил 17 Июль, 13 от lik (160 баллов)
0 голосов
1 ответ
спросил 23 Июнь, 14 от Keh192 (300 баллов)
0 голосов
4 ответов