Новый элемент меню checkbox

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

krepton85
Сообщения: 57
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Новый элемент меню checkbox

Сообщение krepton85 » Сб янв 26, 2019 3:21 pm

Не хвотает данного элемента для меню, мне нужно отметить галочками несколько вариантов (например выбрать дни недели), добавьте кто-нибудь в MD этот элемент меню.
lts
Сообщения: 21
Зарегистрирован: Ср янв 31, 2018 6:23 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Новый элемент меню checkbox

Сообщение lts » Пн янв 28, 2019 10:34 am

а в чем проблема использовать элементы меню Switch, дергая выключатель,включать тот или иной день недели?
krepton85
Сообщения: 57
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Новый элемент меню checkbox

Сообщение krepton85 » Пн янв 28, 2019 11:09 am

lts писал(а):
Пн янв 28, 2019 10:34 am
а в чем проблема использовать элементы меню Switch, дергая выключатель,включать тот или иной день недели?
И как по вашему я смогу переключателем выбрать например 3 дня недели?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Новый элемент меню checkbox

Сообщение Chainik » Пн янв 28, 2019 11:29 am

krepton85 писал(а):
Пн янв 28, 2019 11:09 am
...
И как по вашему я смогу переключателем выбрать например 3 дня недели?
Если я правильно понял мысль ув.lts, в вашем случае должно быть, как минимум, 7 выключателей. Каждый выключатель устанавливает свойство для своего дня недели (0/1). Допустим, "понедельник", "среда" и "воскресенье" включены.
Тогда в коде будет проверка 2-х условий ("включен" ли соответствующий день недели и равен ли текущий день недели "включенному"):

Код: Выделить всё

$day_num=(int)date('w');
if (gg('Объект.Понедельник') == "1" && $day_num == "1") {
//Какие-то действия
}
if (gg('Объект.Среда') == "1" && $day_num == "3") {
//Какие-то действия
}
if (gg('Объект.Воскресенье') == "1" && $day_num == "0") {
//Какие-то действия
}
krepton85
Сообщения: 57
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Новый элемент меню checkbox

Сообщение krepton85 » Пн янв 28, 2019 12:05 pm

Chainik писал(а):
Пн янв 28, 2019 11:29 am
krepton85 писал(а):
Пн янв 28, 2019 11:09 am
...
И как по вашему я смогу переключателем выбрать например 3 дня недели?
Если я правильно понял мысль ув.lts, в вашем случае должно быть, как минимум, 7 выключателей. Каждый выключатель устанавливает свойство для своего дня недели (0/1). Допустим, "понедельник", "среда" и "воскресенье" включены.
Тогда в коде будет проверка 2-х условий ("включен" ли соответствующий день недели и равен ли текущий день недели "включенному"):

Код: Выделить всё

$day_num=(int)date('w');
if (gg('Объект.Понедельник') == "1" && $day_num == "1") {
//Какие-то действия
}
if (gg('Объект.Среда') == "1" && $day_num == "3") {
//Какие-то действия
}
if (gg('Объект.Воскресенье') == "1" && $day_num == "0") {
//Какие-то действия
}
А , уже понял, но это не красиво будет. 7 выключателей занимают массу места в меню. Если мне нужно 3 таких будильника для каждой розетки делать.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Новый элемент меню checkbox

Сообщение Chainik » Пн янв 28, 2019 12:10 pm

krepton85 писал(а):
Пн янв 28, 2019 12:05 pm
...
А , уже понял, но это не красиво будет. 7 выключателей занимают массу места в меню. Если мне нужно 3 таких будильника для каждой розетки делать.
Тогда можете делать наподобие того, как здесь (https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641). Но это несколько сложнее, т.к. вам надо будет использовать не стандартный выключатель, а свой html-элемент. Каждый день недели также будет иметь 2 состояния, и, соответственно, 2 иконки.
krepton85
Сообщения: 57
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Новый элемент меню checkbox

Сообщение krepton85 » Пн янв 28, 2019 2:54 pm

На официальном сайте этого интерфейса на котором собрано меню уже имеется поддержка элемента checkbox просто Сергей забыл добавить поддержку в MD. Веб интерфейс написать не сложно, я уже пробовал выбирать элемент html и там в коде создовал checkbox, но это нужно делать какую то кнопку "сохранить " что бы веб форма отправилась на сервер, на сервере создать php файлик который будет принимать и обробатывать web форму. Вобщем у Сергея это выйдет лучше всех, да и с обновлением проблем не было б.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Новый элемент меню checkbox

Сообщение Chainik » Пн янв 28, 2019 3:24 pm

Можно поступить проще:

Код: Выделить всё

<style type="text/css">
.gorizontalno {
display: inline-block
} 
</style>

<legend>Расписание Розетки_1</legend>

<div class="gorizontalno">
<div style='display:%Розетка_1.Понедельник|"none;block"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_выбран.png">Пн</div>
<div style='display:%Розетка_1.Понедельник|"block;none"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_не_выбран.png">Пн</div>
</div>

<div class="gorizontalno">
<div style='display:%Розетка_1.Вторник|"none;block"%' onClick='callMethod("%Объект.Метод_Вт");'><img src="\cms\scenes\Вт_выбран.png">Вт</div>
<div style='display:%Розетка_1.Вторник|"block;none"%' onClick='callMethod("%Объект.Метод_Вт");'><img src="\cms\scenes\Вт_не_выбран.png">Вт</div>
</div>
и т.д, вплоть до воскресенья.

В Объект.Методах у вас будет простейший код для изменения свойства соответствующего объекта на противоположное (было "0", стало -- "1" и наоборот). Т.е., например, "Объект.Метод_Пн" меняет свойство "Розетка_1.Понедельник".
Ширину иконок сделайте где-нибудь 24-26 пикселей, чтобы все 7 штук уместились в одной строке меню, либо подкорректируйте прямо в блоке <div>:

Код: Выделить всё

<div style='display:%Розетка_1.Понедельник|"none;block"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_выбран.png" width="24">Пн</div>
Последний раз редактировалось Chainik Сб фев 02, 2019 7:44 pm, всего редактировалось 1 раз.
krepton85
Сообщения: 57
Зарегистрирован: Вс окт 28, 2018 11:04 pm
Благодарил (а): 7 раз
Поблагодарили: 2 раза

Re: Новый элемент меню checkbox

Сообщение krepton85 » Пн янв 28, 2019 5:36 pm

Chainik писал(а):
Пн янв 28, 2019 3:24 pm
Можно поступить проще:

Код: Выделить всё

<style type="text/css">
.gorizontalno {
display: inline-block
} 
</style>

<legend>Расписание Розетки_1</legend>

<div class="gorizontalno">
<div style='display:%Розетка_1.Понедельник|"none;block"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_выбран.png">Пн</div>
<div style='display:%Розетка_1.Понедельник|"block;none"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_не_выбран.png">Пн</div>

<div style='display:%Розетка_1.Вторник|"none;block"%' onClick='callMethod("%Объект.Метод_Вт");'><img src="\cms\scenes\Вт_выбран.png">Вт</div>
<div style='display:%Розетка_1.Вторник|"block;none"%' onClick='callMethod("%Объект.Метод_Вт");'><img src="\cms\scenes\Вт_не_выбран.png">Вт</div>
</div>
и т.д, вплоть до воскресенья.

В Объект.Методах у вас будет простейший код для изменения свойства соответствующего объекта на противоположное (было "0", стало -- "1" и наоборот). Т.е., например, "Объект.Метод_Пн" меняет свойство "Розетка_1.Понедельник".
Ширину иконок сделайте где-нибудь 24-26 пикселей, чтобы все 7 штук уместились в одной строке меню, либо подкорректируйте прямо в блоке <div>:

Код: Выделить всё

<div style='display:%Розетка_1.Понедельник|"none;block"%' onClick='callMethod("%Объект.Метод_Пн");'><img src="\cms\scenes\Пн_выбран.png" width="24">Пн</div>
Да, спасибо, наверное так и сделаю, но на выходных, слишком много времени займет, в фотошопе поработать. Нужно думаю на официальном сайте с этим интерфейсом зайти, в эмуляторе накидать кнопки, а затем заскринить их, дабы сохранить стиль меню. :)
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Новый элемент меню checkbox

Сообщение Chainik » Пн янв 28, 2019 5:41 pm

krepton85 писал(а):
Пн янв 28, 2019 5:36 pm
...а затем заскринить их, дабы сохранить стиль меню. :)
А зачем "скринить"? Берете любой графический редактор, рисуете "квадрат Малевича" любого цвета размером 32х32 пикселя. Гордо пишите по центру "Пн". И сохраняете. Затем сохраняете повторно, только в оттенках серого (типа "не выделен").
И две иконки из 14 уже готовы.
Ответить