Новый элемент меню checkbox
Модератор: immortal
-
- Сообщения: 57
- Зарегистрирован: Вс окт 28, 2018 11:04 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Новый элемент меню checkbox
Не хвотает данного элемента для меню, мне нужно отметить галочками несколько вариантов (например выбрать дни недели), добавьте кто-нибудь в MD этот элемент меню.
Re: Новый элемент меню checkbox
а в чем проблема использовать элементы меню Switch, дергая выключатель,включать тот или иной день недели?
-
- Сообщения: 57
- Зарегистрирован: Вс окт 28, 2018 11:04 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новый элемент меню checkbox
И как по вашему я смогу переключателем выбрать например 3 дня недели?
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Новый элемент меню checkbox
Если я правильно понял мысль ув.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") {
//Какие-то действия
}
-
- Сообщения: 57
- Зарегистрирован: Вс окт 28, 2018 11:04 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новый элемент меню checkbox
А , уже понял, но это не красиво будет. 7 выключателей занимают массу места в меню. Если мне нужно 3 таких будильника для каждой розетки делать.Chainik писал(а): ↑Пн янв 28, 2019 11:29 amЕсли я правильно понял мысль ув.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") { //Какие-то действия }
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Новый элемент меню checkbox
Тогда можете делать наподобие того, как здесь (https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641). Но это несколько сложнее, т.к. вам надо будет использовать не стандартный выключатель, а свой html-элемент. Каждый день недели также будет иметь 2 состояния, и, соответственно, 2 иконки.
-
- Сообщения: 57
- Зарегистрирован: Вс окт 28, 2018 11:04 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новый элемент меню checkbox
На официальном сайте этого интерфейса на котором собрано меню уже имеется поддержка элемента checkbox просто Сергей забыл добавить поддержку в MD. Веб интерфейс написать не сложно, я уже пробовал выбирать элемент html и там в коде создовал checkbox, но это нужно делать какую то кнопку "сохранить " что бы веб форма отправилась на сервер, на сервере создать php файлик который будет принимать и обробатывать web форму. Вобщем у Сергея это выйдет лучше всех, да и с обновлением проблем не было б.
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Новый элемент меню checkbox
Можно поступить проще:
и т.д, вплоть до воскресенья.
В Объект.Методах у вас будет простейший код для изменения свойства соответствующего объекта на противоположное (было "0", стало -- "1" и наоборот). Т.е., например, "Объект.Метод_Пн" меняет свойство "Розетка_1.Понедельник".
Ширину иконок сделайте где-нибудь 24-26 пикселей, чтобы все 7 штук уместились в одной строке меню, либо подкорректируйте прямо в блоке <div>:
Код: Выделить всё
<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 раз.
-
- Сообщения: 57
- Зарегистрирован: Вс окт 28, 2018 11:04 pm
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
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 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>
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Новый элемент меню checkbox
А зачем "скринить"? Берете любой графический редактор, рисуете "квадрат Малевича" любого цвета размером 32х32 пикселя. Гордо пишите по центру "Пн". И сохраняете. Затем сохраняете повторно, только в оттенках серого (типа "не выделен").
И две иконки из 14 уже готовы.