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

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

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

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

Теперьрезультатрабкомпонентатыпопадаетвстатическую страницу,в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