Кодировки и языковые файлы Всегда выносите русский текст в языковые файлы, иначе в будущем возможны проблемы с кодировками. Например, при установке модуля внутри него смена кодировки происходит только для языковых файлов. Таким образом, устанавливая сайт в utf-8 и оставив русский текст в файле /install/components/пространство имен/имя компонента/templates/.default/template.php вы в итоге получите набор иероглифов. При разработке/тестировании в Windows предварительно снимите флаг скрытости у всех файлов. При копировании файлов, начинающихся с точки (такие файлы считаются скрытыми в Unix подобных ОС) с сетевого диска Windows ставит им флаг «скрытый». При наличии этого флага при установке сайта под Windows файлы не обрабатываются. Перед сборкой архива с дистрибутивом желательно так же предварительно проверить файлы на флаг скрытости. При создании решения проверяйте соответствие кодировки файла .htaccess в вашем решении и в системе. При установке решения может произойти затирание этого файла, созданного системой. В результате этого могут не создаваться инфоблоки. Решения лучше создавать в Windows-1251, как и сам Bitrix Framework. Ядро Bitrix При разработке решения для Bitrix Marketplace не оставляйте в публичной части системные файлы, которые могут перезаписать уже имеющиеся файлы у клиента. К ним относятся: файл urlrewrite.php; папка /upload; любые системные файлы из папки /bitrix, в том числе шаблон .default; Компоненты/гаджеты вне собственного пространства имен. Если есть необходимость все же добавить что-либо в системную папку, то разместите эти файлы отдельно и делайте предварительно проверку на существование. При разработке самостоятельного решения с поддержкой многосайтовости выносите добавляемое в папку /bitrix в отдельную папку и копируйте вручную без перезаписи. Иначе при переносе публичной части при установке второго сайта у вас получится лишний набор файлов в /папка_сайта/bitrix/. При разработке самостоятельного решения не добавляйте никаких файлов в ядро Bitrix Framework напрямую. Если все же необходимо внести дополнительные файлы в ядро (например, свой шаблон бизнес-процесса), то такой файл нужно поместить внутри мастера создания сайта и переносить через копирование. В противном случае при переносе решения на более новую редакцию Bitrix Framework есть вероятность потери добавленных файлов. Инфоблоки, пользователи и свойства Никогда напрямую не используйте ID инфоблока (пользователя, группы, значения свойства типа «список») где-либо, кроме файлов публичной части. В противном случае возможна ситуация, когда компонент/шаблон/метод класса обращается к данным по одному ID, а получает либо совершенно другие данные, либо их полное отсутствие. Возможные варианты решения: Для компонентов и шаблонов передавать ID используемых инфоблоков/пользователей/групп/свойств через параметры вызова (описываются в файле .parameters.php) Для собственных классов передавать необходимые ID инфоблоков/пользователей/групп/свойств либо при создании объекта класса, либо в качестве параметров его методов. Если ID нигде не передается, то определять их по каким-либо признакам (обычно это символьный код (CODE) или внешний код (XML_ID)). Внутри мастера установки проверяйте, что все прямые использования ID инфоблоков (пользователей, групп, значений свойств типа «список») заменены макросами. Макросы имеют вид #имя_макроса# и должны заменяться на этапе установки инфоблоков. Убедитесь, что все макросы заменяются во время установки решения. Для замены можно использовать следующие функции: CWizardUtil::ReplaceMacros(путь_к_файлу, Array("имя_макроса" => значение_для_замены)); WizardServices::ReplaceMacrosRecursive(путь_к_корневой_папке, Array("имя_макроса" =>значение_для_замены)); Многосайтовость Если предполагается возможность установки вторым/N-ным сайтом, то в начале всех абсолютных путей необходимо либо подставлять системную константу SITE_DIR, либо макрос (например, #SITE_DIR#), заменяемый в процессе установки решения.
Компания АКРИТ
Типовые решения "1С-Битрикс": полезные советы
Кодировки и языковые файлы
Всегда выносите русский текст в языковые файлы, иначе в будущем возможны проблемы с кодировками. Например, при установке модуля внутри него смена кодировки происходит только для языковых файлов. Таким образом, устанавливая сайт в utf-8 и оставив русский текст в файле /install/components/пространство имен/имя компонента/templates/.default/template.php вы в итоге получите набор иероглифов.
При разработке/тестировании в Windows предварительно снимите флаг скрытости у всех файлов. При копировании файлов, начинающихся с точки (такие файлы считаются скрытыми в Unix подобных ОС) с сетевого диска Windows ставит им флаг «скрытый». При наличии этого флага при установке сайта под Windows файлы не обрабатываются. Перед сборкой архива с дистрибутивом желательно так же предварительно проверить файлы на флаг скрытости.
При создании решения проверяйте соответствие кодировки файла .htaccess в вашем решении и в системе. При установке решения может произойти затирание этого файла, созданного системой. В результате этого могут не создаваться инфоблоки. Решения лучше создавать в Windows-1251, как и сам Bitrix Framework.
Ядро Bitrix
При разработке решения для Bitrix Marketplace не оставляйте в публичной части системные файлы, которые могут перезаписать уже имеющиеся файлы у клиента. К ним относятся:
файл urlrewrite.php;
папка /upload;
любые системные файлы из папки /bitrix, в том числе шаблон .default;
Компоненты/гаджеты вне собственного пространства имен.
Если есть необходимость все же добавить что-либо в системную папку, то разместите эти файлы отдельно и делайте предварительно проверку на существование.
При разработке самостоятельного решения с поддержкой многосайтовости выносите добавляемое в папку /bitrix в отдельную папку и копируйте вручную без перезаписи. Иначе при переносе публичной части при установке второго сайта у вас получится лишний набор файлов в /папка_сайта/bitrix/.
При разработке самостоятельного решения не добавляйте никаких файлов в ядро Bitrix Framework напрямую. Если все же необходимо внести дополнительные файлы в ядро (например, свой шаблон бизнес-процесса), то такой файл нужно поместить внутри мастера создания сайта и переносить через копирование. В противном случае при переносе решения на более новую редакцию Bitrix Framework есть вероятность потери добавленных файлов.
Инфоблоки, пользователи и свойства
Никогда напрямую не используйте ID инфоблока (пользователя, группы, значения свойства типа «список») где-либо, кроме файлов публичной части. В противном случае возможна ситуация, когда компонент/шаблон/метод класса обращается к данным по одному ID, а получает либо совершенно другие данные, либо их полное отсутствие. Возможные варианты решения:
Для компонентов и шаблонов передавать ID используемых инфоблоков/пользователей/групп/свойств через параметры вызова (описываются в файле .parameters.php)
Для собственных классов передавать необходимые ID инфоблоков/пользователей/групп/свойств либо при создании объекта класса, либо в качестве параметров его методов.
Если ID нигде не передается, то определять их по каким-либо признакам (обычно это символьный код (CODE) или внешний код (XML_ID)).
Внутри мастера установки проверяйте, что все прямые использования ID инфоблоков (пользователей, групп, значений свойств типа «список») заменены макросами. Макросы имеют вид #имя_макроса# и должны заменяться на этапе установки инфоблоков.
Убедитесь, что все макросы заменяются во время установки решения. Для замены можно использовать следующие функции:
CWizardUtil::ReplaceMacros(путь_к_файлу, Array("имя_макроса" => значение_для_замены));
WizardServices::ReplaceMacrosRecursive(путь_к_корневой_папке, Array("имя_макроса" =>значение_для_замены));
Многосайтовость
Если предполагается возможность установки вторым/N-ным сайтом, то в начале всех абсолютных путей необходимо либо подставлять системную константу SITE_DIR, либо макрос (например, #SITE_DIR#), заменяемый в процессе установки решения.