- Буферизация
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Сброс буфера в компоненте bitrix:sale.order.payment
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Что делает метод RestartBuffer?
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
Буферизация
Уважаемые участники сообщества, пожалуйста дайте ссылку где написано про буферизацию.
В частности интересует: что содержит буфер или для чего он нужен, какой максимально
возможный размер буфера, при работе с AJAX почему нужно очищать буфер,
где найти описание функции $GLOBALS[‘APPLICATION’]->RestartBuffer();
Я не ленив и не холявщик. Просто не могу найти документации. Искал, в том числе, в коде битрикса
RestartBuffer() не нашел определения функции. CMain extend CallMain в описании класса тоже нет.
Ну где мне узнать ответ на мои вопросы?
class CAllMain function RestartBuffer()< $this->bShowHeadString = false; $this->bShowHeadScript = false; $this->buffer_man = true; ob_end_clean(); $this->buffer_man = false; $this->buffer_content_type = array(); $this->buffer_content = array(); if(function_exists("getmoduleevents")) < foreach(GetModuleEvents("main", "OnBeforeRestartBuffer", true) as $arEvent) ExecuteModuleEventEx($arEvent); >ob_start(array(&$this, "EndBufferContent")); >
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Сброс буфера в компоненте bitrix:sale.order.payment
После очередного обновления страница оплаты одного из сайтов клиента стала отображаться без вывода header шаблона.
На странице используется компонент bitrix:sale.order.payment в начале которого появилась строка:
$APPLICATION->RestartBuffer();
Никто не подскажет зачем так сделали, нарушив дизайн самой важной страницы магазина (страницы оплаты)?
$APPLICATION->IncludeComponent( "bitrix:sale.order.payment", "", Array( ),false);
На клиентском сайте этот вызов приводит к отсутствию header вплоть до вызова bitrix:sale.order.payment.
Если вызов закомментировать, остальной сайт работает норм.
Морозов Валерий, ну да. Компонент делает сброс буфера. Поэтому и header нет.
Раньше этого он не делал. Зачем добавили непонятно. Кому надо и так мог вывести содержимое компонента без header и footer
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Что делает метод RestartBuffer?
Не нашел доков по данному методу, может кто нибудь по подробнее описать что он делает и в каких ситуациях полезен?
самое простое объяснение, он отсекает то, что находится выше него по верстке, нужен например для аякс пагинации, часто использую
Также используется, когда страница делает POST/AJAX-запрос к самой себе (заполнение формы, например), и должна вернуть массив JSON вместо стандартного дизайна.
В компоненте, используемом на странице:
$this->IncludeComponentTemplate(«template_1»);
template_1.php:
global $APPLICATION; $APPLICATION->RestartBuffer();
// ваш код
echo json_encode($result);
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности