Мне нужно получить указанные настройки в скрипте и хотелось бы разобраться, как искать такой незадокументированный код.
В Bitrix24 версии D7 для получения настроек компании, таких как расписание работы, можно использовать API `\Bitrix\Main\Config\Option`. Расписание работы обычно хранится в опциях, доступных через метод `getOption`. Вот пример того, как вы можете получить расписание работы компании в PHP-скрипте для Bitrix24: ```php use Bitrix\Main\Config\Option; $workSchedule = Option::get('main', 'work_time_schedule', ''); // Преобразуем строку расписания, если необходимо if ($workSchedule) { $workSchedule = unserialize($workSchedule); } print_r($workSchedule); ``` В этом коде сначала подключается пространство имен `Bitrix\Main\Config\Option`, после чего производится запрос к опции, в которой хранится расписание работы. Результат будет сериализованным массивом, который вам нужно будет десериализовать с помощью функции `unserialize()`. ### Поиск незадокументированного кода Если вы хотите разобраться, как находить такие настройки или методы, которые не задокументированы: 1. **Исследуйте исходный код**: Поскольку Bitrix24 - это коммерческий продукт, его исходный код доступен. Откройте папки и файлы модулей в директории `bitrix/modules/` и ищите нужные вам классы и методы. 2. **Используйте IDE**: Если у вас установлен PHPStorm или другая IDE с поддержкой PHP, вы можете использовать функцию "поиск по проекту", чтобы находить классы и методы по их названиям. 3. **Чтение документации**: Хотя некоторые вещи могут не быть должным образом документированы, вы все равно можете разбираться в официальной документации Bitrix, а также в форумах и сообществах. 4. **Сообщество**: Форумы Bitrix, Stack Overflow и другие сообщества могут быть полезны для поиска информации о незадокументированном функционале. Обратитесь к сообществу разработчиков, если возникают трудности. 5. **Отладка**: Используйте `var_dump()` или `print_r()` для вывода информации, чтобы понять, какие данные хранятся в массиве и где они могут быть использованы. Это поможет вам экспериментировать и понимать структуру данных. Следуя этим рекомендациям, вы сможете более эффективно находить информацию о незадокументированном коде и использовать его в своих проектах.
Это конечно ни разу не "D7", но свою задачу решает.
\Bitrix\Main\Loader::includeModule('calendar'); $settings = \CCalendar::GetSettings(); var_dump($settings); /* array(25) { ["work_time_start"]=> string(1) "9" ["work_time_end"]=> string(2) "19" ["year_holidays"]=> string(46) "1.01,2.01,7.01,23.02,8.03,1.05,9.05,12.06,4.11" ["year_workdays"]=> string(5) "31.12" ["week_holidays"]=> array(2) { [0]=> string(2) "SA" [1]=> string(2) "SU" } ["week_start"]=> string(2) "MO" ["user_name_template"]=> string(18) "#NAME# #LAST_NAME#" ["sync_by_push"]=> bool(false) ["user_show_login"]=> bool(true) ["path_to_user"]=> string(33) "/company/personal/user/#user_id#/" ["path_to_user_calendar"]=> string(42) "/company/personal/user/#user_id#/calendar/" ["path_to_group"]=> string(29) "/workgroups/group/#group_id#/" ["path_to_group_calendar"]=> string(38) "/workgroups/group/#group_id#/calendar/" ["path_to_vr"]=> string(0) "" ["path_to_rm"]=> string(0) "" ["rm_iblock_type"]=> string(0) "" ["rm_iblock_id"]=> string(0) "" ["dep_manager_sub"]=> bool(true) ["denied_superpose_types"]=> array(0) { } ["pathes_for_sites"]=> bool(true) ["pathes"]=> array(0) { } ["forum_id"]=> string(1) "8" ["rm_for_sites"]=> bool(true) ["path_to_type_company_calendar"]=> string(0) "" ["path_to_type_location"]=> string(0) "" } */
Можете конечно сами нырнуть внутрь и переписать с
COption::GetOptionString('calendar', 'work_time_start', 9)
на
\Bitrix\Main\Config\Option::get('calendar', 'work_time_start', 9);
Но смысла не особо