домовой
создание простого компонента умеющего в 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
Этап первый: создаем компонент
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