Еще один баг от меня (надеюсь, их всё же заметят).
Создал шаблон, в котором template.master является вложенным, т.е. тоже имеет свой Master. При этом сайт с таким шаблоном работает нормально за исключением того, что после авторизации нельзя перейти на вкладки "Редактирование" и "Разработка" - выдается System.NullReferenceException внутри Bitrix.UI.BXComponentPanel.OnPreRender.
Отладка с рефлектором показали, что данная ошибка происходит из-за того, что в классе BXComponentPanel не проинициализирована переменная mToolBar. Переменная mToolBar инициализируется в методе OnInit того же класса. Проблема же заключается в первой строчке метода OnInit:
Контрол Requisite у меня находится не на "мастере", а на "мастере мастера". Поэтому я предлагаю для нахождения контрола Requisite рекурсивно пробегаться по всем "мастерам".
===
P.S. И вообще было бы очень здорово, что если я указал "мастер" для template.master в шаблоне сайта, то еще бы и шаблоны компонентов подхватывались бы из обоих шаблонов сайтов (чтобы не приходилось их копировать или делать глобальными). Тогда бы можно было бы легко создавать унаследованные шаблоны, что, по-моему, довольно полезно.
Создал шаблон, в котором template.master является вложенным, т.е. тоже имеет свой Master. При этом сайт с таким шаблоном работает нормально за исключением того, что после авторизации нельзя перейти на вкладки "Редактирование" и "Разработка" - выдается System.NullReferenceException внутри Bitrix.UI.BXComponentPanel.OnPreRender.
Отладка с рефлектором показали, что данная ошибка происходит из-за того, что в классе BXComponentPanel не проинициализирована переменная mToolBar. Переменная mToolBar инициализируется в методе OnInit того же класса. Проблема же заключается в первой строчке метода OnInit:
Код |
---|
this.templateRequisite = this.Page.Master.FindControl("Requisite") as TemplateRequisite; |
Контрол Requisite у меня находится не на "мастере", а на "мастере мастера". Поэтому я предлагаю для нахождения контрола Requisite рекурсивно пробегаться по всем "мастерам".
===
P.S. И вообще было бы очень здорово, что если я указал "мастер" для template.master в шаблоне сайта, то еще бы и шаблоны компонентов подхватывались бы из обоих шаблонов сайтов (чтобы не приходилось их копировать или делать глобальными). Тогда бы можно было бы легко создавать унаследованные шаблоны, что, по-моему, довольно полезно.