Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка интернет-приложений.-1

.pdf
Скачиваний:
3
Добавлен:
05.02.2023
Размер:
972.11 Кб
Скачать

Открывшаблон,можчтоувидеть, рамкаходнойстраницыменю неимеетизменямыхчастей.Поэтомудобавляемшаблон разрешиспользованиена готехнологии.

Теперьрезультатрабкомпонентатыпопадаетвстатическую страницу,вhtmlфайл.

Рисунок 2 – ШаблонкомпонентаАвторизация

Рассмотримнапримерешаблонако Авторизацияпонента

 

(Рисунок

2).

 

 

Анализируяк,одтмечаемчасть,гдеменяетсясодержимое

 

 

выводимойинформац.Мывидим,чтоеслпользовательиавторизован,

 

 

тоунеговыводитсяменю

- работаетодначастькода,еслине

 

авторизован, работаетдругаячастькода.Значитэтоесть

 

 

динамическаячасть.

 

 

Полу,чтовсё, мтоаетсяждуcreateFrame()

->beginиend()

- это

динамизона.ПриэтомвсёчднаятоbeginStub()

- непишетсявкеш,а

 

досылаетсяпослевторогозапр, чтопсанегосле

- пишетсявкеш,

выдаётсяпользователюизаменяетсяпослевторогозапр. са

 

 

 

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).

 

 

 

Рассмпримеротримзданиякомпдлясообщенийнента

 

 

 

администраторуобошибке.

 

 

 

Спомощьюэтогокомпонентаможнореализоватьфункционал,

 

 

 

которыйбыпозволялпользсоователямбщатьтветственным

 

законтент

 

онайденнойсайтеоши.Ошибкаудеткевысылатьсяпочтовым

 

 

 

уведомлением.Алгорирабп льзователятыскомпонентомочень

 

 

 

про:еслипользовательтойнаходитпорталеошибку, онвыделяет

 

 

 

текст,нажимаетCtrl+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