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

Работа с 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 академических часов).

Если нет интернета

Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
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С-Битрикс.

Читайте также:  как работать с windows server 2019 ltsc version 1809

Комментарии к урокам

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).

Если нет интернета

Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox

iPhone:
FBReader
CoolReader
iBook
Bookmate

Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome

Как проходить учебный курс?

Источник

Обработка адресов

Понятие обработки адресов

Обработка адресов (UrlRewrite) применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указаному адресу. Например, можно задать настройки обработки адресов, чтобы скрипт в файле /fld/c.php, отвечающий по адресу

отвечал также по адресу

Адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес физически существует, то будет вызван скрипт по этому адресу. Система обработки адресов запущена в этом случае не будет.

Правила обработки

Правила обработки адресов настраиваются отдельно для каждого сайта и хранятся в корне сайта в файле urlrewrite.php. Файл содержит массив $arUrlRewrite, каждая запись которого является правилом обработки адреса. Файл urlrewrite.php имеет следующий вид:

Каждое правило должно содержать уникальное в рамках сайта условие выполнения правила. Условие выполнения записывается в ключ «CONDITION» массива и является шаблоном Perl-совместимого регулярного выражения. Например, условие:

указывает, что данное правило должно применяться для всех адресов, которые начинаются с подстрок вида:

Правило может содержать адрес физически существующего скрипта, который будет подключен при выполнении условия. Этот адрес записывается в ключ «PATH«. Например, если в системе обработки адресов зарегистрировано правило:

и пользователь запросил страницу:

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

Правило может содержать правило замены, которое записывается в ключ «RULE«. Если правило замены установлено, то адрес реально существующего подключаемого скрипта формируется заменой регулярным варажением условия выполнения (шаблона выражения) на конкатенацию физического пути (ключ «PATH«) и правила замены (ключ «RULE«). Например, если в системе обработки адресов зарегистрировано правило:

и пользователем запрошена страница:

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

и будет подключен скрипт:

Если в системе обработки адресов зарегистрировано правило:

и пользователем запрошена страница:

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

и будет подключен скрипт:

Правило может содержать имя компонента, который создал это правило. Это имя записывается в ключ «ID«. При автоматическом пересоздании файла правил urlrewrite.php с помощью средств административной части сайта пересоздаются только правила, у которых заполнен ключ «ID«. Эти правила пересоздаются на основании анализа физических файлов в папке сайта. Правила с пустым ключом «ID» при автоматическом пересоздании файла правил не изменяются.

Читайте также:  sural hotel адрес отеля

Подключение системы обработки адресов

Перед началом использования система обработки адресов должна быть подключена на сайте. Для этого необходимо:

Примеры правил и условий для модуля mod_rewrite

Поддержка компонентов 2.0

При добавлении на страницу компонента с поддержкой ЧПУ («человеко-понятный URL«) (если файл сохраняется с помощью API), автоматически создаётся правило обработки адреса. Если страница создаётся не с помощью API, а, например, записывается через FTP, то необходимо выполнить пересоздание правил (кнопка на панели инструментов на странице настройки правил обработки адресов).

Поддержка ЧПУ включается в компоненте с помощью предопределённого входного параметра SEF_MODE. При этом в предопределённом входном параметре SEF_FOLDER устанавливается папка, в которой работает компонент. Папка может быть виртуальной (т.е. физически может не существовать). При сохранении страницы с размещённым на ней компонентом, переключенным в режим ЧПУ (параметр SEF_MODE равен Y), через стандартный интерфейс правило обработки адресов создаётся следующим образом: в ключ условия применения шаблона («CONDITION«) записывается регулярное выражение, полученое из папки в параметре SEF_FOLDER, в ключ «ID» записывается имя компонента, в ключ пути («PATH«) записывается физический адрес страницы.

Например, пусть компонент «bitrix:catalog» размещён на странице /fld/c.php и его подключение выглядит следующим образом:

Тогда при сохранении страницы /fld/c.php в системе обработки адресов добавится запись:

Таким образом, при запросе адресов, начинающихся со строки /mycatalog/, будет подключаться скрипт /fld/c.php. В этом скрипте запрошенный адрес может быть проанализирован и выполнены требуемые действия.

Смотрите также

Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

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

Цитата
Борис Байзулаев пишет:
Адрес физического файла, подключенного в результате обработки адреса записывается в
Код
$_SERVER[«REAL_FILE_PATH»]

Упрощенный вариант правила, решающий проблему, описанную Денисом Мальцевым в предыдущем комментарии.

Одна интересная особенность, которую надо учитывать.

Допустим вам надо сделать преобразование такого вида, чтобы при открытии страницы /news/445.php происходило преобразование в /news/detail.php?ID=445
Можно использовать такое правило

Оно даже будет работать, но ровно до тех пор пока в строке не появятся дополнительные параметры. Например пользователь перешел с внешнего ресурса и в URL была добавлена метка для Google Analitics, запрошенный URL получился примерно такой /news/445.php?utm_source=google. Вместо текста новости вы увидите сообщение «Элемент не найден», потому что в результате преобразования получился такой адрес /news/detail.php?ID=445?utm_source=google.

Ниже приведен код, решающий эту проблему:

Задача : Выполнить 301 редирект с одного домена на другой, чтобы любой адрес домена olddomain вёл на тот же адрес, но в домене newdomain.

Источник

Образовательный портал