Битрикс подключить файл php

Обновлено: 06.07.2024

Часто нужно сохранить одни и те же данные в массив, но иметь разный индекс у элементов, для экономии места и ресурсов можно сохранять данные по ссылке, нужно помнить что так лучше делать когда данные нужны только для чтения в коде, т.к. при модификации таких массивов появятся трудно уловимые зависомости

Back-end Шпаргалка Битрикс

Подключение скриптов и стилей вне шаблона

Подключение скриптов и стилей в шаблоне

Подключение файлов

Компонент “включаемая область”

Стандартная проверка в подключаемых файлах

Переменные в шаблоне компонента (стандартное начало template.php)

Данные текущей страницы

Примеры применения констант

Вывод заголовка окна браузера

Вывод подключенных скриптов и стилей в head

Вывод панели администрирования в пользовательской части

Определение принадлежности к странице или разделу

Изменение размеров изображения

Получение объектов приложения, контекста и запроса

Подключение модулей

Композит

Голосование компонента “ЗА” композит

Выделение части кода для догрузки композитом

В шаблоне

В других частях сайта

Способ 1 - красивый

Способ 2 - статичный, для помещения в него компонентов и отложенных функций

Формирование ссылки для логина

Редирект

Проверка наличия группы у пользователя

AJAX в отдельном файле

Очистка буфера вывода

Если уровней вложенности буферов много, то может не сработать

Гарантированная очистка всех уровней вложенности буферов вывода

AJAX в странице или компоненте

Генерация пароля

Создание своей отложенной функции

Буферизация и вывод разметки в нужном месте

Помещение контента в буфер, для последующего его вывода:

Вывод буферизированной области в нужном месте ShowViewContent:

Передача данных формы

Стандартная проверка соответствия сессии

В разметке формы

В коде валидации формы проверяем

Добавление данных в кэш при кастомизации стандартных компонентов

В файлах result_modifier.php можно получить объект компонента и добавить нужные данные в кэш для последующего использования. подробнее тут

Перенос скриптов в нижнюю часть страницы

В админке битрикса есть настройка, отвечающая за перенос всего JS в нижнюю часть страницы, активируется она по пути:

Настройки -> Настройки продукта -> Настройки модулей -> Главный модуль -> Переместить весь Javascript в конец страницы

Если активировать эту настройку, то Битрикс сформирует страницу, вырежет ВСЕ вхождения тега script и вставит их в нижнюю часть страницы. Такой подход устраивает не всегда, яркий пример - подключение google tag manager и прочих скриптов, которые должны быть в верхней части страницы.

Что бы настройка битрикса не меняла положение скрипта в коде нужно добавить атрибут data-skip-moving :

Свои СТИЛИ в визуальном редакторе 1С Битрикс

По немного приучаемся работать с документацией битрикс, в уроке разберем такой файл как init.php , его назначение, где он находиться, какие задачи выполняет и как с ним работать.

Определение:
init.php - необязательный файл в рамках структуры файлов Bitrix Framework. Он автоматически подключается в прологе при загрузке страницы.

Назначение файла init.php

Сам по себе файл не обязательный, особенность его в том, что он подключается в начале каждой страницы сайта и служит для инициализации обработчиков событий или подключение дополнительных функций.

init.php подключение в прологе

То есть, в нем мы можем размещать код, который необходим для выполнения на каждой странице сайта.

Последовательность очереди подключения можно посмотреть в документации по битрикс, переходим на сайт документации для разработчиков, воспользуемся поиском, введем «страница подключение» и тут видим, первое идет подключение пролога, а за тем наш init.php .

Документация 1С Битрикс

Если в системе несколько сайтов, то делается отдельная директория с ID сайтом, где для каждого сайта можем создать индивидуальный init.php .

Расположение, создание файла init.php

Сам файл init.php располагается в структуре сайта, в папке bitrix > php_interface > init.php и как упоминал выше он не обязательный, а следовательно, может вовсе там отсутствовать.

Давайте его создадим через административную часть, жмем кнопку добавить, выбираем из списка «Добавить файл». Перед нами появилась форма по созданию нового файла, укажем редактировать через PHP , прописываем название нашего файла init.php , из области редактирования все удаляем.

Для примера, определим в нем свою константу:

Нажмем кнопку Применить.

Затем перейдем на сайт, откроем тестовую страничку и в режиме кода вызываем константу <? echo STRING; ?> которую определяли в init , сохраняемся.

Получаем вывод значении dwstv. То есть, таким образом можно работать как при использовании стандартных функций php, а также писать свой код или задействовать API битрикс.

Функция распечатки массива

Для примера создадим свою функцию, которая будет принтовать переданный в неё массив в удобном оформлении для разработчика.

Открываем init.php на редактирование, вставляем свой код функции, и разберем, как она работает.

Функция принимает один обязательный параметр, $var в который передаем массив, и два не обязательных параметра, $die и $all .

В моем случае я в начале проверяю пользователя на его ID , то есть только принтую данный массив себе, если желаете вывести массив для администраторов тогда можно воспользоваться методом $USER->IsAdmin() который позволяет распечатать массив для группы администраторов.

Что бы ознакомиться с методом $USER->IsAdmin() более подробно, перейдите в документацию 1С - битрикс, в поиске пропишите IsAdmin , вот у нас есть его описание, мы видим что данный метод делает и какие его параметры использования.

Возвращаемся к нашей функции, пишем оператор (ИЛИ), где является данный параметр $all равный true . Это сделано для возможности распечатать массив без авторизации.

Ниже принтовка в оформлении, а затем условие на завершение всех операций после отработки скрипта. Этим параметром пользуюсь, когда необходимо.

Сохранимся и перейдем на тестовую страничку. Пропишем простенький массив:

И распринтуем его с помощью нашей функции <?PR($arr)?>

Сохранимся, как видим, появилась распечатка массива.

распечатка массива

Если мы сейчас разлогинимся то массив нам не отобразится.

Давайте теперь повторно авторизуемся и добавим в нашу функцию дополнительный параметру $all какое ни будь значение, и теперь этот массив будут видеть все пользователи в том числе, не авторизованные.

Тоже самое если нам нужно завершить все операции, тогда для параметра $die введем значение и сохранимся.

Как видите, с правой стороны исчез правый сайтбар, снизу пропал footer .

Отключение footer

Таким образом, работает данный скрипт, кто желает скачать его код, ссылка в верху под видео.

Как правильно писать код в init.php

Часто встречаются, что некоторые разработчики в файл init.php начинают беспорядочно заносить свои код, его становится много, выглядит он не структурировано, и превращается это все в свалку, где самому разработчику сложно разобраться в дальнейшем.

Захламленность init.php

Битрикс в этом случае рекомендует разбивать код логическими группами, по отдельным файлам и классам, подключая их через директиву include .

Давайте прислушаемся к рекомендации, и весь код подключим отдельно.

Для этого откроем init.php , скопируем весь наш код который до этого вносили Переходим в папку include , если у Вас ее нет, создайте, в ней размещаем файл functions-dump.php и перенесем полностью нашу функцию с init.php , сохранимся.

Создаем отдельный файл под функцию распечатки

В init.php в место функции подключаем файл functions-dump.php , для этого прописываем условие на проверку file_exists .

С помощью $_SERVER["DOCUMENT_ROOT"] подключаемся к корню нашего сайта, далее пишем путь до файла и если он присутствует, при помощи директивы require_once подключаем его к init.php

Сохраняемся, и мы получили вот такую ошибку.

Как избежать такого рода ошибок

Я специально допустил синтаксическую ошибку, что бы Вам показать, как при редактировании файла init.php можно получить ошибку, которая полностью отрубит сайт, как визуальную, так и его административную части.

Как избежать ошибок в файле init.php

Как можно работать через Веб

Если у Вас доступ для работы с сайтом через веб, тогда наиболее простой способ, нужно содержание файла init.php вынести в отдельный файл и подключить его другим способом в init .

Давайте покажу, как это все делается. В первую очередь исправлю ошибку.

Допустим, у нас не было ошибки, но мы знаем о том, что такое может случиться. Перейдем, в наш init.php , переносим код из файла. Далее пройдем в нашу директорию include создаем тут файл initswitch.php сохраняемся.

Открываем на редактирование init.php , и в нем прописываем следующее условие подключение.

Давайте сохранимся и посмотрим, все ли у нас работает. Для этого перейдем на тестовую страницу, и видим, что массив у нас отображается, все работает, замечательно.

Теперь все подключать будем при помощи initswitch.php . И так, перейдем в него и повторим нашу ошибку, открываем initswitch.php , допускаем синтаксическую ошибку, и сохраняемся.

Сайт отрубился, как административная часть, так и визуальная его часть не доступна.

Теперь что бы его реанимировать, нам нужно в адресной строке прописать параметр, тем самым производим отключение файла initswitch.php , а параметр &noinit=N как вы догадались, наоборот его включает.

Тут же не выходя, открываем адресную строку и прописываем параметр &noinit=Y , мы попали в админку а дальше дело техники.

Параметр для включения файла init.php

И так, придерживаясь данных правил:

  • не пишите напрямую код в init.php ;
  • используйте отдельный файл для хранения функционала;
  • и все файлы в init.php подключайте через require_once() .

Кому понравилось материал обязательно поделитесь им в социальных сетях, статью подготовил Горелов Денис.

Есть несколько способов подключения файлов стилей и скриптов, при верстке шаблонов в системе управления 1С-Битрикс. Если вы получаете готовую верстку в HTML/CSS, то имеет смысл грамотно подключить файлы стилей, js и мета теги при интеграции шаблона в Битрикс

Для чего подключать скрипты и js через API

Это нужно для правильной оптимизации сайта. CMS Битрикс, умеет самостоятельно объединять и сжимать подключаемые файлы стилей и js файлы. Если вы подключите их по старинке, простыми вставками вида

Однако тогда вы не сможете перенести оптимизацию сайта на плечи системы управления. На много правильнее, подключать эти файлы с помощью API Битрикс

До выхода нового ядра D7

По условиям обратной совместимости, использовать можно оба метода. Лично я предпочитаю подключать по старинке, без использования D7- но оба способа работают правильно и принципиальной разницы не имеют

Подключив внешние файлы правильно, через ядро Битрикс, вы сможете максимально оптимизировать создаваемый сайт. Объединить и сжать css файлы

Далее в настройках Битрикс: Настройки- Настройки Модулей -Главный модуль : включаем объединение и сжатие JS файлов, объединение css файлов.


Самое главное, вы сможете подключать необходимые файлы в "объединение" по необходимости, в зависимости от требуемого функционала страницы или компонента. То есть, по факту у вас вегда будет один файл css и один js, но их состав и соотвественно объем, будет разный в зависимости от текущей страницы или раздела сайта

Подключение стилей и js в шаблонах компонентов

Если нужно подключить стили и скрипты, в нутри шаблонов компонентов. Например, вы используете слайдер, на основе списка новостей: у него может быть много js и css и не целесообразно, подключать его кишочки, глобально ко всему сайту. Просто поспользуйтесь такой конструкцией

Оптимизируйте. Ни кто не любит тормозящие сайты, тем более это просто и не требует больших трудо затрат

Наш модуль после установки добавляет на страницы сайта кнопку плавной прокрутки страницы вверх. Какие файлы и папки могут и должны быть, можно изучить в соответствующем разделе документации Битрикс. Модуль разместим в директории local/modules и создадим такую файловую структуру:

Как видите, внутри local/modules/scrollup у нас:

  • install — набор скриптов для установки и удаления модуля;
  • lang — набор языковых файлов модуля;
  • lib — набор файлов, в которых реализуется логика решения;
  • include.php — файл, подключаемый при вызове модуля в коде;
  • options.php — страница настроек, подключаемая в административной части.

Рассмотрим подробнее папку install :

  • assets — содержит JavaScript и CSS кнопки, которые будут подключаться в пользовательской части;
  • index.php — файл, в котором содержится описание модуля и реализуется его установка и удаление;
  • step.php и unstep.php — соответственно шаги установки и удаления, их может быть несколько;
  • version.php — файл содержит версию и время обновления нашего модуля.

Теперь нам нужно написать класс, в котором будет реализована установка и удаление модуля. Имя класса должно совпадать с директорией модуля и являться наследником от CModule . Метод doInstall() вызывается при установке модуля из панели управления, метод doUninstall() — при деинсталляции модуля. Метод doInstall() подключает файл step.php , а метод doUninstall() — файл unstep.php

Теперь в панели управления на странице «Настройки • Настройки продукта • Модули» мы видим наш модуль:


И можем установить его:


Создадим страницу настроек для модуля. Через панель управления контент менеджер сможет:

  • Включать/выключать модуль;
  • Подключать библиотеку jQuery, если она еще не подключена;
  • Изменять ширину/высоту/радиус и цвет кнопки;
  • Менять положение кнопки и скорость анимации.



Когда мы описывали код установки модуля, то привязались к событию OnBeforeEndBufferContent и указали метод appendJavaScriptAndCSS() класса Main как обработчик. Теперь настало время его написать:

Осталось только написать js-код для прокрутки страницы наверх и задать css-стили для кнопки:

Читайте также: