- Битрикс. Штатные средства отладки
- Вывод содержимого переменной на экран
- Запись содержимого переменной в файл
- Замер времени выполнения кода
- Отладка SQL-запросов
- Битрикс. Включаемая область
- Пример создания включаемой области
- Bitrix вывести содержимое файла
- Пример
- Пользовательские комментарии
- Вывести множественное свойство типа файл с названием и весом файла в Битрикс
- Исходные данные для вывода файлов
- Выводим свойство файл через API Битрикс- получая все данные о файлах
- Несколько полезных моментов
- Вставка включаемой области
- Описание main.include
- Параметры
- Пример вызова
- Пользовательские комментарии
Битрикс. Штатные средства отладки
В новом ядре D7 появились достаточно удобные встроенные возможности диагностики выполнения кода. Они представлены в пространстве имён Bitrix\Main\Diag .
Вывод содержимого переменной на экран
Фактически это надстройка для функции var_dump() :
Если вторым аргументом передать строку с названием переменной, то оно будет выведено перед содержимым переменной:
Если третий аргумент установлен в true , то метод вернет содержимое переменной вместо вывода на экран.
Запись содержимого переменной в файл
Данные методы позволяют записать содержимое переменной в лог-файл. Путь к файлу относительно корня сайта передается третьим аргументом $fileName , по-умолчанию методы пишут в файл __bx_log.log в корне сервера.
Метод dumpToFile() пишет в файл результат работы метода Debug::dump() , т.е. в формате функции var_dump() . Метод writeToFile() пишет либо просто значение переменной, либо результат функции print_r() , если переменная является массивом.
Замер времени выполнения кода
- start — время ( unix timestamp с микросекундами) первого вызова startTimeLabel ;
- time — время между startTimeLabel и endTimeLabel в секундах. Если было несколько замеров с одним названием, то время суммируется.
Получение текущей метки времени:
Получение стэка вызова функций:
Отладка SQL-запросов
В ядре D7 для отслеживания SQL-запросов используется так называемый SQL-трекер. При использовании трекера при каждом запросе к БД в трекер записывается запрос и время начала и окончания.
После вызова startTracker() и до вызова stopTracker() все запросы будут отслеживаться. Каждый запрос представлен объектом класса Bitrix\Main\Diag\SqlTrackerQuery , коллекцию которых можно получить так:
Чтобы очистить данные в трекере и начать новое отслеживание, нужно вызвать startTracker() с аргументом true :
Пример отслеживания запросов при получении элементов инфоблока:
Источник
Битрикс. Включаемая область
Компонент располагается в шаблоне дизайна сайта и определяет место расположения включаемых областей страниц и разделов. Также компонент может выводить содержимое произвольного файла (например, информацию об авторских правах, название компании и т.д.).
В визуальном редакторе компонент расположен по пути: Служебные • Включаемые области • Вставка включаемой области.
В файловой системе компонент расположен: bitrix/components/bitrix/include . Пример вызова:
AREA_FILE_SHOW — Показывать включаемую область. Возможные значения:
- sect : показывать для раздела, область будет являться включаемой для всего раздела;
- page : показывать для страницы, область будет являться включаемой только для текущей страницы;
- file : показывать информацию из файла. Если компонент расположить в шаблоне дизайна сайта, то информация из файла будет выводиться на всем сайте. Установка параметра доступна только пользователю с правами edit_php .
PATH — Путь к файлу области. Поле доступно, если выбрано «Показывать включаемую область из файла». Задается полный путь от корня сайта к файлу с информацией, которую надо вывести в этой части сайта.
AREA_FILE_SUFFIX — Суффикс имени файла включаемой области. Поле предназначено для указания суффикса, который будет добавляться к именам файлов включаемых областей. Страницы с таким суффиксом будут восприниматься как включаемые области.
AREA_FILE_RECURSIVE [Y|N] — Рекурсивное подключение включаемых областей разделов. Настройка доступна при отмеченной области «Показывать включаемую область» ( AREA_FILE_SHOW ) в значение для раздела ( sect ). При отмеченной опции включаемые области разделов будут подключаться рекурсивно, т.е. если в папке более низкого уровня есть своя включаемая область, то она будет показана. Если же текущий раздел не имеет своей включаемой области, то рекурсивно до корня сайта будут проверяться все разделы до самого верхнего и будет выведена первая встретившаяся включаемая область.
EDIT_TEMPLATE — Шаблон области по умолчанию. Доступны все шаблоны страниц, созданные в системе. Они располагаются в разделе
В данном поле можно указать любой другой файл в системе, указав полный путь к файлу-шаблону.
Пример создания включаемой области
Нужно добавить возможность изменения логотипа для контент-менеджера сайта. Включаем режим правки в правом верхнем углу общедоступной части сайта. Создаем тестовую страницу, чтобы не сломать случайно во время работы рабочую страницу сайта. Для этой страницы выбираем «Изменить страницу» и далее «В визуальном редакторе». Справа выбираем компонент «Служебные • Включаемые области • Вставить область» и перетаскиваем в рабочую область редактора.
В настройках компонента выбираем «Показывать включаемую область из файла» и задаем путь к файлу области /include/logo.php . Нажимаем «Сохранить» и получаем фрагмент кода вставки компонента. Нам только он и нужен, копируем фрагмент в буфер, а дальше жмем «Отменить» и «Выйти без сохранения».
Открываем файл шаблона сайта /local/templates/имя-шаблона/header.php на редактирование и заменяем html-код логотипа
на код вызова компонента
Теперь в режиме правки при наведении указателя мыши на логотип будет появляться подсказка «Изменить область». Кликаем и переходим к редактированию включаемой области. В визуальном редакторе загружаем файл логотипа в медиа библиотеку, выбираем его же для вставки в визуальный редактор, указываем дополнительные параметры: CSS-класс img-responsive и ссылку на главную страницу.
В результате получим html-код:
Собственно, это и будет содержимое файла /include/logo.php .
Неправильно захламлять корневую директорию сервера, поэтому перенес папку /include/ в папку шаблона по умолчанию .default и переименовал в include_area (следуя рекомендациям Битрикс). А вызов компонента заменил на:
Источник
Bitrix вывести содержимое файла
File — класс для работы с файлами.
Метод | Описание | С версии |
---|---|---|
close | Метод закрывает файл | 15.0.15 |
getSize | Метод возвращает размер файла. | 14.5.1 |
open | Метод открывает файл и возвращает указатель файла. | |
seek | Метод ищет указатель файла от начала | 15.0.15 |
deleteFile | Метод удаляет файл | |
getFileContents | Метод возвращает содержимое файла в виде одной строки. | |
isFileExists | Метод определяет существует ли файл. | |
putFileContents | Метод записывает данные в файл. | 15.0.15 |
Пример
Информация о файле:
Действия над файлами:
У некоторых методов есть статические варианты:
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
Вывести множественное свойство типа файл с названием и весом файла в Битрикс
Как красиво вывести множественное свойство типа файл в инфоблоке 1С-Битрикс. С показом оригинального названия файла, его транслитированной версии, размера файла в килобайтах и, само собой, ссылкой на скачивание.
Исходные данные для вывода файлов
Итак, в инфоблоке каталога сайта имеем стандартное, множественное свойство «типа файл» с кодом «FILES».
Если мы его выведем, штатным способом, через вывод свойств- как оно задумано в Битрикс изначально. Выглядеть это будет не казисто и не интересно
Абсолютно не интересно и самое главное не информативно. В моем случае, в данное свойство загружаются документы. Причем они в разных форматах и разного размера. Пользователь должен видеть и название документа и его размер с форматом. Например вот так:
Выводим свойство файл через API Битрикс- получая все данные о файлах
Все достаточно просто, так как множественные свойства это обычные массивы. Мы можем получить все данные о каждом файле, просто зная код свойства, в моем случае «FILES». Выглядеть foreach будет следующим образом.
Расскоментировав строку
// echo »;
Вы сможете увидеть все данные о каждом файле, доступные для вывода. По мимо основных, там есть и дата загрузки и тип файла.
В принципе и все. Конкретно в моем случае, в примере выше, результат вывода выглядет следующим образом:
Несколько полезных моментов
Байты в килобаты (размер файла), я привратил, обычной php функцией округления в большую сторону round. Предварительно приведя байты в килобаты. просто разделив $arProperty[‘FILE_SIZE’] на 1024 (смотри в коде выше).
Иконки для разных типов файлов, назначил через CSS — тут простая стилизация. Зная расширение файла, а точнее расширенеие на которое заканчивается ссылка, просто прописал background для каждой разновидности ссылки. Вот так:
Источник
Вставка включаемой области
Компонент располагается в шаблоне дизайна сайта и определяет место расположения включаемых областей страниц и разделов.
Описание main.include
Компонент может выводить содержимое произвольного файла (например, информацию об авторских правах, название компании и т.д.). Настройки компонента позволяют определить суффикс имени файла включаемой области, указать режим редактирования включаемой области по умолчанию, шаблон области по умолчанию. Компонент является стандартным и входит в дистрибутив модуля.
В визуальном редакторе компонент расположен по пути: Служебные > Включаемые области > Вставка включаемой области.
Компонент относится к Главному модулю.
Параметры
Поле | Параметр | Описание |
Параметры компонента | ||
---|---|---|
Показывать включаемую область | AREA_FILE_SHOW | Возможные значения:
|
Путь к файлу области | PATH | Поле доступно, если выбрано Показывать включаемую область из файла. Задается полный путь от корня сайта к файлу с информацией, которую надо вывести в этой части сайта. |
Суффикс имени файла включаемой области | AREA_FILE_SUFFIX | Поле предназначено для указания суффикса, который будет добавляться к именам файлов включаемых областей. Страницы с таким суффиксом будут восприниматься как включаемые области. |
Рекурсивное подключение включаемых областей разделов | AREA_FILE_RECURSIVE | [Y|N] Настройка доступна при отмеченной области Показывать включаемую область (AREA_FILE_SHOW) в значение для раздела (sect). При отмеченной опции включаемые области разделов будут подключаться рекурсивно, т.е. если в папке более низкого уровня есть своя включаемая область, то она будет показана. Если же текущий раздел не имеет своей включаемой области, то рекурсивно до корня сайта будут проверяться все разделы до самого верхнего и будет выведена первая встретившаяся включаемая область. |
Шаблон области по умолчанию | EDIT_TEMPLATE | Доступны все шаблоны страниц, созданные в системе. Они располагаются в разделе /bitrix/templates/.default/page_templates/. В данном поле можно указать любой другой файл в системе, указав полный путь к файлу-шаблону. |
Пример вызова
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник