Работа с URL-адресами в Bitrix D7
Работа с URL-адресами в Bitrix является одним из важных моментов в работе всей системы. До появления ядра версии D7 работа с URL адресами производилась посредством классов CMain::GetCurPageParam и DeleteParam. На нашем сайте ранее публиковались примеры формирования URL с передачей многомерных массивов, а также произвольных URL посредством использования GetCurPageParam.
В D7 для работы с ссылками появился аналог этим классам – Uri. Работа с классом в некоторых моментах стала сложнее, т.к. каждый аспект работы класса стал более самостоятельным, реализованным в отдельных методах.
Класс Uri в Bitrix D7
Примеры работы c классом Uri
В представлении класса Uri в системе Bitrix каждый URL является объектом, с параметрами которого класс и работает посредством отдельных методов. Поэтому в перед тем как работать с URL необходимо инициализировать объект класса Uri.
Создание объекта из URL строки
Создать объект класса Uri мы можем из обычной строки URL, после чего уже работать с этим объектом.
Создание объекта из текущего URL
Довольно часто приходится работать с параметрами URL текущей страницы. Для работы с URL текущей страницы аналогично необходимо создать объект класса Uri. Получить текущий URL, и создать объект класса для работы с ним можно таким образом:
После того как создан объект класса Uri, мы можем работать с методами класса. Так к примеру, мы можем получить составляющие части сайта.
Методы класса Uri
Таблица доступных методов в данный момент времени:
| Метод | Описание | С версии |
|---|---|---|
| addParams | Метод добавляет параметры в запрос или заменяет существующие параметры. | 15.5.10 |
| deleteParams | Метод удаляет параметры из запроса. | 15.5.10 |
| getFragment | Метод возвращает фрагмент. | 14.0.15 |
| getHost | Метод возвращает хост. | 14.0.15 |
| getLocator | Метод возвращает URI без фрагмента. | 15.5.10 |
| getPass | Метод возвращает пароль. | 14.0.15 |
| getPath | Метод возвращает путь. | 14.0.15 |
| getPathQuery | Метод возвращает путь с запросом. | 14.0.15 |
| getPort | Метод возвращает номер порта. | 14.0.15 |
| getQuery | Метод возвращает запрос | 14.0.15 |
| getScheme | Метод возвращает схему. | 14.0.15 |
| getUri | Метод возвращает URI с фрагментом, если он имеется. | 15.5.10 |
| getUser | Метод возвращает пользователя. | 14.0.15 |
| setHost | Метод устанавливает хост | 14.0.15 |
| setPath | Метод устанавливает путь. | 15.5.10 |
| setUser | Метод устанавливает пользователя. | 16.5.7 |
| setPass | Метод устанавливает пароль. | 16.5.7 |
Изменение параметров в URL
Методы класса Uri позволяют так же добавлять параметры в существующий URL, а также менять различные составляющие URL-адреса.
Таким образом, можно довольно гибко оперировать данными URL в различных участках кода. К примеру, это может потребоваться тогда, когда необходимо сформировать URL-адреса для списка ссылок в шаблоне компонента. Класс будет работать везде где подключается ядро, Bitrix-а, поэтому его можно использовать как в компонентах, так и в отдельных скриптах-обработчиках, к примеру, в ajax.
Если папка то применяем. в Битрикс
Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для дирректории. Для этого в Битрикс можно воспользоваться параметром CMain::GetCurPage. А как расскажу на примере.
Итак согласно документации Битрикс:
string CMain::GetCurPage(bool get_index_page=null)
Возвращает путь к текущей странице относительно корня без параметров.
Как нам это может пригодится:
Задача применить класс для li.company в разделе /company/ при этом на любой другой для этогоже li должен применяться li.nocompany
Элементарщина в общем.
Добавлено:
GetCurDir позволяет применить условие для каталога, если нужно применить для каталога и всех внутренних подкаталогов, можно воспользоваться if(CSite::InDir():
Пример из реальной жизни: на моем сайте часть разделов (портфолио, форум, дизайн) имеет одноколоночную верстку, дабы не плодить отдельные шаблоны, я просто указал в каких разделах не выводить aside
GetCurDir()==’/designes/ready-made-html-layouts/’)
|| ($APPLICATION->GetCurDir()==’/designes/adaptive-html/’)
|| ($APPLICATION->GetCurDir()==’/portfolio/’)
|| ($APPLICATION->GetCurDir()==’/forum/’)
):?>
По хорошему, злоупотреблять этим не стоит, так как после вас мало кто разберется в верстке если условий будет очень много. Приходилось сталкиваться с реализацией шаблона который проще переверстать нежели разобраться как эта хрень вообще работает. (накипело)
Определяем текущий уровень раздела в каталоге
Если нужно назначить некое условие для заранее заданного уровня подраздела в каталоге Битрикс, можно воспользоваться вот таким условием
Должно произойти вот это
По просьбе читателя добавляю: Отсчет разделов начинается с 0 а не с 1
Битрикс узнать адрес страницы
Современные сайты наполняются содержанием с помощью специального программного обеспечения: CMS.
Для кого этот курс?
Курс Контент-менеджер адресован тем, кто работает с содержанием сайта: наполнение, изменение текста, загрузка и размещение картинок и так далее.
Практика и тесты
При изучении курса рекомендуется повторять описываемые действия на демонстрационной версии сайта, установленной локально или в Виртуальной лаборатории.
После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов со страницы Моё обучение скачайте сертификат об успешном прохождении курса в формате PDF.
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 2 дня (16 академических часов).
Если нет интернета

Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
Чтобы отключить подобное отношение к файлу необходимо:
Отсутствие кнопки Разблокировать возможно в двух случаях:
Как проходить учебный курс?
Битрикс узнать адрес страницы
Курс предназначен для базовой подготовки администраторов сайтов, созданных на «1С-Битрикс: Управление сайтом». Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.
Если вы добросовестно изучите курс, то научитесь:
Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих «1С-Битрикс: Управление сайтом» или «Битрикс24 в коробке».
Начальные требования
Необходимый минимум знаний для изучения курса:
Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.
Тесты и сертификат
Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.
Комментарии к урокам
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).
Если нет интернета

Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
Как проходить учебный курс?
Битрикс узнать адрес страницы
Современные сайты наполняются содержанием с помощью специального программного обеспечения: CMS.
Для кого этот курс?
Курс Контент-менеджер адресован тем, кто работает с содержанием сайта: наполнение, изменение текста, загрузка и размещение картинок и так далее.
Практика и тесты
При изучении курса рекомендуется повторять описываемые действия на демонстрационной версии сайта, установленной локально или в Виртуальной лаборатории.
После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов со страницы Моё обучение скачайте сертификат об успешном прохождении курса в формате PDF.
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 2 дня (16 академических часов).
Если нет интернета

Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
Чтобы отключить подобное отношение к файлу необходимо:
Отсутствие кнопки Разблокировать возможно в двух случаях:




