Modules/devices/devices structure links inc php: различия между версиями
Материал из MajorDoMo инфо
Elmax (обсуждение | вклад) (заготовка) |
Elmax (обсуждение | вклад) (+ файл devices_structure_links.inc.php) |
||
Строка 4: | Строка 4: | ||
<pre> | <pre> | ||
<?php | |||
// Инициализация массива device_links для хранения ссылок между различными устройствами | |||
$this->device_links=array( | |||
// Ссылка между устройствами движения, кнопками, открывающими/закрывающими устройствами и камерами | |||
'SMotions,SButtons,SOpenClose,SCameras'=>array( | |||
// Ссылка "switch_timer" для управления таймером | |||
array( | |||
// Название ссылки | |||
'LINK_NAME'=>'switch_timer', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SWITCH_TIMER_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SControllers', | |||
// Параметры ссылки | |||
'PARAMS'=>array( | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_delay', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER_PARAM_ACTION_DELAY, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'num' | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'darktime', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER_PARAM_DARKTIME, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Опция "нет" | |||
array('TITLE'=>LANG_NO,'VALUE'=>'0'), | |||
// Опция "да" | |||
array('TITLE'=>LANG_YES,'VALUE'=>'1') | |||
) | |||
) | |||
) | |||
), | |||
// Ссылка "switch_it" для управления устройствами | |||
array( | |||
// Название ссылки | |||
'LINK_NAME'=>'switch_it', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SWITCH_IT_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SControllers,SOpenable', | |||
// Параметры ссылки | |||
'PARAMS'=>array( | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_type', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_ACTION_TYPE, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Опция "включить" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_ON,'VALUE'=>'turnon'), | |||
// Опция "выключить" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_OFF,'VALUE'=>'turnoff'), | |||
// Опция "переключить" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_SWITCH,'VALUE'=>'switch'), | |||
// Опция "открыть" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_OPEN,'VALUE'=>'open'), | |||
// Опция "закрыть" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_CLOSE,'VALUE'=>'close'), | |||
) | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_delay', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT_PARAM_ACTION_DELAY, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'num' | |||
) | |||
) | |||
), | |||
// Ссылка "set_color" для управления цветом устройств | |||
array( | |||
// Название ссылки | |||
'LINK_NAME'=>'set_color', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SET_COLOR, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SET_COLOR_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SRGB', | |||
// Параметры ссылки | |||
'PARAMS'=>array( | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_color', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SET_COLOR_PARAM_ACTION_COLOR, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'color' | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_delay', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT_PARAM_ACTION_DELAY, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'num' | |||
) | |||
) | |||
) | |||
), | |||
// Ссылка между устройствами термостатов | |||
'SThermostats'=>array( | |||
array( | |||
// Название ссылки | |||
'LINK_NAME'=>'thermostat_switch', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_THERMOSTAT_SWITCH, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_THERMOSTAT_SWITCH_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SControllers', | |||
// Параметры ссылки | |||
'PARAMS'=>array( | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'invert_status', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_THERMOSTAT_INVERT, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Опция "нет" | |||
array('TITLE'=>LANG_NO,'VALUE'=>'0'), | |||
// Опция "да" | |||
array('TITLE'=>LANG_YES,'VALUE'=>'1') | |||
) | |||
) | |||
) | |||
) | |||
), | |||
// Ссылка между датчиками | |||
'SSensors'=>array( | |||
array( | |||
// Название ссылки | |||
'LINK_NAME'=>'sensor_switch', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_SWITCH_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SControllers,SOpenable', | |||
// Параметры ссылки | |||
'PARAMS'=>array( | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'source_value_type', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Текущее значение | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_CURRENT,'VALUE'=>''), | |||
// Минимальное значение | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_MIN,'VALUE'=>'min'), | |||
// Среднее значение | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_AVG,'VALUE'=>'avg'), | |||
// Максимальное значение | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_MAX,'VALUE'=>'max'), | |||
) | |||
), | |||
array( | |||
// Условие видимости параметра | |||
'PARAM_VISIBLE_CONDITION'=>array( | |||
// Проверяемый параметр | |||
'CHECK_PARAM_NAME'=>'source_value_type', | |||
// Условие проверки | |||
'CHECK_PARAM_CONDITION'=>'!=', | |||
// Значение для проверки | |||
'CHECK_PARAM_VALUE'=>'', | |||
), | |||
// Название параметра | |||
'PARAM_NAME'=>'source_value_time', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_FOR_PERIOD, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'duration' | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'condition_type', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Условие "выше" | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION_ABOVE,'VALUE'=>'above'), | |||
// Условие "ниже" | |||
array('TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION_BELOW,'VALUE'=>'below') | |||
) | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'condition_value', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_VALUE, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'num' | |||
), | |||
array( | |||
// Название параметра | |||
'PARAM_NAME'=>'action_type', | |||
// Заголовок параметра | |||
'PARAM_TITLE'=>LANG_DEVICES_LINK_ACTION_TYPE, | |||
// Тип параметра | |||
'PARAM_TYPE'=>'select', | |||
// Опции параметра | |||
'PARAM_OPTIONS'=>array( | |||
// Действие "включить" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_ON,'VALUE'=>'turnon'), | |||
// Действие "выключить" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_OFF,'VALUE'=>'turnoff'), | |||
// Действие "открыть" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_OPEN,'VALUE'=>'open'), | |||
// Действие "закрыть" | |||
array('TITLE'=>LANG_DEVICES_LINK_TYPE_CLOSE,'VALUE'=>'close'), | |||
) | |||
) | |||
) | |||
), | |||
array ( | |||
// Название ссылки | |||
'LINK_NAME'=>'sensor_pass', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_PASS, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_PASS_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SThermostats', | |||
) | |||
), | |||
/* | |||
Этот фрагмент кода завершает определение массива device_links, | |||
который содержит ссылки между различными типами устройств. | |||
Каждая ссылка определена массивом параметров, включая название ссылки, | |||
заголовок, описание и целевой класс устройства. | |||
В данном случае, ссылка open_sensor_pass предназначена для устройств, | |||
которые могут открываться и закрываться, | |||
и позволяет управлять их состоянием на основе данных с датчиков. | |||
*/ | |||
// Ссылка между устройствами, которые могут открываться и закрываться | |||
'SOpenClose' =>array( | |||
array ( | |||
// Название ссылки | |||
'LINK_NAME'=>'open_sensor_pass', | |||
// Заголовок ссылки | |||
'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_PASS, | |||
// Описание ссылки | |||
'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_PASS_DESCRIPTION, | |||
// Класс целевого устройства | |||
'TARGET_CLASS'=>'SOpenable', | |||
) | |||
) | |||
); | |||
/* | |||
Этот участок кода проверяет наличие директории addons и, | |||
если она существует, загружает все файлы, которые соответствуют шаблону _links.php. | |||
Это позволяет расширять функциональность системы за счет дополнительных ссылок, | |||
определенных в этих файлах. | |||
*/ | |||
// Проверяем наличие директории addons и загружаем дополнительные ссылки | |||
// Путь к директории addons | |||
$addons_dir=dirname(__FILE__).'/addons'; | |||
// Если директория существует | |||
if (is_dir($addons_dir)) { | |||
// Получаем список файлов в директории | |||
$addon_files=scandir($addons_dir); | |||
// Перебираем каждый файл | |||
foreach($addon_files as $file) { | |||
// Если файл соответствует шаблону "_links.php" | |||
if (preg_match('/\_links\.php$/',$file)) { | |||
// Загружаем файл с дополнительными ссылками | |||
require($addons_dir.'/'.$file); | |||
} | |||
} | |||
} | |||
</pre> | </pre> |
Текущая версия от 13:47, 6 апреля 2024
ᐂ В корневой раздел ᐃ В директорию расположения файла
<?php // Инициализация массива device_links для хранения ссылок между различными устройствами $this->device_links=array( // Ссылка между устройствами движения, кнопками, открывающими/закрывающими устройствами и камерами 'SMotions,SButtons,SOpenClose,SCameras'=>array( // Ссылка "switch_timer" для управления таймером array( // Название ссылки 'LINK_NAME'=>'switch_timer', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SWITCH_TIMER_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SControllers', // Параметры ссылки 'PARAMS'=>array( array( // Название параметра 'PARAM_NAME'=>'action_delay', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER_PARAM_ACTION_DELAY, // Тип параметра 'PARAM_TYPE'=>'num' ), array( // Название параметра 'PARAM_NAME'=>'darktime', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_TIMER_PARAM_DARKTIME, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Опция "нет" array('TITLE'=>LANG_NO,'VALUE'=>'0'), // Опция "да" array('TITLE'=>LANG_YES,'VALUE'=>'1') ) ) ) ), // Ссылка "switch_it" для управления устройствами array( // Название ссылки 'LINK_NAME'=>'switch_it', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SWITCH_IT_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SControllers,SOpenable', // Параметры ссылки 'PARAMS'=>array( array( // Название параметра 'PARAM_NAME'=>'action_type', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_ACTION_TYPE, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Опция "включить" array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_ON,'VALUE'=>'turnon'), // Опция "выключить" array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_OFF,'VALUE'=>'turnoff'), // Опция "переключить" array('TITLE'=>LANG_DEVICES_LINK_TYPE_SWITCH,'VALUE'=>'switch'), // Опция "открыть" array('TITLE'=>LANG_DEVICES_LINK_TYPE_OPEN,'VALUE'=>'open'), // Опция "закрыть" array('TITLE'=>LANG_DEVICES_LINK_TYPE_CLOSE,'VALUE'=>'close'), ) ), array( // Название параметра 'PARAM_NAME'=>'action_delay', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT_PARAM_ACTION_DELAY, // Тип параметра 'PARAM_TYPE'=>'num' ) ) ), // Ссылка "set_color" для управления цветом устройств array( // Название ссылки 'LINK_NAME'=>'set_color', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SET_COLOR, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SET_COLOR_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SRGB', // Параметры ссылки 'PARAMS'=>array( array( // Название параметра 'PARAM_NAME'=>'action_color', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SET_COLOR_PARAM_ACTION_COLOR, // Тип параметра 'PARAM_TYPE'=>'color' ), array( // Название параметра 'PARAM_NAME'=>'action_delay', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SWITCH_IT_PARAM_ACTION_DELAY, // Тип параметра 'PARAM_TYPE'=>'num' ) ) ) ), // Ссылка между устройствами термостатов 'SThermostats'=>array( array( // Название ссылки 'LINK_NAME'=>'thermostat_switch', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_THERMOSTAT_SWITCH, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_THERMOSTAT_SWITCH_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SControllers', // Параметры ссылки 'PARAMS'=>array( array( // Название параметра 'PARAM_NAME'=>'invert_status', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_THERMOSTAT_INVERT, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Опция "нет" array('TITLE'=>LANG_NO,'VALUE'=>'0'), // Опция "да" array('TITLE'=>LANG_YES,'VALUE'=>'1') ) ) ) ) ), // Ссылка между датчиками 'SSensors'=>array( array( // Название ссылки 'LINK_NAME'=>'sensor_switch', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_SWITCH_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SControllers,SOpenable', // Параметры ссылки 'PARAMS'=>array( array( // Название параметра 'PARAM_NAME'=>'source_value_type', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Текущее значение array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_CURRENT,'VALUE'=>''), // Минимальное значение array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_MIN,'VALUE'=>'min'), // Среднее значение array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_AVG,'VALUE'=>'avg'), // Максимальное значение array('TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_TYPE_MAX,'VALUE'=>'max'), ) ), array( // Условие видимости параметра 'PARAM_VISIBLE_CONDITION'=>array( // Проверяемый параметр 'CHECK_PARAM_NAME'=>'source_value_type', // Условие проверки 'CHECK_PARAM_CONDITION'=>'!=', // Значение для проверки 'CHECK_PARAM_VALUE'=>'', ), // Название параметра 'PARAM_NAME'=>'source_value_time', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_VALUE_FOR_PERIOD, // Тип параметра 'PARAM_TYPE'=>'duration' ), array( // Название параметра 'PARAM_NAME'=>'condition_type', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Условие "выше" array('TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION_ABOVE,'VALUE'=>'above'), // Условие "ниже" array('TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_CONDITION_BELOW,'VALUE'=>'below') ) ), array( // Название параметра 'PARAM_NAME'=>'condition_value', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_SENSOR_SWITCH_PARAM_VALUE, // Тип параметра 'PARAM_TYPE'=>'num' ), array( // Название параметра 'PARAM_NAME'=>'action_type', // Заголовок параметра 'PARAM_TITLE'=>LANG_DEVICES_LINK_ACTION_TYPE, // Тип параметра 'PARAM_TYPE'=>'select', // Опции параметра 'PARAM_OPTIONS'=>array( // Действие "включить" array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_ON,'VALUE'=>'turnon'), // Действие "выключить" array('TITLE'=>LANG_DEVICES_LINK_TYPE_TURN_OFF,'VALUE'=>'turnoff'), // Действие "открыть" array('TITLE'=>LANG_DEVICES_LINK_TYPE_OPEN,'VALUE'=>'open'), // Действие "закрыть" array('TITLE'=>LANG_DEVICES_LINK_TYPE_CLOSE,'VALUE'=>'close'), ) ) ) ), array ( // Название ссылки 'LINK_NAME'=>'sensor_pass', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_PASS, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_PASS_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SThermostats', ) ), /* Этот фрагмент кода завершает определение массива device_links, который содержит ссылки между различными типами устройств. Каждая ссылка определена массивом параметров, включая название ссылки, заголовок, описание и целевой класс устройства. В данном случае, ссылка open_sensor_pass предназначена для устройств, которые могут открываться и закрываться, и позволяет управлять их состоянием на основе данных с датчиков. */ // Ссылка между устройствами, которые могут открываться и закрываться 'SOpenClose' =>array( array ( // Название ссылки 'LINK_NAME'=>'open_sensor_pass', // Заголовок ссылки 'LINK_TITLE'=>LANG_DEVICES_LINK_SENSOR_PASS, // Описание ссылки 'LINK_DESCRIPTION'=>LANG_DEVICES_LINK_SENSOR_PASS_DESCRIPTION, // Класс целевого устройства 'TARGET_CLASS'=>'SOpenable', ) ) ); /* Этот участок кода проверяет наличие директории addons и, если она существует, загружает все файлы, которые соответствуют шаблону _links.php. Это позволяет расширять функциональность системы за счет дополнительных ссылок, определенных в этих файлах. */ // Проверяем наличие директории addons и загружаем дополнительные ссылки // Путь к директории addons $addons_dir=dirname(__FILE__).'/addons'; // Если директория существует if (is_dir($addons_dir)) { // Получаем список файлов в директории $addon_files=scandir($addons_dir); // Перебираем каждый файл foreach($addon_files as $file) { // Если файл соответствует шаблону "_links.php" if (preg_match('/\_links\.php$/',$file)) { // Загружаем файл с дополнительными ссылками require($addons_dir.'/'.$file); } } }