Имя сайта в тексте страниц – как избежать проблем в 1С-Битрикс
Иногда встречается задача на статических страницах сайта указать адрес сайта. Обычно эту задачу решают контент-менеджеры при наполнении, и действуют, что называется «в лоб». Т.е. прямо в тексте создают конструкцию типа http://site_name.ru или www.site.com. Так же часто доменное имя сайта возникает на статических страницах в случае возникновения необходимости создания ссылок на другие разделы сайта из текста.
Во втором случае найти доменное имя становится ещё более сложным, а порой и невозможным невооружённым глазом, поскольку скрывается оно внутри ссылки:
<a href=”http://www.site.org”>текст_ссылки</a>
А эта конструкция в свою очередь зачастую оказывается обёрнутой различными стилями, серьёзно мешающими обнаружению ссылок как в визуальном редакторе (а большинство контент-менеджеров предпочитают пользоваться подобным средством упрощения работы), так и в тексте страницы.
Разработчики так же нередко встречаются с такой проблемой, однако обычно это сопряжено с разработкой нескольких схожих типовых сайтов, или нескольких ресурсов для одной организации, когда содержимое страниц схоже.
Как решать данную проблему?
Относительная адресация страниц решит проблему ссылок!
Большинство систем управления контентом (в т.ч. 1С-Битрикс) позволяют использовать относительную адресацию на страницах вместо абсолютной. В частности это позволяет решить описанную выше проблему следующим образом:
<a href="/about/delivery.php" >доставкой</a>
В случае, если необходимо создать ссылку на корневой раздел нам поможет следующая конструкция:
<a href="/ " >Сайт</a>
Помимо ссылок аналогичным образом следует поступать с адресами для картинок.
Пример правильно описанного фона таблицы:
<table background="/images/TableBG.jpg">
Пример правильно описанной картинки:
<img src="/upload/medialibrary/2bf/2bf2d3587c3cdcc0d3a8ce15a775dbab.png"/>
Обратите внимание! Мы не прописываем никаких параметров кроме адреса изображения в этих примерах! За примерами возможных параметров обратитесь к пособию по HTML.
Отлично, теперь все изображения и ссылки имеют относительные пути. Что дальше?
Переменная с именем сайта на 1С-Битрикс!
То, что я сейчас опишу в некоторой мере крамола. Так делать неправильно. Но иногда можно и нужно.
|
Суть заключается в том, что согласно идеологии 1С-Битрикс считается неправильным совершать прямые обращения к базе данных из кода страницы и минимизировать php код в теле, стараясь по максимуму использовать встроенное API. Так уменьшается риск появления ошибок и уязвимостей, поскольку код CMS уже проверен тысячами разработчиков и десятками тысяч реально работающих проектов. К тому же, так вы остаётесь в рамках общепринятого стандарта, и вашим коллегам будет проще принять у вас сайт. |
Однако иногда имя сайта всё же необходимо написать в тексте страницы. Например, для того, чтобы объяснить пользователю, где он находится и как сюда вновь попасть. Причин может быть масса. Важно, что при смене доменного имени или переносе проекта (а так же при заимствовании файлов одного проекта для работы над другим) перенесётся и это неверно указанное доменное имя! Опечатка будет вводить пользователей в заблуждение, а некоторые и вовсе решат, что сайт сделан слишком безответственно и от его посещения следует отказаться.
Для решения этой проблемы следует использовать константу API 1С-Битрикс SITE_SERVER_NAME, вызов которой производится следующим образом в тексте страницы (это относится только в страницам с расширением php, поскольку на статических .html страницах по умолчанию выполнение PHP кода невозможно!):
<?=SITE_SERVER_NAME?>
|
Хинт Для того, чтобы каждый раз не обращаться к данному руководству и не искать в интернете, вы можете оформить часто используемые куски код в виде снипетов. Например очень удобно таким образом хранить на сайте специальные таблички и рамки для оформления текста на статических страницах. |
Будьте максимально аккуратны с подобными переменными и константами!
Это очень удобных инструмент для больших сайтов, но старайтесь не слишком злоупотреблять им, вполне возможно, что для наведения порядка на 10 статических страницах вашего сайта просто достаточно грамотного контент-менеджера…
И конечно не забывайте, что имя сайта задаётся как в настройках конкретного сайта (Настройки – Настройки продукта – Сайты – Список сайтов), так и в настройках главного модуля 1С-Битрикс. Будьте осторожны с редактированием этих полей, поскольку это повлияет и на другие части сайта! Лучше, если подобные манипуляции будет осуществлять опытный администратор 1С-Битрикс.






