Страница 1 из 1

Анимированные гифы в стилях отображения датчиков

Добавлено: Вт дек 15, 2015 4:20 pm
lanket
В элементах сцен в стилях можно положить PNG картинки для отображения состояния выключателей, датчиков ...<br /><br />Очень хочется использовать анимированные гифы для наглядности и привлечения внимания.<br />МДМ не реагирует на ниличие гифов.<br />Где подправить код в МДМ чтобы он использовал гифы для отображения состояния датчиков и гифы тоже.

Отправлено с моего HM NOTE 1LTEW через Tapatalk

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Ср янв 13, 2016 10:11 pm
Sturgeon
Нет анимации или вообще не отображаются? В разных браузерах открывать страницу пробовали?

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Пт фев 26, 2016 10:59 pm
lanket
Sturgeon писал(а):Нет анимации или вообще не отображаются? В разных браузерах открывать страницу пробовали?
Спасибо что отозвались.
По работе был загружен сильно и было не до МДМ к сожалению.

В настройках сцен. Элементам можно задать значки отображения их в сценах.
Например для датчика движения сделать так чтобы когда он срабатывал на сцене он появился в виде лапы


Эти картинки и стили берутся из папки /папкаМДМ/cms/scenes/styles/типЭлемента
А для элементов типа warning беруться соответственно из /папкаМДМ/cms/scenes/styles/warning

и если туда накидать png файлов то они все отобразяться в выборе иконоок отображения элемента.
А gif пропускаются.
Ниже скриншот этой папки. А в первом скриншоте видно что gif не учавствует в этом празднике


Ну и браузер тут ни причем. На всякий случай попробовал.

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Пт фев 26, 2016 11:02 pm
lanket
Sturgeon писал(а):Нет анимации или вообще не отображаются? В разных браузерах открывать страницу пробовали?
Причем браузер тут точно ни причем говорит просмотор кода который генерит ПХП скрипт в нем нет упоминаний об гифах и дивы с содержанием картинок ровно столько сколько отобразившихся ПНГэшок

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Сб фев 27, 2016 7:52 am
Sturgeon
Хм. Тут сложнее. Я сначала подумал, что на уже готовых страницах не отображаются. А в этом случае надо пытать Сергея почему так происходит. Перед тем как копаться в коде, самый простой способ попробовать это поменять расширение у файлов с gif на png и посмотреть будут ли они в этом случае отображаться. У меня сейчас не установлен Мажордомо, не могу сам попробовать.

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Вс фев 28, 2016 1:28 am
lanket
Ну очень хочется.

Кто знает где в коде админки создается список картинок для выбора отображения элемента сцены.

Или кто знает в каком файле сценария это отрабатывается.

С анимацией сцены будут привлекательнее. Да и в случае срабатывания критических датчиков например утечки газа или задымления было бы актуально появиться анимированной иконки.

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Вс фев 28, 2016 12:24 pm
olehs
в htdocs\modules\scenes\sсenes.class.php гляньте.
не разбирался, но там есть упоминание png

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Вс фев 28, 2016 10:43 pm
lanket
olehs писал(а):в htdocs\modules\scenes\sсenes.class.php гляньте.
не разбирался, но там есть упоминание png
Вы прям мой спаситель.
Огромное спасибо.

Re: Анимированные гифы в стилях отображения датчиков

Добавлено: Пн фев 29, 2016 1:04 am
lanket
Мало ли кому пригодиться.
именно в этом файле строчка 1266

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

       if (preg_match('/(.+?)\.png$/is', $entry, $m)) {
 
заменить на

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

       if (preg_match('/(.+?)(\.png|\.gif)$/is', $entry, $m)) {
 
И начиная со строчки 1352 блок

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

    if (is_array($styles_recs)) {
     foreach($styles_recs as $k=>$v) {
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/'.$v['TITLE'].'.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/'.$v['TITLE'].'.png';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'.png';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'_on.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'_on.png';
      }
     }
    }
 
Заменить на

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

    if (is_array($styles_recs)) {
     foreach($styles_recs as $k=>$v) {
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/'.$v['TITLE'].'.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/'.$v['TITLE'].'.png';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/'.$v['TITLE'].'.gif')) {
       $styles_recs[$k]['IMAGE']=$type.'/'.$v['TITLE'].'.gif';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'.png';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'.gif')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'.gif';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'_on.png')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'_on.png';
      }
      if (!$styles_recs[$k]['IMAGE'] && file_exists($path.'/i_'.$v['TITLE'].'_on.gif')) {
       $styles_recs[$k]['IMAGE']=$type.'/i_'.$v['TITLE'].'_on.gif';
      }
     }
    }
 
Может грубовато но работает

Еще раз спасибо olehs