- •Содержание
- •Лабораторная работа №1. Основы html
- •1.1. Создание .Html страницы.
- •1.2. Создание csSфайла
- •1.3. Подключение css файла к html документу
- •Лабораторная работа №2. Разработка php-скрипта, работа с ssi
- •2.1. ОсновыPhp
- •2.2. Синтаксис языка php
- •2.6. Функции для работы с переменными
- •2.7. Константы
- •2.8. Системные константы
- •2.9. Массивы
- •2.10. Комментарии в php
- •2.11. Операторы
- •2.11. Выражения
- •2.12. Последовательность выполнения выражений
- •2.13. Управляющие структуры
- •2.15. Функции
- •2.16. Классы
- •2.17. Формирование массива данных в php
- •Лабораторная работа №3. Настройка базы данных MySql
- •3. 1. База данных MySql
- •3.2. Основные объекты структуры базы данных sql-сервера
- •3.3. Проектирование бд
- •3.4. Выполнение sql-команд
- •3.5. Изменения структуры таблицы
- •3.6. Загрузка данных из файла
- •3.7. Вставка отдельных строк
- •3.8. Простые запросы
- •Лабораторная работа №3. Установка базы данных MySql
- •Лабораторная работа №4. Разработка интерактивных элементов на JavaScript
- •4.1. Основы JavaScript
- •4.2. Переменные в JavaScript
- •4.3. Константы в JavaScript
- •4.4. Типы данных в JavaScript
- •Лабораторная работа №4. Использование простейших элементов JavaScript
- •Лабораторная работа №5. Использование готовых библиотек на примере jQuery
- •5.1. Основы jQuery
- •5.2. Особенности jQuery
- •5.3. Селекторы
- •5.4. Атрибуты jQuery
- •Лабораторная работа №5. Подключение библиотекиjQueryв html-документ
- •Лабораторная работа №6. Работа с компонентами cms/cmf на примере cms 1с-Битрикс
- •6.1. Введение в cms и cmf системы
- •6.2. Основные функции cms:
- •6.3. Анализ популярных систем
- •Лабораторная работа № 6. Работа с компонентами cms 1с-Битрикс. Создание календаря событий
- •Лабораторная работа №7. Программирование простейшего модуля в cms 1с-Битрикс.
- •7.7. Общий порядок работы с информационными блоками
- •7.8. Экспорт/импорт данных модуля
- •Лабораторная работа №7. Программирование простейшего модуля в cms 1с-Битрикс. Создание компонента передающего сообщение администратору об ошибке
- •Список литературы
7.7. Общий порядок работы с информационными блоками
Создание любого раздела сайта с использованием информационных блоков необходимо проводить в следующем порядке:
Внимательное продумывание структуры инфоблоков.
Создание нужного типа инфоблоков с настройкой параметров.
Создание самих инфоблоков с настройкой параметров.
Создание структуры внутри инфоблока.
Создание элементов инфоблока
Создание физической страницы (в случае использования комплексного компонента) или страниц (при использовании простых компонентов) и размещение на ней компонента (компонентов) с последующей настройкой свойств компонента.
Кастомизация работы компонента под потребности ТЗ сайта.
7.8. Экспорт/импорт данных модуля
Добавление большого числа элементов инфоблоков вручную - очень трудоемкое занятие. С целью облегчения добавления информации можно применять импорт/экспорт данных с использованием разных форматов файлов.
Лабораторная работа №7. Программирование простейшего модуля в cms 1с-Битрикс. Создание компонента передающего сообщение администратору об ошибке
Задание: создание компонента для сообщений администратору об ошибке. С помощью этого компонента можно реализовать функционал, который бы позволял пользователям сообщать ответственным за контент о найденной на сайте ошибке. Ошибка будет высылаться почтовым уведомлением. Алгоритм работы пользователя с компонентом очень простой: если пользователь находит на портале ошибку, то он выделяет текст, нажимает Ctrl+Enter и получает форму (рис.1):
Рис.1. Пример формы сообщения об ошибке
Форма заполняется и сообщение отправляется ответственному лицу.
Создание почтового шаблона
Так как сообщение об ошибке будет отправлено на почту, то потребуется создать новый почтовый тип.
Перейдите на страницу Настройки >Настройки продукта > Почтовые события > Типы почтовых событий.
Заполните поля формы (рис.2):
Рис.2. Форма Тип почтового события
Перейдите на страницу Настройки >Настройки продукта > Почтовые события > Почтовые шаблоны.
Нажмите в контекстной панели наДобавить шаблон, откроется форма создания шаблона.
Задайте шаблон для созданного типа почтового события (рис.3) :
Рис.3. Форма Параметры почтового события
Создание компонента
Создайте в собственном пространстве имен папку feedback.error со следующей структурой:
папка /images
файл feedback.gif
папка /templates
папка /.default
файл script.js
файлtemplate.php
файл .description.php
файл .parameters.php
файл component.php
Файл feedback.gif - иконка, которая будет отображаться в визуальном редакторе.
Код файла script.js:
BX.bind(document, "keypress", SendError); functionSendError(event, formElem) { event = event || window.event; if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD))) { var Dialog = newBX.CDialog({ title: "На сайте обнаружена ошибка!!", head: "В чём заключается ошибка?", content: '<form method="POST" id="help_form">\ <textarea name="error_desc" style="height: 78px; width: 374px;"></textarea>\ <input type="hidden" name="error_message"value="'+getSelectedText()+'">\ <input type="hidden" name="error_url" value="'+window.location+'">\ <input type="hidden" name="error_referer" value="'+document.referrer+'">\ <input type="hidden" name="error_useragent" value="'+navigator.userAgent+'">\ <input type="hidden" name="sessid" value="'+BX.bitrix_sessid()+'"></form>', resizable: false, height: '198', width: '400'}); Dialog.SetButtons([ { 'title': 'Отправить', 'id': 'action_send', 'name': 'action_send', 'action': function(){ BX.ajax.submit(BX("help_form")); this.parentWindow.Close(); } }, { 'title': 'Отмена', 'id': 'cancel', 'name': 'cancel', 'action': function(){ this.parentWindow.Close(); } } ]); Dialog.Show(); } } functiongetSelectedText(){ if (window.getSelection){ txt = window.getSelection(); } elseif (document.getSelection) { txt = document.getSelection(); } elseif (document.selection){ txt = document.selection.createRange().text; } elsereturn; return txt; }
Код файла template.php:
<? CUtil::InitJSCore(array('window', 'ajax')); ?>
Код файла .description.php:
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); $arComponentDescription = array( "NAME" =>"Send Error", "DESCRIPTION" =>"Send Error", "ICON" =>"/images/feedback.gif", "PATH" =>array( "ID" =>"utility", ), ); ?>
Код файла .parameters.php:
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $arComponentParameters = array(); ?>
Код файла component.php:
<? if (check_bitrix_sessid() && $_SERVER['REQUEST_METHOD'] == "POST"&& !empty($_REQUEST["error_message"]) && !empty($_REQUEST["error_url"])) { $arMailFields = Array(); $arMailFields["ERROR_MESSAGE"] = trim ($_REQUEST["error_message"]); $arMailFields["ERROR_DESCRIPTION"] = trim ($_REQUEST["error_desc"]); $arMailFields["ERROR_URL"] = $_REQUEST["error_url"]; $arMailFields["ERROR_REFERER"] = $_REQUEST["error_referer"]; $arMailFields["ERROR_USERAGENT"] = $_REQUEST["error_useragent"]; CEvent::Send("BX", SITE_ID, $arMailFields); } $this->IncludeComponentTemplate(); ?>
script.js
Теперь подробнее для разработчиков о том, что находится в файле feedback.error\templates\.default\script.js.
Объявление функции-обработчика, которая выводится на <body>:
functionSendError(event, formElem)
Ожидание нажатия Ctrl+Enter:
if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
Определение параметров будущего окна и его содержимого:
var Dialog = new BX.CDialog({ title: "Насайтеобнаруженаошибка!!", head: "Вчёмзаключаетсяошибка?", content: '<form method="POST" id="help_form" action="/bitrix/templates/.default/send_error.php">\ <textarea name="error_desc" style="height: 78px; width: 374px;"></textarea>\ <input type="hidden" name="error_message"value="'+getSelectedText()+'">\ <input type="hidden" name="error_url" value="'+window.location+'">\ <input type="hidden" name="sessid" value="'+BX.bitrix_sessid()+'"></form>', resizable: false, height: '198', width: '400'});
Определение набора кнопок:
Dialog.SetButtons([ { 'title':'Отправить', 'id': 'action_send', 'name': 'action_send', 'action': function(){ BX.ajax.submit(BX("help_form")); this.parentWindow.Close(); } }, { 'title': 'Отмена', 'id': 'cancel', 'name': 'cancel', 'action': function(){ this.parentWindow.Close(); } }, ]);
Вывод окна:
Функция getSelectedText() получает выделенный мышью текст. И далее идет отправка письма в тексте файла component.php:
if (check_bitrix_sessid() && $_SERVER['REQUEST_METHOD'] == "POST"&& !empty($_REQUEST["error_message"]) && !empty($_REQUEST["error_url"])) { $arMailFields = Array(); $arMailFields["ERROR_MESSAGE"] = trim ($_REQUEST["error_message"]); $arMailFields["ERROR_DESCRIPTION"] = trim ($_REQUEST["error_desc"]); $arMailFields["ERROR_URL"] = trim ($_REQUEST["error_url"]); CEvent::Send("BX", SITE_ID, $arMailFields); };
