0  /  10

Учебные кейсы по 1C-Битрикс

Задание 1

Учебный кейс «Турфирма»

На основании предоставленного шаблона необходимо создать локальный веб сайт на CMS 1C-Bitrix с идентичным дизайном и начальной структурой портала тур оператора.

Необходимые инфоблоки:

  • Страны > Город
  • Отели
  • Туры
  • Новости
  • Баннеры

Необходимые разделы:

  • /index.php
  • /countries/
  • /tours/
  • /hotels/
  • /news/
  • /contacts/

Необходимый функционал:

Инфоблоки Страны –> Города
Справа мы видим список всех Стран введенных в ИБ, при нажатии на страну пользователь переходит в раздел с описанием данной страны и списком всех городов этой страны. При нажатии на город пользователь переходит на страницу с описание данного города, видит список всех отелей города и список всех туров привязанных к отелям привязанных к данному городу.

Инфоблок Отель – Привязка к Городу
Пользователь в детальном описании города видит список отелей данного города, при переходе в отель, пользователь видит описание отеля, страну и город в котором находится данный отель и туры где участвует данный отель.

Инфоблок Туры – Привязка к Отелю
В разделе туров пользователь видит список всех туров введенных в ИБ, при нажатии на детальное описание тура пользователь переходит в описание тура, видит все отели которые привязаны к туру и список стран и городов где побывает турист (город привязан к отелю, с помощью данной привязки можно узнать страну города и вывести данную информацию на экран)

Фильтр туров (блок слева) по стране (AJAX подгрузка) городов, фильтр по стоимости тура (от и до) (http://dev.1c-bitrix.ru/community/webdev/group/78/blog/1771/)

Сделать фотогалерею в отелях и городах на jquery (список -> переход к детальному изображению)

Баннер на главной странице выводит элементы ИБ «Баннеры», Под баннером необходимо вывести три горячих тура.

Знания получаемые из кейса:

Хорошие знания инфоблоков и связей между ними.

Что будет использоваться для решения задачи:

  1. CModule::IncludeModule("iblock"); (добавляет возможность использовать классы информационных блоков)
  2. CIBlockElement::GetList фильтр по элементам ИБ (property_<PROPERTY_CODE>)
  3. CIBlockElement::GetByID
  4. Компонент «Пункты меню» Для вывода секций в меню (либо выход использовать CIBlockSection::GetList)
  5. СFile::GetPath()

Скачать файлы можете здесь ->Верстка

Задание 2

На основании сайта предоставленной верстки необходимо создать локальный проект на CMS 1C-Bitrix.

Типы инфоблоков:

  • «Новости компании» у данного типа создается ИБ «Новости»
  • «Справочники» создаются все оставшиеся ИБ

Необходимые инфоблоки:

  • Баннеры
  • Новости
  • Наша команда
  • Услуги
  • FAQ
  • Цены
  • Что вы получаете
  • Отзывы
  • Портфолио
  • Контакты
  • Клиенты

Необходимые разделы:

  • /index.php
  • /news/
  • /about/
  • /services/
  • /faq/
  • /pricing/
  • /testimonials/
  • /404.php
  • /background/
  • /gallery/
  • /contacts/

Структура информационных блоков:

  • ИБ «Баннеры»
    Элементы данного ИБ хранят фото баннеров сайта. Для вывода баннеров использовать включаемую область для раздела.
    • Переключатели (pagination) добавляются по мере появления баннеров, если имеется только 1 баннер, переключатель не должен выводиться.
    • Выводить не более 3 баннеров
  • ИБ «Новости»
    ИБ содержит информацию о новостях компании. Вывод всех новостей осуществлять в разделе «Новости» -> «Список». Для вывода детальной страницы новостей использовать верстку со страницы «Новости» -> «Детальная страница»

  • ИБ «наша команда»
    ИБ содержит информацию о сотрудниках компании. Вывод всех сотрудников осуществляется в разделе “/about/”. Элемент ИБ должен содержать следующие свойства: «должность», «facebook», «twitter», «pinterest», «google+». Ссылки с иконками соц.сетей должны выводиться в случае если поля заполнены.

  • ИБ «Клиенты»
    ИБ содержит список всех клиентов. Выводить логотипы клиентов и при клике на логотип клиент должен переходить на официальную страницу клиента.

  • ИБ «Услуги»
    Каждый элемент отвечает за отдельную услугу компании, располагается в разделе “/service/”. Вывести все услуги компании.

  • ИБ « FAQ»
    В ИБ вопрос должен быть названием элемента, а ответ – анонсный текст.

  • ИБ « Цены»
    ИБ – «Тарифные планы» с характеристиками и ценой(свойства).
    o ИБ « Что вы получаете»
    ИБ должен выводить список элементов согласно верстке.

  • ИБ « Отзывы»
    ИБ содержит информацию об отзывах посетителей. Вывести все отзывы. Применить свойство раздела для вывода блока «Наши клиенты».

  • Раздел «404»
    Добавить страницу 404 с указанной версткой.

  • ИБ «Портфолио»
    ИБ содержит фотографии и описание к ним. Вывод фотографий согласно верстке в разделе “/gallery/”, при клике на название пользователь должен переходить на детальную страницу

  • Раздел «Контакты»
    Содержит форму обратной связи (компонент) компании, компонент yandex maps , а также другая контактная информация

  • Раздел «Фон»
    Создать свойство раздела «Установить фон» (в значении должен храниться путь к изображению), наложить условия на заполненность свойства раздела и наличия файла по указанному пользователем пути. Контент страницы вывести как в верстке.

Описание блоков

  • Логотип, координаты компании включить во включаемую область
  • Для вывода баннера создать включаемую область для раздела и указать путь к фото.
  • Блок «Последние работы» выводить на главной странице. В этом блоке вывести последние 4 элемента ИБ «Портфолио» согласно верстке:
    • Переключатели (pagination) добавляются по мере появления баннеров, если имеется только 1 изображение, переключатель не должен выводиться.
  • На главной странице в нижнем блоке выводить последние 3 новости, должен быть переход на детальную страницу. Блок «Последние новости» выводить только на главной странице.

Знания получаемые из кейса:

  • Средние знания ИБ. Создание/вывод разделов, элементов и свойств элементов.
  • Навыки работы с плагинами jquery, работы с компонентом обратной связи.
  • Работа со свойствами разделов.

Что будет использоваться для решения задачи:

  1. CModule::IncludeModule("iblock"); (добавляет возможность использовать классы информационных блоков)
  2. CIBlockElement::GetList фильтр по элементам ИБ
  3. CIBlockElement::GetByID
  4. СFile::GetPath()
  5. CFile::ResizeImageGet
  6. bitrix:catalog.socnets.buttons

Литература:

Указания:
Подключаемые файлы должны находиться:
a. css - /media/css/
b. js - /media/js/
c. images - /media/i/
d. fonts - /media/font/
e. PHP библиотеки - /media/lib/
f. Подключаемые области из файла - /media/include_areas/

Константы должны быть объявлены в указанном файле: /bitrix/php_interface/scripts/constants.php (файл должен быть подключён в /bitrix/php_interface/init.php)

Скачать файлы можете здесь ->HTML

Учебный кейс "Монитор качества"

На основании сайта предоставленной верстки необходимо создать локальный проект на CMS 1C-Bitrix.

Типы инфоблоков:

  • «Новости компании» у данного типа создается ИБ «Новости»
  • «Справочники» создаются все оставшиеся ИБ

Необходимые инфоблоки:

  • Баннеры
  • Новости
  • Наша команда
  • Услуги
  • FAQ
  • Цены
  • Что вы получаете
  • Отзывы
  • Портфолио
  • Контакты
  • Клиенты

Необходимые разделы:

  • /index.php
  • /news/
  • /about/
  • /services/
  • /faq/
  • /pricing/
  • /testimonials/
  • /404.php
  • /background/
  • /gallery/
  • /contacts/

Структура информационных блоков:

  • ИБ «Баннеры»
    Элементы данного ИБ хранят фото баннеров сайта. Для вывода баннеров использовать включаемую область для раздела.
    • Переключатели (pagination) добавляются по мере появления баннеров, если имеется только 1 баннер, переключатель не должен выводиться.
    • Выводить не более 3 баннеров
  • ИБ «Новости»
    ИБ содержит информацию о новостях компании. Вывод всех новостей осуществлять в разделе «Новости» -> «Список». Для вывода детальной страницы новостей использовать верстку со страницы «Новости» -> «Детальная страница»

  • ИБ «наша команда»
    ИБ содержит информацию о сотрудниках компании. Вывод всех сотрудников осуществляется в разделе “/about/”. Элемент ИБ должен содержать следующие свойства: «должность», «facebook», «twitter», «pinterest», «google+». Ссылки с иконками соц.сетей должны выводиться в случае если поля заполнены.

  • ИБ «Клиенты»
    ИБ содержит список всех клиентов. Выводить логотипы клиентов и при клике на логотип клиент должен переходить на официальную страницу клиента.

  • ИБ «Услуги»
    Каждый элемент отвечает за отдельную услугу компании, располагается в разделе “/service/”. Вывести все услуги компании.

  • ИБ « FAQ»
    В ИБ вопрос должен быть названием элемента, а ответ – анонсный текст.

  • ИБ « Цены»
    ИБ – «Тарифные планы» с характеристиками и ценой(свойства).
    o ИБ « Что вы получаете»
    ИБ должен выводить список элементов согласно верстке.

  • ИБ « Отзывы»
    ИБ содержит информацию об отзывах посетителей. Вывести все отзывы. Применить свойство раздела для вывода блока «Наши клиенты».

  • Раздел «404»
    Добавить страницу 404 с указанной версткой.

  • ИБ «Портфолио»
    ИБ содержит фотографии и описание к ним. Вывод фотографий согласно верстке в разделе “/gallery/”, при клике на название пользователь должен переходить на детальную страницу

  • Раздел «Контакты»
    Содержит форму обратной связи (компонент) компании, компонент yandex maps , а также другая контактная информация

  • Раздел «Фон»
    Создать свойство раздела «Установить фон» (в значении должен храниться путь к изображению), наложить условия на заполненность свойства раздела и наличия файла по указанному пользователем пути. Контент страницы вывести как в верстке.

Описание блоков

  • Логотип, координаты компании включить во включаемую область
  • Для вывода баннера создать включаемую область для раздела и указать путь к фото.
  • Блок «Последние работы» выводить на главной странице. В этом блоке вывести последние 4 элемента ИБ «Портфолио» согласно верстке:
    • Переключатели (pagination) добавляются по мере появления баннеров, если имеется только 1 изображение, переключатель не должен выводиться.
  • На главной странице в нижнем блоке выводить последние 3 новости, должен быть переход на детальную страницу. Блок «Последние новости» выводить только на главной странице.

Знания получаемые из кейса:

  • Средние знания ИБ. Создание/вывод разделов, элементов и свойств элементов.
  • Навыки работы с плагинами jquery, работы с компонентом обратной связи.
  • Работа со свойствами разделов.

Что будет использоваться для решения задачи:

  1. CModule::IncludeModule("iblock"); (добавляет возможность использовать классы информационных блоков)
  2. CIBlockElement::GetList фильтр по элементам ИБ
  3. CIBlockElement::GetByID
  4. СFile::GetPath()
  5. CFile::ResizeImageGet
  6. bitrix:catalog.socnets.buttons

Литература:

Указания:
Подключаемые файлы должны находиться:
a. css - /media/css/
b. js - /media/js/
c. images - /media/i/
d. fonts - /media/font/
e. PHP библиотеки - /media/lib/
f. Подключаемые области из файла - /media/include_areas/

Константы должны быть объявлены в указанном файле: /bitrix/php_interface/scripts/constants.php (файл должен быть подключён в /bitrix/php_interface/init.php)

Файлы для скачивания ->HTML

Учебный кейс "Композитный режим"

Необходимо перевести созданные ранее проект “Корпоративный сайт компании” в режим композитного сайта.

Литература:

Задание 3

Общее описание:

Необходимо разработать компонент вывода прайс-листов на основании информационного блока.

Необходимые Типы инфоблоков:

  • Справочники

Необходимые инфоблоки:

  • Прайс-листы

Необходимые разделы:

  • /price/

Пример: http://micros.uz/price/

Свойства: Файл, Рубрики: Отделы компании

  • component.php Формирует массив $arResult на основании .parameters.php
  • .parameters.php С помощью данного файла пользователь выбирает

Необходимые настройки для отображения прайс-листа это

  • Выбор типа ИБ
  • Выбор ИБ
  • Свойство, из которого брать файл
  • Выводить отдел
  • Выводить размер файла
  • Выводить тип файла
  • Выводить дату обновления
  • Необходимо использовать LANG файлы

Знания получаемые из кейса:

  • Навыки создания компонентов
  • Навыки работы с LANG файлами

Литература:

Задание 4

Типы инфоблоков:

  • Модуль «Заглушка»

Необходимые инфоблоки:

  • «Подписчики»

Структура информационных блоков:

  • ИБ «Подписчики»

Элементами этого ИБ являются подписчики, подписавшиеся через форму из заглушки. E-mail подписавшихся пользователей хранится в качестве названия элемента.

Возможности мастера установки модуля:

  • Возможность выбора/смены заднего фона
  • Возможность указания даты открытия сайта для обратного отсчёта
  • Возможность ввода ссылок на страницы в соц. сетях (facebook, twitter, instagram)

Настройки модуля в административной части:

  • Возможность смены заднего фона
  • Возможность указания даты открытия сайта для обратного отсчёта
  • Возможность ввода ссылок на страницы в соц. сетях (facebook, twitter, instagram)

Страница заглушки:

  • Обратный отсчёт должен идти от той даты, которую указали в настройках модуля
  • Форма отправки e-mail пользователей должна сохранять e-mail пользователей в ИБ «Подписчики» для подписки на новости сайта
  • Ссылка на соц. сеть должна выводиться в случае указания ссылки в настройках модуля

Знания, получаемые из кейса:

  • Умение добавить страницу заглушки
  • Умение создавать модули
  • Умение создавать мастера установки
  • Умение создавать страницу настроек модуля в административной части
  • Умение работать со значениями настроек модуля

Литература:

Файлы для скачивания ->HTML

Задание 5

Общее описание:

Необходимо разработать комплексный компонент вывода всех вендоров компании (Инфоблок) со всеми товарами (Инфоблок), необходимо использовать ЧПУ в настройках.

Необходимые инфоблоки:

  • Вендоры
  • Каталог товаров

Необходимые разделы + ЧПУ разделы:

  • /vendor/ - общий каталог (компонент vendor.sections) (Список всех вендоров)
  • /vendor/#CODE_VENDOR#/ || /vendor/kaspersky/ (компонент vendor.company) (интерфейс вендора)
  • /vendor/#CODE_VENDOR#/#CODE_ITEM#/ || /vendor/kaspersky/Kaspersky_Base_2011/ (компонент vendor.items) (интерфейс списка товаров вендора)

Необходимые компоненты:

  • vendor.sections – общий список вендоров
  • vendor.company – детальное описание вендора + список все товаров вендора
  • vendor.item – детальное описание товара вендора

    Необходимый функционал:

  • Необходимо использовать LANG файлы

Знания получаемые из кейса:

  • Навыки создания комплексных компонентов 2.0
  • Навыки работы с ЧПУ..

Литература:

Задание 6

Общее описание:

Необходимо установить различные виды событий на действия пользователей и системы:

1. Запись изменения элемента Инфоблока в лог файл

Необходимо вести запись измененных параметров элемента информационного блока в формате:

  1. #PROPERTY#: #OLD_VALUE# / #NEW_VALUE#

2. Запрет удаления элементов конкретного информационного блока

Необходимо запретить удаление элементов конкретного информационного блока.

3. Запрет добавления файла в элемент информационного блока размером менее 500px / 500px

Необходимо выводить ошибку на уровне события при введении изображения в поле “Детально изобрежения” в случае если оно меньше 500px / 500px

4. Добавление закладки в социальную сеть

Необходимо добавить закладку “Опросы” в компонент социльной сети, внутри закладки вывести компонент “Опросов”

5. Размещение модуля в административном меню

Необходимо добавить пункт меню “Micros Development - Модуль” в раздел административного меню, на странице вывести простой текст.

Знания получаемые из кейса:

  • Навыки использования триггеров (событий) в Bitrix Framework
  • Навыки использования log файлов

Литература:

  1. https://dev.1c-bitrix.ru/api_help/main/functions/debug/addmessage2log.php
  2. http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3493&LESSON_PATH=3913.4619.3493

Задание 7

Общее описание:

Необходимо разработать раздел редактирования rss каналов и просмотра rss постов. Каждые полчаса агент должен импортировать новые rss посты из активных rss каналов. Все агенты должны работать из cron.

Необходимые таблицы:

  • md_rss_channels
    • ID(integer, auto_increment)
    • ACTIVE (string: Y/N)
    • NAME(string)
    • DESCRIPTION(string)
    • URL(string)
  • md_rss_posts
    • ID(integer, auto_increment)
    • NAME(string)
    • DESCRIPTION(string)
    • URL(string)
    • RSS_CHANNEL(integer, foreign key)

Необходимые разделы:

  • /feeds/channels/ - rss каналы
  • /feeds/list/ - rss посты

Описание разделов:

  • RSS каналы

    Пользователь может просмотреть список имеющихся rss каналов, может добавить новый канал, может отредактировать канал, может активировать/деактивировать канал. Использовать компоненты main.interface.grid, main.interface.form.

  • RSS посты

    Пользователь видет список постов. При клике на заголовок или на ссылку «Подробнее» пользователь переходит на страницу поста. Слева вывести фильтр по rss каналу.

Описание агента:

Скрипт должен запускаться каждые полчаса. Скрипт должен импортировать новые посты активных на тот момент rss каналов.

Знания получаемые из кейса:

  • Умение работать с таблицами с помощью ORM Bitrix Framework
  • Использование взаимосвязей между сущностями ORM
  • Добавление скрипта в крон

Литература:

Задание 8

Описание: Бизнес процесс приема кандидата в компанию разрабатывается с целью систематизации процедуры приема новых сотрудников.

Лица, участвующие в документе:

  • Инициатор
  • Руководитель инициатора
  • Сотрудники отдела HR (кадровик)
  • Сотрудники отдела OSA (отдел системных администраторов)

Константы процесса:

  1. Сотрудник отдела HR
  2. Сотрудник отдела OSA

Параметры процесса:

  1. ФИО [Строка]
  2. Дата рождения [Дата]
  3. Отдел [Строка]
  4. Должность [Строка]
  5. Комментарий [Текст]

Этапы процесса:

  1. Инициатор создает заявку, вносит базовые данные по кандидату
  2. В случае если инициатор НЕ является руководителем подразделения, то отправляется сообщение руководителю подразделения, о том что инициатор создал данную заявку
    1. В случае если руководитель подтверждает корректность заявки, то, процесс продолжается
    2. В случае отказа, инициатору отправляется сообщение с пояснением причины отказа
  3. Заявку получает сотрудник отдела HR, заполняет данные во внутренней системе кадров, подтверждает что данные заполнены
  4. Заявку получает сотрудник отдела OSA, создает учетную запись в Active Directory, проверяет корректность импорта в ИНТРАНЕТ портал, вносит учетные данные в процесс
    1. Инициатору отправляется письмо с учетными данными кандидата
  5. При выполнении работы как сотрудником HR, так и сотрудником OSA, заявка закрывается.

_Схема BPMN_


Файлы для скачивания ->bp_.gliffy