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

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

.pdf
Скачиваний:
3
Добавлен:
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/<имякомпонента>/.descrip tion.php

Внесениеизменвкобоихдфайловниякомпонентадля использоваэтихконстантподк( файлаияючениеокделализациится припомощифункцииIncludeTemplateLangFile).

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

Спомощьюэтогокомпонентаможнореализоватьфункционал, которыйбыпозволялпользсоователямбщатьтветствезаконтентным онайденнойсайтеоши.Ошибкаудеткевысылатьсяпочтовым уведомлением.Алгорирабп льзователятыскомпонентомочень простой:еслипользовательнаходитпорталеошибку, онвыделяет текст,нажим ает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