- Список терминов
- Форум
- Центр поддержки
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Страница и порядок её выполнения
- Подключить bitrix без подключения шаблона сайта
- Варианты использования
- Пример подключения компонента Ссылка на корзину в ajax файле
- Bitrix запись своих настроек в settings.php
- Bitrix получить путь до зарегистрированного файла
- CSS простой горизонтальный слайдер
- Bitrix получить путь до компонента
- Bitrix подключить класс компонента
- PHP Удалить лишние нули после запятой
Список терминов
В общем случае под данным термином понимается верхняя левая часть страницы.
Для публичной части пролог соответствующего шаблона сайта хранится в файле /bitrix/templates/ ID шаблона сайта /header.php.
Для административной части пролог хранится в файле /bitrix/modules/main/interface/prolog_admin.php.
В свою очередь, пролог может быть разделен на служебную и визуальную части. В служебной части подключаются все необходимые классы, создаётся соединение с базой, создаётся ряд служебных экземпляров объектов, таких как $USER, $APPLICATION и т.д. В визуальной части выводится верхняя левая часть страницы.
Если в публичной части необходимо подключить неразделенный пролог, то используем следующий код:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
Если по тем или иным причинам необходимо разделить пролог на служебную (prolog_before.php) и визуальную (prolog_after.php) части, то используем следующие коды:
require($_SERVER["DOCUMENT_ROOT"]. "/bitrix/modules/main/include/prolog_before.php"); . require($_SERVER["DOCUMENT_ROOT"]. "/bitrix/modules/main/include/prolog_after.php");
В общем случае под данным термином понимается нижняя правая часть страницы.
Для публичной части эпилог соответствующего шаблона сайта хранится в файле /bitrix/templates/ ID шаблона сайта /footer.php.
Для административной части эпилог хранится в файле /bitrix/modules/main/interface/epilog_admin.php.
В свою очередь, эпилог может быть разделен на служебную и визуальную части. В служебной части производится ряд таких действий, как: отсылка почтовых сообщений, отработка обработчиков события OnAfterEpilog и др. В визуальной части выводится нижняя правая часть страницы.
Если в публичной части необходимо подключить неразделенный эпилог, то используем следующий код:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
Если по тем или иным причинам необходимо разделить эпилог на визуальную (epilog_before.php) и служебную (epilog_after.php) части, то используем следующие коды:
require($_SERVER["DOCUMENT_ROOT"]. "/bitrix/modules/main/include/epilog_before.php"); . require($_SERVER["DOCUMENT_ROOT"]. "/bitrix/modules/main/include/epilog_after.php");
- данная страница не принадлежит ни одному сайту
- в то же время она принадлежит какому-либо модулю
- имеет строго определённый административный интерфейс
- все параметры локализации данной страницы зависят от выбранного текущего языка
- на этой странице используется дополнительная проверка прав, задаваемых в настройках соответствующего модуля
- данная страница принадлежит какому-либо сайту
- имеет интерфейс текущего шаблона сайта
- все параметры локализации данной страницы зависят от текущего сайта
- Apache — в файле httpd.conf, параметр DirectoryIndex
- IIS — в свойствах сайта, закладка «Documents» -> «Enable default content page»
- логин
- пароль
- для MS Internet Explorer — «Tools» -> «Internet Options» -> «General» -> «Languages»;
- для Mozilla Firefox — «Инструменты» -> «Настройки» -> «Основное» -> «Языки».
- 4 — чтение
- 2 — запись
- 1 — выполнение
- для Apache — в файле httpd.conf, параметр DocumentRoot;
- для IIS — в свойствах сайта, закладка «Home Directory» -> «Local Path«.
При формировании каждой динамической страницы система создает адрес с соответствующим целочисленным идентификатором. (Например, /bitrix/admin/iblock_element_admin.php?IBLOCK_ID=48&type=help&lang=ru&find_section_section=4972) Это вполне понятно и естественно для разработчиков и программ, но не совсем понятно и удобно для посетителей.
Концепция ЧПУ предполагает максимально лаконичные и интуитивно понятные адреса, которые показывают естественную для человека логическую структуру данных на сервере, а не её программный интерфейс с модулями и параметрами.
Форум
Всем добрый вечер. У меня есть очень животрепещущий для меня на данный момент вопрос.
Каким образом подключение ядра или любых других библиотек Битрикса умудряется сломать самый простой ajax запрос. Если не подключать prolog_before то запрос успешно отрабатывается и возвращает значение, всё отрабатывает корректно. Ошибок в консоли.
Предоставляю код, закомментированные строки это решения предложенные мне интернетом, но так как я здесь, естественно они не сработали (а испытывал я их во всех возможных комбинациях)
Максимум что я нашел, это форумную запись в которой проблема один в один http://www.cyberforum.ru/1c-bitrix/thread2260789.html
Надеюсь на вашу помощь.
ajax.php
function OtdelFormSubmit()< $.ajax(< type: 'POST', url: "ajax.php", data: $("#FORM").serialize(), success: function(data) < /*Код обработки*/ $('#block').html(data['NO']); >, dataType: "json" >) >
define('STOP_STATISTICS', true); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); $APPLICATION->RestartBuffer();
$APPLICATION->RestartBuffer(); echo json_encode($ar); die();
Спасибо тем кто пытался помочь. Разобрались.
Сайт подхватил вирус!
Из за него как раз и не работал вывод. Нашли несколько изменённых файлов, подключаемых ядром, несколько .js которых быть не должно. Удалили, поправили, всё заработало.
Всегда проверяйте целостность ядра bitrix и тестируйте с помощью встроенных инструментов администратора, если что то работало, а потом перестало, без каких либо причин.
Цитата |
---|
Антон Луя написал: Нашли несколько изменённых файлов, подключаемых ядром, несколько .js которых быть не должно. Удалили, поправили, всё заработало. |
еще бы не мешало поискать подозрительные файлы, аля содержащие форму для загрузки файлов.
было не так давно, что вроде бы файлы-вирусы удаляешь, а они появляются снова.
в моем случае было, когда открываешь сайт с мобилы, редиректит на порносайты, потому что в .htaccess добавлялись строки редиректа)
Центр поддержки
Продукты
Управление сайтом
Битрикс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С-Битрикс: Управление сайтом. Политика конфиденциальности
Страница и порядок её выполнения
Страница представляет из себя PHP файл, состоящий из пролога, тела страницы (основной рабочей области) и эпилога:
Страница имеет определённую структуру, свойства и параметры. Она может использовать свои собственные шаблоны.
Порядок выполнения страницы:
№ | Операция | Определяемые константы и переменные | Примечание |
---|---|---|---|
1. Служебная часть пролога (/bitrix/modules/main/include/prolog_before.php) | |||
1.1 | Подключение | Подключаемый файл должен содержать определения переменных для соединения с базой данных, констант для отладки и прав доступа. Файл с настройками ядра D7 подключается при первом запросе конфигурации. | |
1.2 | Соединение с базой данных | $DB | В случае ошибки соединения будет подключен файл . |
1.3 | Подключение | Подключаемый файл может содержать операции, необходимые для выполнения сразу после соединения с БД. | |
1.4 | Определение текущего сайта | $APPLICATION, SITE_ID, SITE_DIR, SITE_SERVER_NAME, SITE_CHARSET, FORMAT_DATE, FORMAT_DATETIME, LANGUAGE_ID, Определяются все классы и функции Главного модуля. | Если к этому моменту определена константа с кодом сайта SITE_ID , то сайт не будет определяться по текущей папке и доменному имени, а все остальные константы будут определены для этого сайта. |
1.5 | Подключение | Может содержать в себе инициализацию обработчиков событий, подключение дополнительных функций — общие для всех сайтов. | |
1.6 | Подключение | Содержит параметры, определения функций для конкретного сайта. | |
1.7 | Открытие сессии | Все сессионные переменные $_SESSION | |
1.8 | Событие OnPageStart | ||
1.9 | Определение пользователя, авторизация пользователя, завершение сеанса, регистрация (в зависимости от параметров в запросе) | $USER | |
1.10 | Определение текущего шаблона сайта | SITE_TEMPLATE_ID | |
1.11 | Событие OnBeforeProlog | ||
1.12 | Проверка прав доступа уровня 1 | В случае если прав недостаточно, то выводится форма авторизации и страница завершает выполнение. | |
1.13 | Начало буфферизации вывода | После начала буферизации можно делать вывод, до установки куков и наоборот, устанавливать куки после вывода в поток. | |
1.14 | Событие OnProlog | ||
2. Визуальная часть пролога (/bitrix/modules/main/include/prolog_after.php) | |||
2.1 | Подключение | ||
3. Тело страницы | |||
4. Визуальная часть эпилога (/bitrix/modules/main/include/epilog_before.php) | |||
4.1 | Подключение | ||
4.2 | Вызов функции CMain::ShowSpreadCookieHTML | Данная функция выводит набор невидимых IFRAME’ов используемых в Технология переноса посетителей | |
5. Служебная часть эпилога (/bitrix/modules/main/include/epilog_after.php) | |||
5.1 | Событие OnEpilog | ||
5.2 | Завершение буферизации страницы | Завершение и вывод в поток буффера инициализированного в п. 1.14 | |
5.3 | Событие OnAfterEpilog | ||
5.4 | Проверка агентов | ||
5.5 | Отправка E-Mail писем | Подробнее о E-Mail письмах можно прочитать в разделе «Почтовая система» | |
5.6 | Завершение соединения с базой данных | Переменная $DB больше недоступна |
Подключить bitrix без подключения шаблона сайта
После подключения prolog_before.php становится доступным стандартный функционал bitrix: подключение модулей, система событий, отправка почтовых сообщений с помощью CEvent и т.д.
Варианты использования
- Консольные скрипты. Выполнение каких-то процессов в фоне, когда подключение шаблона сайта не имеет смысла.
- Ajax скрипты. Например скрипт, который возвращает доступное кол-во товара на сайте, он должен вернуть просто число, подключение шаблона в этом случаи бесмысленно и затруднит получение необходимой информации.
- Отладочные скрипты. Например нужно проверить работу какого-то функционала для которого не важно подключение шаблона сайта.
Пример подключения компонента Ссылка на корзину в ajax файле
IncludeComponent( "bitrix:sale.basket.basket.small", "", Array( "COLUMNS_LIST" => array(0=>"QUANTITY_FORMATED",1=>"SUM",), "COMPONENT_TEMPLATE" => "", "PATH_TO_BASKET" => "/personal/basket/", "PATH_TO_ORDER" => "/personal/order/", "SHOW_DELAY" => "N", "SHOW_NOTAVAIL" => "N", "SHOW_SUBSCRIBE" => "N", "REFRESH" => "Y", "USER_ID" => "" ) ); require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
Файл может вызываться после добавления товара в корзину и обновления информации о количестве товаров в корзине и суммы корзины.
Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Bitrix запись своих настроек в settings.php
Статья о том как разместить свои настройки не создавая велосипеды и костыли, а используя возможности системы.
Bitrix получить путь до зарегистрированного файла
В статье приводится пример того как можно получить путь до зарегистрированного файла по его ID с помощью метода CFile::getPath($fileId). Так же показано где можно получить ID зарегистрированного файла.
CSS простой горизонтальный слайдер
В статье приводится пример кода для создания простого горизонтального слайдера с использованием CSS и небольшим количеством JS кода. Для реализации потребуется всего около 60 строк стилей и js кода.
Bitrix получить путь до компонента
В статье приводится пример кода для получения директории в которой находится файл компонента.
Bitrix подключить класс компонента
В статье приводится пример того как можно подключить только компонент битрикс без подключения его шаблона, чтобы можно было вызвать его метод или получить значения свойств
PHP Удалить лишние нули после запятой
Когда в проекте диапазон чисел от 0,0001 до 1 000 000, удобно автоматически удалять лишнии нули после запятой.