<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=Modules%2Fdevices%2Fdevices_manage_schedule_inc_php</id>
	<title>Modules/devices/devices manage schedule inc php - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://mdminfo.ru/index.php?action=history&amp;feed=atom&amp;title=Modules%2Fdevices%2Fdevices_manage_schedule_inc_php"/>
	<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Modules/devices/devices_manage_schedule_inc_php&amp;action=history"/>
	<updated>2026-06-02T15:16:03Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Modules/devices/devices_manage_schedule_inc_php&amp;diff=1968&amp;oldid=prev</id>
		<title>Elmax: + devices_manage_schedule.inc.php</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Modules/devices/devices_manage_schedule_inc_php&amp;diff=1968&amp;oldid=prev"/>
		<updated>2024-03-30T22:30:24Z</updated>

		<summary type="html">&lt;p&gt;+ devices_manage_schedule.inc.php&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Modules/devices/devices_manage_schedule_inc_php | devices_manage_schedule.inc.php]]&lt;br /&gt;
&lt;br /&gt;
[[Папки и файлы|ᐂ В корневой раздел]]  [[Modules/devices|ᐃ В директорию расположения файла]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Выполняем SQL-запрос для выбора всех устройств, включая их ID и название, и сортируем результат по названию&lt;br /&gt;
$out['ALL_DEVICES'] = SQLSelect(&amp;quot;SELECT ID, TITLE FROM devices ORDER BY TITLE&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Создаем массив дней недели с соответствующими значениями и названиями&lt;br /&gt;
$days = array(&lt;br /&gt;
    // Создаем элемент для воскресенья&lt;br /&gt;
    array('VALUE' =&amp;gt; 0, 'TITLE' =&amp;gt; LANG_WEEK_SUN),&lt;br /&gt;
    // Создаем элемент для понедельника&lt;br /&gt;
    array('VALUE' =&amp;gt; 1, 'TITLE' =&amp;gt; LANG_WEEK_MON),&lt;br /&gt;
    // Создаем элемент для вторника&lt;br /&gt;
    array('VALUE' =&amp;gt; 2, 'TITLE' =&amp;gt; LANG_WEEK_TUE),&lt;br /&gt;
    // Создаем элемент для среды&lt;br /&gt;
    array('VALUE' =&amp;gt; 3, 'TITLE' =&amp;gt; LANG_WEEK_WED),&lt;br /&gt;
    // Создаем элемент для четверга&lt;br /&gt;
    array('VALUE' =&amp;gt; 4, 'TITLE' =&amp;gt; LANG_WEEK_THU),&lt;br /&gt;
    // Создаем элемент для пятницы&lt;br /&gt;
    array('VALUE' =&amp;gt; 5, 'TITLE' =&amp;gt; LANG_WEEK_FRI),&lt;br /&gt;
    // Создаем элемент для субботы&lt;br /&gt;
    array('VALUE' =&amp;gt; 6, 'TITLE' =&amp;gt; LANG_WEEK_SAT),&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Закомментированные строк на гите&lt;br /&gt;
//$point=SQLSelectOne(&amp;quot;SELECT * FROM devices_scheduler_points WHERE ID=&amp;quot;.(int)$point_id);&lt;br /&gt;
//$devices = SQLSelect(&amp;quot;SELECT devices.* FROM devices&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
// Выполняет SQL-запрос для выбора уникальных идентификаторов устройств из таблицы devices_scheduler_points&lt;br /&gt;
$tmp = array_map('current', SQLSelect(&amp;quot;SELECT DEVICE_ID FROM devices_scheduler_points GROUP BY DEVICE_ID&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
// Инициализируем пустой массив для хранения методов типов устройств&lt;br /&gt;
$type_methods = array();&lt;br /&gt;
&lt;br /&gt;
// Проверяем, является ли переменная $tmp массивом и содержит ли она элементы&lt;br /&gt;
if (is_array($tmp) &amp;amp;&amp;amp; count($tmp)) {&lt;br /&gt;
    // Выполняет SQL-запрос для выбора всех устройств, идентификаторы которых присутствуют в массиве $tmp&lt;br /&gt;
    $devices = SQLSelect(&amp;quot;SELECT * FROM devices WHERE ID IN (&amp;quot; . implode(',', $tmp) . &amp;quot;) ORDER BY devices.TITLE&amp;quot;);&lt;br /&gt;
    // Подсчитываем общее количество устройств&lt;br /&gt;
    $total = count($devices);&lt;br /&gt;
    // Начинаем цикл по всем устройствам&lt;br /&gt;
    for ($i = 0; $i &amp;lt; $total; $i++) {&lt;br /&gt;
        // Проверяем, не установлены ли уже методы для данного типа устройства&lt;br /&gt;
        if (!isset($type_methods[$devices[$i]['TYPE']])) {&lt;br /&gt;
            // Вызывает метод getAllMethods с аргументом $devices[$i]['TYPE']&lt;br /&gt;
            $all_methods = $this-&amp;gt;getAllMethods($devices[$i]['TYPE']);&lt;br /&gt;
            // Сохраняем полученные методы в массив&lt;br /&gt;
            $type_methods[$devices[$i]['TYPE']] = $all_methods;&lt;br /&gt;
        }&lt;br /&gt;
        // Выполняет SQL-запрос для выбора всех точек планировщика для устройства с идентификатором $devices[$i]['ID']&lt;br /&gt;
        $points = SQLSelect(&amp;quot;SELECT * FROM devices_scheduler_points WHERE DEVICE_ID=&amp;quot; . (int)$devices[$i]['ID']);&lt;br /&gt;
        // Начинаем цикл по всем точкам планировщика&lt;br /&gt;
        foreach ($points as &amp;amp;$point_item) {&lt;br /&gt;
            // Разбиваем строку дней на массив&lt;br /&gt;
            $point_days = explode(',', $point_item['SET_DAYS']);&lt;br /&gt;
            // Инициализируем пустой массив для хранения названий дней&lt;br /&gt;
            $point_days_title = array();&lt;br /&gt;
            // Начинаем цикл по всем дням недели&lt;br /&gt;
            foreach ($days as $k =&amp;gt; $v) {&lt;br /&gt;
                // Проверяем, присутствует ли день в массиве дней точки&lt;br /&gt;
                if (in_array($v['VALUE'], $point_days)) {&lt;br /&gt;
                    // Если да, добавляем название дня в массив&lt;br /&gt;
                    $point_days_title[] = $v['TITLE'];&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            // Выполняет SQL-запрос для выбора одного элемента из таблицы security_rules&lt;br /&gt;
            $rule = SQLSelectOne(&amp;quot;SELECT ID FROM security_rules WHERE OBJECT_TYPE='spoint' AND OBJECT_ID=&amp;quot; . $point_item['ID']);&lt;br /&gt;
            // Проверяем, существует ли правило безопасности для данной точки&lt;br /&gt;
            if ($rule['ID']) {&lt;br /&gt;
                // Если да, устанавливаем флаг наличия правила&lt;br /&gt;
                $point_item['HAS_RULE'] = 1;&lt;br /&gt;
            }&lt;br /&gt;
            // Проверяем, есть ли описание для связанного метода&lt;br /&gt;
            if (isset($type_methods[$devices[$i]['TYPE']][$point_item['LINKED_METHOD']]['DESCRIPTION'])) {&lt;br /&gt;
                // Если да, заменяем имя метода на его описание&lt;br /&gt;
                $point_item['LINKED_METHOD'] = $type_methods[$devices[$i]['TYPE']][$point_item['LINKED_METHOD']]['DESCRIPTION'];&lt;br /&gt;
            }&lt;br /&gt;
            /*&lt;br /&gt;
            // Закомментированные строки на гите&lt;br /&gt;
            // Начинаем цикл по всем методам для отображения&lt;br /&gt;
            foreach($out['SHOW_METHODS'] as $method) { &lt;br /&gt;
                // Проверяем, совпадает ли имя метода с именем связанного метода&lt;br /&gt;
                if ($method['NAME']==$point_item['LINKED_METHOD']) { &lt;br /&gt;
                    // Если да, заменяем имя метода на его описание&lt;br /&gt;
                    $point_item['LINKED_METHOD']=$method['DESCRIPTION']; &lt;br /&gt;
                    // Прерываем цикл&lt;br /&gt;
                    break; &lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            */&lt;br /&gt;
            // Объединяем названия дней в строку, разделяя их запятыми&lt;br /&gt;
            $point_item['SET_DAYS'] = implode(', ', $point_days_title);&lt;br /&gt;
        }&lt;br /&gt;
        // Сохраняем точки планировщика для текущего устройства&lt;br /&gt;
        $devices[$i]['POINTS'] = $points;&lt;br /&gt;
    }&lt;br /&gt;
    // Сохраняем список устройств в вывод&lt;br /&gt;
    $out['DEVICES'] = $devices;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elmax</name></author>
	</entry>
</feed>