Одной из важных составляющих работы программиста является поиск хороших, правильных названий классам, методам, переменным и многим другим элементам программного кода. При этом мы стараемся подобрать короткое, но емкое название, точно отражающее его суть. В большинстве случаев одного слова для этого недостаточно. Если количество слов в название больше двух, то возникает вопрос - как соединить эти слова в одно и при этом не в ущерб читабельности.

2014-10-18

Как определить имеет ли текущий пользователь доступ к определенной странице (или разделу) сайта на битриксе? Может ли просматривать содержимое этой страницы? Оказалось, что ответить на этот вопрос не так уж просто. Методы для работы со структурой сайта очень плохо освещены в документации битрикса.

Возможно, вы никогда не озадачитесь этим вопросом, поскольку такая задача возникает перед разработчиками не часто. Но, если все-таки случилось и, как и в моем случае, полчаса гугления не дали результата, то вам сюда.

2013-12-05

Практически в каждом веб-приложении используются глобальные ресурсы, к которым должен быть доступ из любой части кода приложения. К таким ресурсами относятся соединение с базой данных, конфигурация, процедуры обработки ошибок и тд. Если вы php программист, то вам, возможно, не раз доводилась слышать, что глобальные переменные это зло. Что же в таком случае можно использовать вместо глобальных переменных?

2013-11-11

Постраничная навигация в битриксе формируется и выводится с помощью компонента bitrix:system.pagenavigation. Этот компонент разработан для использования совместно с другими компонентами, такими как раздел каталога или список новостей, и тесно связан с ними. Поэтому попытки применения компонента постраничной навигации отдельно от других компонентов могут быть связанны с некоторыми трудностями, особенно в условиях отсутствия хорошей документации по этой теме.

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

2013-10-01

Как известно при разработке на Bitrix Framework программист должен сам заботиться о подключении необходимых модулей с помощью метода CModule::IncludeModule. Причем подключать модули необходимо везде, где происходит обращение к api этих модулей. В каждом компоненте, шаблоне, скрипте, функции, методе. Но зачем же делать это вручную, если можно автоматизировать и забыть раз и навсегда.

2013-09-23

В битриксе есть метод CMain::GetFileRecursive, который я часто использую в своих проектах. Вообще в битриксе не так много вещей, которые мне нравятся, и GetFileRecursive один из них. Этакий лучик света в темном царстве.

GetFileRecursive ищет заданный файл в текущем разделе сайта и во всех родительских разделах. Если файла нет в текущем разделе, то метод поднимается на уровень вверх - в родительский раздел - и ищет там. Если и там нет, то поднимается еще выше. И так вплоть до корня сайта. Если файл найден, то возвращается путь до этого файла.

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

С недавних пор этот функционал перестал корректно работать. Если искомый файл находится в текущем разделе, то GetFileRecursive его не видит. Возвращает false. Когда именно это случилось, история умалчивает. Проверить это сложно, поскольку сложно найти более ранние версии битрикса. Обнаружен этот баг был в главном модуле версии 12.5.1.

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

2013-05-05