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

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

..pdf
Скачиваний:
2
Добавлен:
05.02.2023
Размер:
1.26 Mб
Скачать

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

Дляразмещениявключоблавыполнитеемойстиледующее:

Откройтедляредактиршаблсайтаилиования

страницуввизуальномредакторе.

ДобавьтекомпонентВставкавключоблаемойсти (bitrix:main.include)вшаблонсайили(втелостраницы)настройтеего параметры.

Созданиевключаемобластможбытьей:полненох

изадминистративногораздМефланеджерейлов (КонтентСтрук> сайФайлы>типапкиура),создавфайл соответствующимименем;

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

ПослевыборакомандыДобавитьобластьбудетзапущенвизуальный редсозакторля даниясодержимоговключобласти.Привыбореемй командыДобавитьоблакакстPHPвозможнымдобавлениеанеть областиврежимеРНРкода

Аналогичнопекрейтидактированиювключаемыхобластей

можно:

 

непосредстизпубличногораздсайтврежимеланно

правки;

лиадминистбозразде,открывлативногоедактирования

 

соответствующийфайлМенеджерефайлов.

 

Включоблсоздаютсястиемыенаосновешабло,хравнящихсяов папкахсименем/page_templates/:

/bitrix/templates/.default/page_templates/ - еслиданный шабвклоючбластиниспоемойдвсехшаблоновьзуетсядизайна сайта;

/bitrix/templates/<идентификатор

шаблона>/page_templates/

- есдляшаблонаисайтаиспользуются

отдельныешаблвключобластейны. емых

 

 

21

Чтобыввизуальномредактореможно

быловыбиратьшаблон,на

основекот здаетсярогоедактируемаяобласть,списокшабдляонов

 

редактируобластейдолженбытьдобавленмыхфайл.content.php.

 

Файл.contentхранитсявпапке/.phpageвкаталогеtemplates/

 

соответствующегошаблонасайта.

 

2.7. Лабораторнаяработа«

Созданиекомпонента.Настройкамодуля

 

универсальногосписка

»

 

Цель работы

 

 

Создать компонеинастромодулнит тьверсальногосписка

.

Порядвыполненияк

лабораторнойработы

 

Компонент - этол гичзавекодршёнски,преддназначенный

ля

извлечеинформацииияфоблоковдругисточниковх

 

 

преобразованияеёHTML

-коддляотображенияввидефрагментовweb

-

страниц.Соизтоитобскомповенконтроллер( н)ишаблонаента

 

 

(представление)Компонент. ,помAPIдногощьюилинескольких

 

 

модулей,манипулируетданными.Шаблонкомпоневыводитданнтаые

 

 

настраницу.

 

 

Рисунок7 – Класхемасическаярабкомпонентаты

22

Порясозданиясобственомпонентаок

 

 

 

Выделитьнеобходимыйphp

-квотдельныйфайлдлятого,чтобы

 

использеговтомвать

видевызываемогофайланесложн.Но

 

компонентещенужноподключитьвсиспомтефайлаущьюписания,

 

 

 

которыйопознаетсяядромBitrixврезультатечегоFramework,

 

 

 

пользоватевидитвизуаредактореиконкульс азваниемом

 

 

 

компнастрнтаи оже ивать

егосвойства.

 

Напомним,чток мпонент

– этовыделенныйотдельныйфайлphp

-

кодсзаконченнойфункциональн,файлрегистрациикомпв остьюнента

 

 

 

системеописегоараметровния,такжефайлылокализации.

 

 

 

 

Регистрациякомпонента

 

 

 

Выднеобходимоголение

php-кодавотдельныйфайл.

 

Созданиефайлаописания.description.php

 

 

имен.

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

 

 

 

 

 

 

 

Задпараметрниевкодекомпонентав

 

 

 

Локализация

 

 

 

компонентаифайлареги

Подготовкафайловстекстовымиконстантамидля

 

страции:

 

 

 

/lang/ru/<имякомпонента>/componentи .php

 

 

 

/lang/ru/<имякомпонента>/.description.php

 

 

 

 

Внесениеизменвкобоихдфайловниякомпонентадля

 

 

использоваэтихконстантподк( файлаияючениеокделализациится

 

 

 

припомощифункцииIncludeTemplateLangF

 

ile).

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

онайденнойсайтеоши.Ошибкаудеткевысы

 

 

латьсяпочтовым

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

 

 

 

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

 

 

 

текст,нажим

аетCtrl+EnterиполучаетформуРис( 8).нок

 

 

 

23

Рисунок8

– Фобратнойрмасвязислучаеобнару

женияошибки

Таккаксообщениеошибкбудетотправленонапочту,то потребуесоздатьновыйпочтовый.сяип

ПерейдитенастраницуНастройки> продукта> и ПочтовыесобытияТипыпочтовых> событий.

Заполяолнитеформы:

Перейдитенастрани цуНастройки> продукта> и ПочтовыесобытияПочтовые> шаблоны.

НажмитевконтекстнпанелинаДобша,овитьблонйткроется

формасоздшаблона. ния

Задайтешаблондлясозданнпочтовоготипа .бытия

Создайвсобспространствевенномимен

папкуfeedbackсо .error

следующейструктурой:

 

папка /images файл feedback.gif папка /templates папка /.default файл script.js файл template.php

файл .description.php файл .parameters.php файлcomponent.php

Файлfeedback.gif - иконка,кото раябудетотображввизуалтьсяном

редакторе.

24

код файла 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([

{

25

'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;

}

26

код файла 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();

27

$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.8. Лабораторнаяработа«

 

Переводсай

тана«1С

-Битрикс»на

технкомпозитногологиюсайта

 

 

»

 

Цель работы

 

 

 

 

Создатьпрограммныйкод,кот рыйускоритьзволитвыдачувеб

 

 

-

страницыпользователю

.

 

 

 

Порядвыполненияк

 

лабораторнойработы

 

Присозданиикомпозитногосайта,такжедляотладкиработы, необходимоопредевфайлитьеконстантуdbconn.php define("BXВэтомCOMPOSITEслучаевлогбудут _DEBUG", true);.

писатьсявсеголосованияпротив"",такжесоздаватьсяистория изменстравкешени(/bitrix/htmlйц срасширениемpages/<domain>/)

.delete.<microtime>.

28

Нар ботающемсайтеиспользовэтконстайприведетниеты увеличениюиспольздисковогопространствавания.Поэтомуеёлучше отключитьпосленастройкиКомпозитногосайта.

Основнойинструментработы

– этол,которыйггенерируетфункция

AddMessage2LogМесторасплоложения.пределяетсяганастройками

 

dbconn.php:

 

define("LOG_FILENAME", $_SERVER[«DOCUMENT_ROOT"]."/../log.txt");

Влогеможноувидетьсписокшаблонов,котг лосорые

вали

«против»Рисунок( 9).

 

Рисунок9

– Фрагменталога

Вприме релогавидно,чток менюпонент

«возражает» против

использованияеготехнК мпозлогиисайт. тный

 

 

29

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

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

Рисунок10

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

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

(Рисунок

10).

 

 

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

 

одержимое

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

 

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

 

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

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

 

 

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

 

 

30