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