домовой
создание простого компонента  умеющего в  ajax

Этап первый: создаем компонент

1. перейти  в папку где лежит битрикс

cd  www/ 

2. создать папку  нового виджета

mkdir -p local/components/domov0y/my.super.component

3. перейти в  папку компонента 
cd  local/components/domov0y/my.super.component 

4. создать файл component.php содержащий  следующий код
<?php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
//todo: тут будет логика  компонента

//здесь говорится о том что надо подключить  файл шаблона
$this->IncludeComponentTemplate();

?>

5. создать  каталоги  templates/.default и templates/.default/lang/ru/   

mkdir -p templates/.default/lang/ru/  

6.   создать файл шаблона компонента templates/.default/template.php  содержащий текст 
<?
IncludeTemplateLangFile(__FILE__)
//Так выводятся тексты лежащие  в языковом файле
echo getMessage('MY_MESSAGE');?>
//todo: тут код шаблона

?>
7.  создать  файл templates/.default/lang/ru/template.php  
<?
$MESS["MY_MESSAGE "] = "Это произвольный текст  который будет выведен на  экран   после  того  как  языковой файл будет подключен  через функцию IncludeTemplateLangFile(__FILE__) и вызван код echo getMessage('MY_MESSAGE');  ";

Собственно  на этом создание простого и бессмысленного  компонента завершено.
И его  даже  можно  запустить  написав на странице код 
<? $APPLICATION->IncludeComponent(
"domov0y:my.super.component ",
".default",
Array(),
false
);

 Этап второй: учим компонент  работать через ajax
условно простое, но не универсальное решение:  создать файл  ajax.php который будет содержать следующий код
<?
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
define("ajax",1);
include('component.php');
include('templates/.default/template.php');
?>
при этом надо исправить component.php 
 строка
 $this->IncludeComponentTemplate();
 
меняется  на  
 if (!defined("ajax" ))$this->IncludeComponentTemplate(); 

Ну а дальше  остается писать javasсript  позволяющий работать  с файлом 
local/components/domov0y/my.super.component/ajax.php
 c помощью ajax  запросов.
Никакой магии в этом нет. Используйте  стандартный  jquery и не вспоминайте  о том что  в фреймворке bitrix есть свой вариант  функций реализующих ajax

@темы: bitrix