Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Вопрос по Битрикс API

00 голосов
6
Всем привет.
Существует ли такой метод, который бы позволял вызывать компонент с определенным шаблоном и возвращать результат в виде строки?
$APPLICATION->IncludeComponent - сразу выводит все на экран,а мне нужен результат в виде строки.
спросил 28 Май, 13 от wogich (630 баллов)

6 Ответы

00 голосов
так а заключить его в OB_START OB_END?
Код
ob_start()
вызов компонента
$txt=ob_get_contents();
ob_end_clean();
echo $txt;


Да и вообще может есть более конкретная задача для чего это все нужно, будут и другие решения.
ответил 28 Май, 13 от Barfetta (180 баллов)
00 голосов
мне для ajax запросов. Т.е. php скрипт определяет какую-то логику, далее запускает какой-то компонент и возвращает на клиентскую сторону.
ответил 30 Май, 13 от wogich (630 баллов)
00 голосов
Ну так и пусть его возвращает в поток, зачем в строку? Вот так например:
Код
<?
define("NO_KEEP_STATISTIC", true);
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"; 
$APPLICATION->IncludeComponent(...)
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php";
?>
Если надо уложить результаты нескольких компонентов в xml, можно например заключать их в некие условные теги и потом на этапе вывода преобразовать через OnEndBufferContent, но такое очень редко требуется, в большинстве случаев достаточно использовать исходный шаблон компонента и responseText.
ответил 27 Авг, 13 от Eddie (2,060 баллов)
00 голосов
Цитата
Дмитрий Якинцев пишет:
Ну так и пусть его возвращает в поток, зачем в строку? Вот так например:
Код
<?

define("NO_KEEP_STATISTIC", true);

require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"; 

$APPLICATION->IncludeComponent(...)

require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php";

?>
Если надо уложить результаты нескольких компонентов в xml, можно например заключать их в некие условные теги и потом на этапе вывода преобразовать через OnEndBufferContent, но такое очень редко требуется, в большинстве случаев достаточно использовать исходный шаблон компонента и responseText.


Не совсем поняли Вы меня =).
Я формирую ответ в формате json и потом его отсылаю клиенту.
ответил 25 Ноя, 13 от wogich (630 баллов)
00 голосов
Тогда напишите шаблон для компонента, который генерирует json вместо html.
ответил 07 Март, 14 от Eddie (2,060 баллов)
00 голосов
Цитата
Дмитрий Якинцев пишет:
Тогда напишите шаблон для компонента, который генерирует json вместо html.


Гм, зачем!? =)
Шаблон не важно что возвращает =) Для JSON-а это будет строкой =).
Сделал все, спасибо.
ответил 27 Июнь, 14 от wogich (630 баллов)

Похожие вопросы

0 голосов
8 ответов
спросил 26 Июнь, 13 от Ogyrez (240 баллов)
0 голосов
2 ответов
0 голосов
2 ответов
спросил 18 Март, 14 от GIN1 (200 баллов)
0 голосов
7 ответов
спросил 04 Авг, 13 от LACOSTE88 (160 баллов)