¦ Выделите в текстовом файле теги строк таблицы:
tr
td width=25 height=25 background=/ bitrix/templates/test/images/fot_tabl_centr.jpg td width=1 valign=top height=25 background=/bitrix/templates/test/images/fot_tabl_c. gifimg width=2 height=2 src=/bitrix/templates/test/ images/fot_tabl_w.gif //td
td height=25 background=/bitrix/templates/ test/images/fot_tabl_centr.jpg td width=1 valign=top height=25 background=/bitrix/templates/test/images/fot_tabl_c. gifimg width=2 height=2 src=/bitrix/templates/test/ images/fot_tabl_w.gif //td
/tr
tr
td height=1 background=/bitrix/templates/ test/images/fot_tabl_c.gifimg width=2 height=2 src=/bitrix/templates/test/images/fot_tabl_w.gif //td
td width=1 height=1img width=2 height=2 src=/bitrix/templates/test/images/fot_tabl_w.gif //td
td height=1 background=/bitrix/templates/ test/images/fot_tabl_c.gifimg width=2 height=2 src=/bitrix/templates/test/images/fot_tabl_w.gif //td
td width=1 height=1img width=2 height=2 src=/bitrix/templates/test/images/fot_tabl_c.gif //td /tr
¦ Вставьте этот код между ?foreach ($arResult as $arItem):? и ?endforeach?, удалив все, что размещено между ними.
¦ Сохраните внесенные изменения.
¦ Перейдите в режим Просмотр.
Вы увидите, что меню изменило свой вид и стало полностью соответствовать дизайну. Ну вот мы и настроили левое меню.
Образец исходного и конечного кода есть в приложении 3.
Нижнее горизонтальное меню
Левое вертикальное меню у нас будет меняться в зависимости от открытого раздела. Но для упрощения перемещения между разделами полезно сохранить возможность доступа к любому разделу с любой страницы сайта. С этой целью нужно иметь одно меню в не очень мешающемся месте, куда будут выводиться ссылки на все основные разделы сайта.
Таким будет нижнее горизонтальное меню. В описании интеграции модуля меню мы будем опускать подробную расшифровку некоторых операций, выполнявшихся ранее, однако на моментах, которые нуждаются в подробном описании, мы остановимся подробно.
Сначала определим, какая таблица отвечает за вывод нижнего меню.
¦ Откройте для редактирования шаблон тестового сайта.
¦ Удалите код таблицы, расположенный между метками:
!-- #Begin_down_Menu --
!-- #End_down_Menu --
¦ Перейдите в режим визуального редактирования.
¦ Добавьте на место таблицы компонент Меню, как уже делали с левым меню.
¦ Щелчком по иконке компонента активируйте его.
¦ Вызовите закладку Свойства (рис. 4.21).
В отличие от левого меню здесь нужно настраивать свойства.
Это значит, что в каждом разделе его придется создавать заново. Основное меню будет транслироваться на все страницы сайта.
¦ Остальные поля оставьте без изменений.
Не используемые нами параметры работают при выборе опции Уровень вложенности меню больше 1 в шаблонах меню с раскрывающимися списками. Мы такие меню не используем, но об их наличии надо знать.
Поле Тип меню для остальных уровней определяет тип меню вложенных уровней, который будет использоваться. Поле Подключать файлы с именами вида .тип_меню.menu_ext.php это очень интересная функция. Она позволяет динамически формировать меню. Однако подключение этой возможности требует создания PHP-файлов с вводом кода.
Так как пока освоение языка PHP не входит в наши цели, об этой функции мы только упомянем.
Обратим еще ваше внимание на кнопки со знаком вопроса. При наведении на них указателя мыши появляется всплывающая подсказка с описанием параметра (как на иллюстрации). Это так называемые тул-типс советы местного значения.
Не пренебрегайте ими, они бывают очень полезны.
¦ Сохраните внесенные изменения.
¦ Перейдите в режим Разработка.
Вы увидите, что установленный компонент Меню по умолчанию подхватил использовавшийся уже шаблон меню Fishl, который мы сделали для левого меню. Нам это не нужно.
¦ Вызовите функцию Редактировать параметры компонента из меню компонента Меню (рис. 4.22).
Но системный шаблон лучше не трогать.
¦ Скопируйте шаблон компонента по умолчанию в текущий шаблон сайта, как делали с левым меню, только назовите его по-другому, скажем, fish2.
Буква а в параметре class обозначает активную ссылку. То есть, задав специальный стиль с буквой а, можно менять внешний вид активной ссылки.
Что мы и сделаем в нижнем меню.
¦ Задайте тег tr начала строки таблицы сразу за открывающим тегом таблицы.
¦ Задайте закрывающий тег строки перед закрывающим тегом таблицы.
¦ Задайте открывающий тег ячейки td align=center на месте открывающего тега li отдельного элемента списка (для справки: в шаблоне есть два тега отдельных элементов списка для активной и для обычных ссылок).
¦ Задайте закрывающий тег ячейки на месте закрывающего тега отдельного элемента списка.
¦ Добавьте код картинки из текстового файла с вырезанной таблицей (img width=4 height=4 src=/bitrix/templates/ test/images/punkt_top.gif/) в код шаблона после тега td align=center.
¦ Сохраните внесенные изменения.
Теперь меню расположено по всей отведенной ширине, равномерно.
Образец исходного и конечного кода есть в приложении 2.
Теперь займемся стилями.
¦ Вызовите функцию Редактировать CSS-файл шаблона из меню компонента Меню.
Детально описывать процесс редактирования файла CSS мы не будем, базовых познаний в области HTML для этого достаточно. Единственное замечание: не забудьте создать стиль с параметром a.
¦ Отредактируйте шаблон компонента так, чтобы вид текста соответствовал утвержденному дизайну. Сделать это можно по подобию левого меню.
Одно замечание: в утвержденном дизайне шрифт в нижнем меню по размеру меньше, чем в левом.
Если бы размеры шрифтов не различались, можно было бы добавить стили не в CSS-файлы меню, а в CSS-файл шаблона сайта. Тогда достаточно было бы использовать единый файл стилей вместо нескольких стилей в разных файлах.
Образец исходного и конечного кода есть в приложении 2.
Верхнее частичное меню
В нашем тестовом проекте присутствует верхнее горизонтальное меню, в котором только три ссылки. Это частичное меню задумано как способ быстрого доступа к внутренним разделам и страницам, не отображаемым в левом и нижнем меню. Такой способ удобен, когда новостей у вас настолько много, что анонс статьи довольно быстро уходит с индексной страницы.
Скажем, появилась статья, которая может представлять интерес для многих читателей в течение длительного времени. Выносить ее в отдельный раздел нет смысла, но привлечь к ней внимание стоит.
Вы можете сделать ссылку на эту статью из верхнего частичного меню и держать ее на индексной странице столько, сколько сочтете нужным.
Механизм интеграции этого меню абсолютно идентичен механизму интеграции, описанному выше, за исключением одного момента. Чтобы на сайте отображались разные по своему составу меню, мы должны были использовать разные типы меню. Для левого мы использовали тип Левое меню, для нижнего Верхнее меню. Этим мы исчерпали все типы меню, имеющиеся в дистрибутиве по умолчанию.
Напомним, что типы меню выбираются в поле Тип меню для первого уровня в группе Основные параметры диалога Параметры компонента (рис. 4.23).
За основу возьмите шаблон fish2.
¦ Вызовите функцию Редактировать параметры компонента из меню компонента Меню.
¦ Задайте для меню шаблон fish3.
¦ Сохраните внесенные изменения.
Перейдя в режим Разработка, вы не увидите никаких изменений, только на пустом месте, где были надписи частичного меню, появится ярлык Меню компонента. Место это пустое, потому что мы не создали ни одного пункта меню.
Создавать меню сейчас мы не будем, так как, по нашему замыслу, частичное меню должно вести на отдельные разделы и статьи, которые мы еще не загрузили в проект. В следующей главе мы займемся наполнением сайта контентом, там и создадим верхнее частичное меню.
Цепочка навигации позволяет пользователю ориентироваться на сайте. Она очень полезна при разветвленной структуре сайта.
¦ Откройте для редактирования шаблон тестового сайта.
¦ Перейдите в режим текстового редактирования.
¦ Найдите и удалите код, имитирующий цепочку навигации на шаблоне сайта, расположенную между
!-- #Begin_nav --
!-- #End_nav --
¦ Перейдите в режим визуального редактирования.
¦ Откройте панель Компоненты 2.0.
¦ Выполните команду Служебные ^ Навигация.
¦ Добавьте компонент Навигационная цепочка прямо между метками навигации.
¦ Откройте панель Свойства.
На данном этапе в этой панели вас может заинтересовать одно поле, Номер пункта, начиная с которого будет построена навигационная цепочка. По умолчанию стоит 0. Это значит, что цепочка будет строиться от корня, с главной страницы. Такое положение не всегда удобно: когда пользователь на главной странице, все и так ясно, а место занимается, причем одним-единственным словом.
Как будете делать вы решайте сами. Мы установим показ навигационной цепочки по умолчанию, с 0.
Если бы на данный момент были созданы внутренние страницы сайта, например Общение ^ Блоги, то мы увидели бы появившуюся цепочку навигации (рис. 4.25).
В этом месте мы немного нарушим порядок действий и опишем настройку внешнего вида компонента, как будто у нас уже есть внутренние страницы. Вы можете вернуться к этой части настройки дизайна сайта потом, когда создадите разделы.
Мы этим заниматься не будем, так как книга рассчитана на тех, кто не знает PHP. Поэтому последняя ссылка останется серой.
¦ Перейдите в раздел Разработка.
¦ Скопируйте шаблон цепочки навигации. Вновь созданный шаблон назовите, скажем, fish_breadcrumb.
¦ Вызовите функцию Редактировать CSS-файл шаблона из меню компонента Цепочка навигации и отредактируйте стили так, чтобы они отображали Цепочку навигации, как на сайте.
Образец исходного и конечного кода есть в приложении 2.
Единственное, что вы не сможете сделать в этом файле, изменить разделитель в цепочке с на /. Это делается в шаблоне компонента.
¦ Вызовите функцию Редактировать шаблон компонента из меню компонента Цепочка навигации.
¦ Найдите в нем код gt; и замените его прямым слешем /.
¦ Сохраните внесенные изменения.
Образец исходного и конечного кода есть в приложении 2.
Цепочка навигации интегрирована в дизайн и выглядит как положено.
Предполагается, что наш сайт предназначен для общения единомышленников. В качестве основой формы такого общения выбран блог сетевой журнал. К настройкам самих блогов мы еще вернемся.
А пока нужно внедрить в шаблон компонент Новые сообщения блога. С его помощью новые сообщения в блогах будут выводиться на всех страницах тестового шаблона.
Прежде всего, как обычно, определим HTML-код, имитирующий вывод новых сообщений.
¦ Откройте для редактирования шаблон тестового сайта.
¦ Перейдите в режим текстового редактирования.
¦ Найдите и удалите код, имитирующий вывод новых сообщений блога, расположенный между
!-- #Begin_blog --
!-- #End_blog --
¦ Перейдите в режим визуального редактирования.
¦ Вызовите панель Компоненты 2.0.
¦ Откройте раздел Общение ^ Блоги.
¦ Перенесите компонент Новые сообщения на место, где был имитирующий код, между метками.
¦ Вызовите панель Свойства.
В исходном дизайне предусмотрен вывод только трех последних сообщений. Конечно, это не догма, но пока последуем за дизайнером.
Потом всегда можно переиграть эти настройки.
¦ В поле Количество результатов, выводимых на страницу поставьте значение 3.
Есть еще важный параметр, существенно влияющий на внешний вид проекта: Длина выводимого текста сообщения, но его значение вам надо будет подбирать экспериментально на реальном проекте. Пока это поле оставим без изменений.
¦ Сохраните внесенные изменения.
¦ Перейдите в режим Просмотр.
В режиме Просмотр вы не увидите никаких изменений, только текст, имитирующий блоги, пропадет. Дело в том, что блоги, поставляемые по умолчанию в дистрибутиве, привязаны к демо-сайту.
Нам надо перенастроить их на наш сайт.
¦ Перейдите на панель управления.
¦ Выполните команду Сервисы ^ Блоги ^ Группы блогов. Откроется форма Группы блогов.
На данный момент мы не можем сказать, к какой из представленных групп по умолчанию привязан блог администратора. Это можно узнать, но нам это не нужно.
Поэтому мы не будем ни создавать новые группы, ни переназначать на них блог администратора, а просто переопределим все существующие группы на наш сайт.
В главе 3 мы рассматривали в теории, как совершать групповые операции по редактированию. Теперь освоим это на практике.
¦ Поставьте флажок Для всех на панели действий. Флажки появятся у всех групп сразу.
¦ Щелкните по кнопке т на панели действий. Откроется та же форма, но с полями для редактирования.
¦ В колонке Сайт смените привязку к сайту с демо-сайта на сайт Matchfishing.
¦ Сохраните внесенные изменения.
¦ Перейдите в раздел Просмотр.
Вы видите, что в колонке под названием Блоги появились анонсы самых последних по времени сообщений (рис. 4.26).
Но нам надо отредактировать параметры и настроить шаблон.
В предложенном варианте дизайна в качестве новых сообщений выводится только текст. Без авторства и даты, но с аватаром. Задумка красивая, но есть одно но. Идея с аватарами накладывает ограничения на их размер, что не совсем удобно.
Это, конечно, мелочи можно потерпеть мелкие аватары в самих блогах. Серьезнее другое: для реализации подобного варианта придется менять сам компонент.
Этого на нашем уровне подготовки мы делать не будем. Потому отойдем от дизайна и вместо аватара выведем имя автора со ссылкой на его профиль:
- удалим картинку;
- удалим дату;
- удалим ссылку на комментарии;
- переведем ссылку с картинки на имя пользователя.
Пусть они называются blog-author и blog-text.
¦ Добавьте указание на класс class=blog-author в тег ссылки на профиль пользователя.
¦ В тегеspan class=blog-post-dateизмените blog-post-date на blog-text.
¦ Сохраните внесенные изменения.
Образец исходного и конечного кода есть в приложении 3.
Вы увидите, что внесенные изменения полностью преобразовали вид компонента, но его вид по оформлению текста еще не соответствует заданному в дизайне.
¦ Вызовите функцию Редактировать CSS-файл из меню компонента
Новые сообщения блогов.
¦ Удалите из шаблона все стили и их параметры.