Для решения задания требуется установка «1С-Битрикс: Управление сайтом» редакции «Стандарт», решение «Корпоративный сайт производственной компании».
Общие условия для решения заданий:
При решении каждого задания должны соблюдаться правила, указанные в описании экзамена. Напомним, есть ряд важных правил (!), если при решении будет не учтено даже одно такое правило, то экзамен не будет пройден.
Шаблон сайта, шаблоны компонентов и другие ваши объекты - размещать в папке local.
Языковые файлы можно создавать только для ru.
Можно использовать как старое API так и новое D7.
Не забудьте про кеширование.
[ex1-1] Добавить раздел сайта: Партнерам.
Из главного меню удалить ссылку на раздел Контакты. Физически раздел не удалять, он должен остаться доступным, если набрать адрес в браузере напрямую.
Создать на сайте разделПартнерам, добавить соответствующий пункт в верхнее меню, разместить его последним.
В созданном разделе:
Добавить страницуКак стать партнером, отразить в левом меню.
Индексную страницу раздела Партнерам назвать Условия сотрудничества, отразитьее в левом меню и поставить верхней.
Добавить подразделРасписание мероприятий, также отразить его в левом меню,нижним пунктом. В созданном подразделе:
Добавить страницуАрхив, отразить ее в левом меню.
Индексную страницу назвать Анонсы, отразить ее в левом меню и поставить верхней.
[ex1-2] Метаданные статичных страниц: раздел партнерам.
Указать уникальные значения свойств для всех страниц разделаПартнерам кроме страницы Как стать партнером:
Описание: Партнерам. Выгодное сотрудничество с лидером отрасли.
Указать значения свойств для страницыКак стать партнером:
Описание: Партнерам. Как стать партнером лидера отрасли
Ключевые слова: стать партнером, лидер отрасли
[ex1-4] Создать шаблон сайта
Общие требования
Создать шаблон сайта на основе предоставленной HTML верстки, папка html в архиве с материалами.
В этом задании создать только общий шаблон сайта,без внедрения в него компонентов!
Предоставленную верстку разделить на header, footer и контентную частью, создать шаблон сайта, выполнить пункты задания.
Шаблон создается один и для главной и для внутренних страниц.
Задать ID шаблона: exam1, название шаблона: Экзамен N1
Созданный шаблон применить для отображения по умолчанию для всего сайта.
Решаемая задача
В языковые фразы вынести только одну фразу Контактная информация.
Остальные фразы в шаблоне не выносить в языковые файлы, для экономии времени во время экзамена на решении однотипных задач. В следующих заданиях, в шаблонах компонентов, все фразы выносятся в языковые файлы – согласно требованиям экзамена.
Необходимо реализовать различное отображение элементов в шаблоне на главной и внутренних страницах. Верстка с разным отображением задана в файлах main.html и inner.html
На главной не отображается:
Цепочка навигации
Заголовок страницы
Реализовать различное отображение информации в шапке. Если сейчас время (на сервере) рабочее (с 9 до 18), то отображается телефон, если не рабочее – то email. Верстка с отображением email - в файле main_email.html
Реализовать защиту контента главной страницы
Демо-контент, расположенный на главной странице установленного решения – удалить.
Содержимое контентной части шаблона для главной страницы из верстки – разместить в header. Редактирование главной страницы сайта контент-менеджером - не предполагается.
Данный контент должен отображаться в шаблоне только при нахождении на главной страницы сайта.
Компоненты для отображения динамики в этой области – не внедрять.
[ex1-5] Другой шаблон: демо шаблон для раздела Компания
Для раздела Услуги включить демо-шаблон Фиксированный
[ex1-6] Внедрить меню сайта: левое и верхнее многоуровневое.
Общие требования
Реализовать левое меню. В материалах предоставлен уже готовый шаблон для компонента меню components/menu/left, дорабатывать его не нужно.
Реализовать верхнее, многоуровневое меню.
Решаемая задача
Левое меню настроить на отображение 1 уровня вложенности.
В разделе Продукция (/products/) левое меню должно строиться на основании разделов информационного блока Продукция.
Верхнее меню должно строится выпадающим, по вложенности до 3-го уровня. Пример
выпадающего меню в верстке в пункте Каталог файла верстки main.html.
Шаблон верхнего меню должен поддерживать ограничение доступа
o Cтраницы и разделы не доступные пользователю - не должны отображаться в меню.
o Для проверки – закрыть для неавторизованных пользователей доступ к странице
Миссия и стратегия (/company/mission.php).
Реализовать вывод текста для выпадающего меню.
o Если пункт меню является «родительским» и имеет выпадающее меню, то выводить
текст перед пунктами под-меню.
o Администратор сайта, без редактирования исходного кода, должен иметь
возможность установить этот текст.
o Должна быть возможность для каждого пункта меню указать уникальный текст.
o Верстка с отображением текста перед под-меню – в файле верстки
main_text_menu.html
o Для демонстрации решения задать текст для пункта Компания – текст для пункта
Компания.
[ex1-42] Верхнее меню сайта: поддержка стиля отображения пункта меню.
Решаемая задача
Верхнее меню должно поддерживать управление цветом текста пунктов.
Администратор сайта, без редактирования исходного кода, должен иметь возможность
установить цвет пункта меню, указав имя класса стиля.
Решение должно учитывать, что в будущем будут добавляться новые классы стиля в css файл,
например
.nav .menu .color-yellow{
color: #eeff0e;
}
которые должны поддерживаться без переделки шаблона компонента.
Пример меню с разным цветом пунктов – в файле верстки main_color_menu.html.
Для демонстрации решения задать красный цвет для пункта меню «Компания»).
[ex1-7] Внедрить цепочку навигации
Внедрить в шаблон сайта компонент, реализующий цепочку навигации.
Убедиться, что цепочка навигации автоматически строится корректно для вложенных
разделов. В цепочки должны присутствовать названия всех разделов, до текущей страницы.
Последний пункт в цепочке навигации, по шаблону, не кликабелен.
При нахождении на странице Анонсы по пути Главная->Партнерам->Расписание
мероприятие->Анонсы должна получиться такая картинка
[ex1-8] Внедрить меню: свой тип, нижнее меню
Создать новый тип меню - bottom.
Нижний блок с ссылками: Отзывы, Руководство, История - реализовать через компонент
меню. Использовать созданный тип меню bottom.
[ex1-9] Управление текстом в шаблоне: телефонный номер в footer
Реализовать возможность для администратора сайта: редактировать номер телефона в нижней части
шаблона сайта, не переходя в административный раздел и не редактируя исходный код файла
footer.php
[ex1-10] Шаблоны для контента статичной страницы: демоконтент inner.html
Реализовать возможность выбора, с каким демо-контентом создавать новую страницу сайта: пустую
или с контентом страницы inner.html. Шаблон создается «пассивный».
[ex1-11] Управление текстом в шаблоне: блок Полезная информация.
Задание решить с помощью включаемых областей.
Реализовать возможность администратору сайта указывать текст в блоке Полезная
информация без необходимости редактироваться исходный код.
Должна быть возможность указывать разный текст для разных разделов сайта.
Верстка, реализующая «каркас» блока, не должна быть в файле, который содержит
редактируемый администратором текст. Это позволит минимизировать возможность
«поломки» шаблона сайта.
Если для какого-либо раздела текст не должен выводиться, то и «каркас» с пустым
содержимым не должен отображаться в шаблоне сайта.
Для демонстрации решения задать текст:
o Для всех разделов сайта, кроме раздела Компания (/сompany/): Лучший выбор мебели
в нашей компании!
o Для раздела Компания (/сompany/): Надежный поставщик на все времена.
[ex1-12] Ускорение работы с контентом: html заготовка с контента inner.html.
Реализовать возможность – при редактировании станицы в визуальном редакторе размещать готовый
блок html контента, указанный красной рамкой на изображении ниже.
[ex1-13] Управление динамической информацией на сайте: отзывы.
Общие требования
Реализовать хранение динамической информации, возможность администратору сайта ей
управлять.
Для ускорения решения в материалах предоставлен xml файл для импорта информационного
блока. Папка demo-content-iblock , файл rew.xml и папка rew_files.
Решаемая задача
Импортировать информационный блок Отзывы из xml файла, файл доступен в материалах.
Должна быть задана автоматическая генерация символьного кода транслитом для новых
элементов.
В списке элементов должны присутствовать только такие поля: ID, Активность, Начало
активности, Название, Должность, Компания.
В фильтре должен быть доступен поиск по полю Должность.
Форма редактирования должна отображаться на четырех закладках:
o На первой:
Поля: Активность, Начало активности, Название, Символьный код
Свойства: Должность, Компания.
o На второй все остальные используемые поля и свойства.
o Третья – стандартная закладка SEO.
o Четвертая – стандартная закладка Реклама.
Изменение элементов должно фиксироваться для последующего анализа.
[ex1-14] Раздел сайта с динамической информацией: отзывы.
Общие требования
Реализовать вывод списка элементов и детальный просмотр элемента с помощью
комплексного компонента.
Решаемая задача
Создать раздел Отзывы (/rew/), добавить на него ссылку в главном меню.
Организовать отображение списка отзывов и детальный просмотр отзыва из
информационного блока, созданного ранее.
Внедрить верстку для списка и детального просмотра, верстка предоставлена в материалах,
файлы reviews-detail.html и reviews-list.html
Данные инфоблока и отображение
В списке выводится: фото (картинка для анонса), имя-фамилия (название), дата отзыва
(начало активности), короткий тест (описание для анонса), компания, должность.
На детальной странице выводится: фото (детальная картинка), полный тест отзыва
(Детальное описание), имя-фамилия (название), дата отзывы (начало активности),
компания, должность, документы.
Документы – это множественное свойство типа «файл», загружаются только pdf документы.
Отображать оригинальное название файла, по клику на название – должен скачиваться файл.
Если файлы не заданы у элемента инфоблока, то блок Документы не отображается.
При отсутствии изображения, и в списке и на детальном просмотре, должна выводится
картинка – заглушка, файл no_photo.jpg из материалов. Добавить тестовый отзыв без фото для
демонстрации решения.
Технические требования
Настроить отображение постраничной навигации с любым типовым шаблоном, указать
отображение по 2 отзыва на одной странице. Задать название категорий для постраничной
навигации в соответствии с отображаемым контентом.
Реализовать поддержку Эрмитажа – на странице списка отзывов должно быть доступно
редактирование элементов над сайтом.
Настроить работу комплексного компонента в режиме ЧПУ по символьным кодам. Учесть это и
указать соответствующие настройки информационного блока. Вновь добавляемые отзывы в
информационный блок должны корректно открываться в публичной части.
Задать метаданные для страницы детального просмотра по шаблонам:
o Заголовок окна браузера: Отзыв – [Имя Фамилия]
o Заголовок страницы (H1): Отзыв – [Имя Фамилия] – [Компания]
o Ключевые слова: лучшие, отзывы, [Компания]
o Описание: [Текст анонса]
В скобках […] указано поле или свойство объекта для подстановки в шаблон.
[ex1-15] Вывод динамических элементов в шаблоне: отзывы.
Общие требования
Реализовать вывод 2х последних отзывов в шаблоне сайта с помощью соответствующего
компонента.
Решаемая задача
Отзывы – это элементы информационного блока, созданного ранее.
Очередность отзывов определится полем Начало активности, должны отображаться 2 самых
«новых» отзыва.
Если дата отзывов одинаковая, то они должны сортироваться по Названию.
С имени-фамилии реализовать ссылку на детальный просмотр отзыва, который был
реализован ранее.
Показывать первые 150 символов текста отзыва из анонса.
Реализовать уменьшение картинки – фотографии. Уменьшать «на лету», в шаблоне
компонента с помощью API Bitrix Framework в шаблоне компонента (допускается это сделать
это в файле template.php). За основу взять изображения для анонса, размер изображения
определить исходя из верстки.
При отсутствии изображения должна выводиться картинка – заглушка, файл
no_photo_left_block.jpg из материалов.
[ex1-16] Поиск динамической информации на сайте: отзывы.
Общие требования
Реализовать настройки, позволяющие осуществлять поиск информации в публичной части
сайта.
Страница с компонентом, реализующий поиск - уже реализована в типовом решении, раздел
/search/
В главное меню добавить ссылку на раздел /search/, пункт назвать Поиск.
Решаемая задача
Отзывы
o Отзывы должны находиться поиском по Названию, Анонсу и Детальному описанию. А
так же по значению свойств: Должность, Компания.
o Переход с найденных отзывов должен корректно осуществляться на детальный
просмотр отзывы.
Новости
o Элементы информационного блока Новости не должны находиться через поиск по
сайту.
[ex1-18] Форма обратной связи и почтовый шаблон: Новая форма с сайта.
Создать страницу Обратная связь, в разделе Компания.
На созданной странице расположить типовой компонент, реализующий форму обратной
связи.
Создать новый шаблон для типа почтового сообщения FEEDBACK_FORM:
o Тема: Новая форма с сайта [Название сайта]
o Текст: Форму заполнил [Имя] - [Email]. Сообщение: [Сообщение]
o Получатель и отправитель: E-Mail адрес по умолчанию
Настроить размещенный компонент на использование созданного почтового шаблона.
[ex1-19] Создание пользователя с ограниченным доступом: редактор отзывов.
Создать пользователя с логином miniadmin и паролем 987654
Созданному пользователю должно быть доступно:
o Просмотр публичных станиц сайта.
o Управление разделом Отзывы в публичной части сайта: создавать в нем страницы и
разделы, редактировать текущие.
o Управление содержимым информационного блока Отзывы через административный
раздел сайта.
Других возможностей по администрированию сайта, прав на редактирование других разделов
и страниц сайта, других информационных блоков - у пользователя не должно быть!
[ex1-39] Создание пользователя с ограниченным доступом: администратор опросов.
Создать пользователя с логином miniadmin и паролем 987654.
Создать раздел сайта Опросы (/ask/), добавить ссылку в верхнее меню.
Созданному пользователю должно быть доступно:
o Просмотр публичных станиц сайта.
o Создание и редактирование страниц и разделов в разделе сайта Опросы.
o Управление опросами в административном разделе сайта.
o Других возможностей по администрированию сайта, прав на редактирование других
разделов и страниц сайта - у пользователя не должно быть!
Для проверки решения, под пользователем miniadmin:
o В административном разделе создать тестовые данные: группу опросов, опрос, и
вопрос в нем.
o Создать в разделе сайта Опросы страницу Актуальный опрос, разместить ссылку на
нее в левом меню.
o На созданной странице разместить комплексный компонент Текущий опрос.
o Если все сделано верно – то на станице появится созданный опрос.
[ex1-20] Реализовать авторизацию: типовые сценарии, соц.сети и capcha
Общие требования
Реализовать авторизацию пользователей на сайте.
В материалах предоставляется готовый шаблон компонента авторизации
components/system.auth.form/demo, потребуется его доработка.
В демо установке уже существует раздел /login/, для реализации типовых сценариев
авторизации пользователя.
Решаемая задача
Создать страницу для просмотра и редактирования профиля пользователя, использовав
соответствующий компонент. Адрес страницы задать /login/user.php
Внедрить компонент авторизации в шаблон сайта, использовать шаблон компонента из
материалов.
Добавить в шаблон компонента отображение информации для авторизованного пользователя,
верстка на странице main_auth.html
Реализовать 5 типовых сценариев
o Сценарии:
авторизация;
выход;
переход на страницу с формой регистрации;
переход на страницу с формой восстановления пароля;
переход к профилю (/login/user.php).
o Параметры для реализации сценариев: регистрация register=yes, восстановления
пароля: forgot_password=yes, выход: logout=yes
o Ссылки внедрённого компонента авторизации system.auth. должны работать верно по
всем сценариям.
В шаблоне компонента авторизации добавить поддержку авторизации через соц-сети. Это
штатный функционал, поддерживаемый типовым шаблоном компонента.
В шаблоне компонента авторизации добавить поддержку capcha.
o capcha в компоненте авторизации – это штатный механизм, поддерживаемый типовым
шаблоном компонента;
o для простоты проверки указать 1 неправильный ввод пароля для включения capcha,
для группы Все пользователи (в том числе неавторизованные).
[ex1-25] Создание свойства страницы: управление цветом шапки левого меню.
Общие требования
Задание решается после внедрение шаблона сайта и внедрения меню.
Решаемая задача
В файл стилей шаблона сайта, в конец, добавить описание двух стилей
.side-block .red {
background: linear-gradient(#fda3a3, #ff0000);
}
.side-block .green {
background: linear-gradient(#e2ffe7, #00ff43);
}
Реализовать возможность администратору сайта управлять цветом шапки левого меню,
установив свойство страницы равное red или green.
Администратор должен устанавливать значение через административный интерфейс, не
прибегая к редактированию кода.
Задать значение по умолчанию для всего сайта равным red .
Задать значение green для страницы История компании (/company/history.php).
[ex1-61] Изменение почтового шаблона: информация о пользователе.
Создать новый шаблон для типа почтового сообщения, отсылаемого при изменении данных
пользователя.
Шаблон, создаваемый системой по умолчанию, не удалять, но системой он использоваться не
должен.
Шаблон:
o Тема: Информация о вас на сайте #SITE_NAME# обновлена
o Информация о вас на сайте #SITE_NAME# обновлена
o Текст:
Ваш логин [логин]
Адрес сайта: #SERVER_NAME#
------------------------------------------
Ваш статус: #STATUS#
Информация о вас:
Логин: #LOGIN#,
Имя: #NAME#,
Фамилия: #LAST_NAME#
Вы можете изменить пароль, перейдя по следующей ссылке:
http://#SERVER_NAME#/auth/index.php?change_password=yes&lang=ru&USER_CHECKWO
RD=#CHECKWORD#&USER_LOGIN=#URL_LOGIN#
-------
Сообщение сгенерировано автоматически.
o Получатель – email пользователя, отправитель: email адрес по умолчанию
Для проверки – необходимо отредактировать данные пользователя, установив галочку
«Оповестить пользователя»
Почтовый сервер складывает письма в папку /home/bitrix/mail, можно проверить решение.