Разработка интернет-приложений.-3
.pdf
Открывшаблон,можчтоувидеть, рамкаходнойстраницыменю неимеетизменямыхчастей.Поэтомудобавляемшаблон разрешиспользованиена готехнологии.
Теперьрезультатрабкомпонентатыпопадаетвстатическую страницу,вhtmlфайл.
Рисунок2 – ШаблонкомпонентаАвторизация
Рассмотримнапримерешаблонако Авторизацияпонента |
|
(Рисунок |
2). |
|
|
Анализируяк,одтмечаемчасть,гдеменяетсясодержимое |
|
|
выводимойинформац.Мывидим,чтоеслпользовательиавторизован, |
|
|
тоунеговыводитсяменю |
- работчастьоднкода,еслине |
|
авторизован, работаетдругаячастькода.Значитэтоесть |
|
|
динамическаячасть. |
|
|
Полу,чтовсё, мтоаетсяждуcreateFrame() |
->beginиend() |
- это |
динамизона.ПриэтомвсёчднаятоbeginSt |
ub() - непишетсявкеш,а |
|
досылапослевторогозапр,тсячтопсанегосле |
- пишетсявкеш, |
|
выдаётсяпользователюизаменяетсяпослевторогозапр. са |
|
|
|
11 |
|
Присозданиикешанадискенужнообратитьвниманиена ограниченияфайловойсис. т(30емыфайловыс воднойпапкена UNIXЭтойпроблемыможно.)избеж,еслианастроитьвильноЧПУ.
Например,делапутидотоваровьне/catalog/ID/catalog/SECTION/ID/,
тогдасисразложиттемавсефайлыпопапкам.
2.4. Лабораторнаяработа« |
Настройкиинформационны |
х |
блоков» |
|
|
Цельзанятия
Оптимизироватьпроцесссозданиябольшогоколичестваэлементов информационногоблока.
Порядвыплабораторнойлнениякработы
Созданиебольшогоколичестваэлементовинформационногоблока можноблегчитьзасчетпредвнастрорительной йкиформыдобавления элементов.
Настройкавнешнеговидаформы
Формаредактировадобавления/ элемеинфмбытьтаблокажет измененанастроенаподпотребностиконтент -менеджерасайта. Измененнаяформатображакакпридобавлендактировании/ тся элементав дминистративнойчасти,такпри добавленредактирован/ элементапубличнойчаст.
Принеобходимопереместитьможнолюбыеполялюбой закладкиформыналюбыедругиезакладки,сформудобныйвировав формыдлякаждогоконкретногоинфоблока.
Например,можнозарадатьнеесновныепарта,чтобымк тры добатовклениеаможнотрабыллогпр быстроизвестиудобно.
Рассмформуд бавлениятримэлеинфоблокаента.Еевнешнийвид поумолчаниюпредставленнарисунке3.
12
Рисунок3 |
– Внешнийвидф |
ормыдобавленияэлементаинфп блока |
|
|
умолчанию |
Настроеннаяформа |
длядоб авленияновогодивкаталогможетна |
|
выглядетькакпокнрисункеазано4.
Рисунок4 – Формадлядобавленияновогодивана
13
Каквидите,сокращеноколичествозакладок,удаленыненужн |
ые |
поля,перемещенывудобныеместанужныеполяформы.Работатьстало |
|
прощеиудобнее. |
|
2.5.Лабораторнаяработа« Созданиекомпонента.Настройкамодуля универсальногосписка »
Цельработы
Создатькомпонеинастромодулнит тьверсальногосписка.
Порядвыпок |
лнениялабораторнойработы |
|
Компонент - этол гичзавекодршёнски,преддляназначенный |
|
|
извлечеинформацииияфоблоковдругисточниковх |
|
|
преобразованияеёHTML |
-коддляотображенияввидефрагментовweb |
- |
страниц.Соизтоитобскомповенноент |
аконтроллер( )ишаблона |
|
(представление)Компонент. ,помAPIдногощьюилинескольких модулей,манипулируетданными.Шаблонкомпоневыводитданнтаые настраницу.
Рисунок5 – Класхемасическаярабкомпонентаты
14
Порясозданиясобственомпоненок |
|
та |
|
|
Выделитьнеобходимыйphp |
-квотдельныйфайлдлятого,чтобы |
|
||
использеговвидетвызываемоговатьфайланесложн.Но |
|
|
|
|
компонентещенужноподключитьвсиспомтефайлаущьюписания, |
|
|
|
|
которыйопознаетсяядромBitrixврезультатечегоFramework, |
|
|
|
|
пользовавидивизуальредактореельиконкус азваниемом |
|
|
|
|
компнастрнтаи ожеегосвойства.ивать |
|
|
|
|
Напомним,чток мпонент |
– этовыделенныйотдельныйфайлphp |
- |
||
кодсзаконченнойфункциональн,файлрегистрациикомпв остьюнента |
|
|
|
|
системеописанияего |
параметров,такжефайлылокализации. |
|
|
|
|
Регистрациякомпонента |
|
|
|
|
Выднеобходимоголениеphp |
-кодавотдельныйфайл. |
|
|
|
Созданиефайлаописания.description.php |
|
|
|
имен. |
Размещениефайлвпапкевсобственномпространстве |
|
|
|
|
|
|
|
|
|
Задпараметрниевкодекомпонев |
|
нта |
|
|
Локализация |
|
|
|
Подготовкафайловстекстовымиконстантамидля
компонентаифайларегистрации: /lang/ru/<имякомпонента>/componentи .php /lang/ru/<имякомпонента>/.description.php
Внесениеизменвкобоихдфайловниякомпонентадля использованияэти хконстантподк( файлаючениеокделализациится припомощифункцииIncludeTemplateLangFile).
Рассмпримеротримзданиякомпдлясообщенийнента администраторуобошибке.
Спомощьюэтогокомпонентаможнореализоватьфункционал, которыйбыпозволялполь зователямсо бщатьтветствезаконтентным онайденнойсайтеоши.Ошибкаудеткевысылатьсяпочтовым уведомлением.Алгорирабп льзователятыскомпонентомочень про:еслипользовательтойнаходитпорталеошибку, онвыделяет
текст,нажимаетCt rl+EnterиполучаетформуРис( 6).нок
15
Рисунок6 |
– Фобратнойрмасвязислучаеобнаруженияошибки |
|
Таккаксообщениеошибкбудетотправленонапочту,то |
|
|
потребуесоздатьновыйпочтовый.сяип |
|
|
• ПерейдитенастраницуНастройки> продуктаи |
> |
|
ПочтовыесобытияТипыпочтовых> событий. |
|
|
•Заполяолнитеформы:
•ПерейдитенастраницуНастройки> продукта> и ПочтовыесобытияПочтовые> шаблоны.
•НажмитевконтекстнпанелинаДобша,овитьблонйткроется формасоздшаблона. ния
•Задайтешаблондлясозданнпочтовоготипа .бытия
Создайвсобспространствевенномименпапкуfeedbackсо .error следующейструктурой:
папка /images файл feedback.gif папка /templates папка /.default файл script.js файл template.php
файл .description.php файл .parameters.php файлcomponent.php
Файлfeedback.gif - иконка,котбудетраятображввизуалтьсяном
редакторе.
16
код файла script.js:
BX.bind(document, "keypress", SendError);
function SendError(event, formElem)
{
event = event || window.event;
if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode ==
0xD)))
{
var Dialog = new BX.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([
{
17
'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();
}
}
function getSelectedText(){ if (window.getSelection){
txt = window.getSelection();
}
else if (document.getSelection) { txt = document.getSelection();
}
else if (document.selection){
txt = document.selection.createRange().text;
}
else return; return txt;
}
18
код файла 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();
19
$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(); ?>
Функция getSelectedText() получает выделенный мышью текст. И далееидетотправисьматефкстеcomponentйла .php
2.6. Лабораторнаяработа« |
Версткапод«1С |
-Битрикс:Управление |
||
сайтом»исоздшаблонание |
– особенности,проблемы |
» |
||
Цельзанятия |
|
|
|
|
Ознакомитьсяосновнымиособенностямиразршаблоновнаотк |
|
|
|
|
примереконкре |
тнойсистемыуправлениясайтом |
. |
|
|
Порядвыполненияк |
лабораторнойработы |
|
|
|
Шаблондизайна |
– этовнешнийвидсайта,котоопромеделяется |
|
|
|
расположеразличныхэлементхудожественныйнасайте, ие стиль |
|
|
||
способотображениястраниц.Включаетвсебпрограммн |
|
|
ыйhtml - иphp - |
|
код,графичеэлементы,таблск,дополнительныелейцыфайлыдля |
|
|
|
|
отображенияконтента.Мотаквключатьетсебяшаблоны компонентов,шаблготстраницнысниппеты.х
20
