Страница 17 из 23

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 10:53 am
nick7zmail
Alex, вопрос наверное к тебе, опять =D. В начале темы на твоих скринах часто мелькает "индикатор прохождения минутного цикла". Можешь код выложить?

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 12:41 pm
Alex
Alex, вопрос наверное к тебе, опять =D. В начале темы на твоих скринах часто мелькает "индикатор прохождения минутного цикла". Можешь код выложить?
Создаём объект testOnNewMinute и его свойства

value
visio

В секундный цикл помещаем код

$seconds = date('s', time());
$seconds = $seconds / 10;
$a = "";

for ($i = 0; $i <= $seconds; $i++) {
$a = $a.'●';
}

В onNewMinute ставим маркеры, например

setGlobal('testOnNewMinute.value', 'START');

setGlobal('testOnNewMinute.value', 'OK');

Если минутный цикл зависнет, то в панели будет написано на каком этапе

Далее, в \htdocs\templates\default.html добавляем яваскрипт

cycle_test_value = new middle_connector('testOnNewMinute.value', '', 9000, 0);
cycle_test_visio = new middle_connector('testOnNewMinute.visio', '', 9000, 0);

function show9s() {
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_visio").html(cycle_test_visio.valueStr);
}

$(document).ready(function(){
setInterval('show9s()', 9000);
});

И не забываем подключить middle_connector

<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>

И отображаем на странице

<font size="3" color="#77bb77" face="Arial"> <span id="cycle_visio"></span></font>
<font size="2" color="lightgray" face="Arial"><span id="cycle_value"><b>OK</b></span></font>

Всё это желательно проделывать с пониманием, иначе навряд ли это запустится.

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 12:43 pm
Alex
Я проста не понимаю нужно ещё один объект powerALL.value и в нём свойство Value ?
Также откуда берётся остальные значения ?
Всё очень просто. PowerALL это новый объект, а perDay и perDay_, costDay это свойства объекта oeALL.

А te3state.now это умный тариф, можно для простоты заменить фиксированной таксой.

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 3:38 pm
dmw
Alex, выложите папку /jsdata ?
В Вашем шаблоне default.html идут ссылки на различные скрипты оттуда, в частности на:
/jsdata/tabs_mini1.js
/jsdata/face_connector.js

и нигде не нашел по форуму:
/jsgraphics/state2.js

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 5:59 pm
nick7zmail
Alex писал(а): В секундный цикл помещаем код
А есть какой-нибудь секундный цикл встроенный в систему? (Например я знаю что checkstate отрабатывает каждую секунду...где он вызывается?). А то создавать таймер по этому методу по-моему как то напрягет систему: вызывать скрипт каждую секунду. Или я ошибаюсь?

Re: Дизайн интерфейса

Добавлено: Вт окт 06, 2015 10:31 pm
Alex
Alex, выложите папку /jsdata ?
В Вашем шаблоне default.html идут ссылки на различные скрипты оттуда, в частности на:
/jsdata/tabs_mini1.js
/jsdata/face_connector.js
и нигде не нашел по форуму:
/jsgraphics/state2.js
Выложил апхив jsdata,zip
А есть какой-нибудь секундный цикл встроенный в систему? (Например я знаю что checkstate отрабатывает каждую секунду...где он вызывается?). А то создавать таймер по этому методу по-моему как то напрягет систему: вызывать скрипт каждую секунду. Или я ошибаюсь?
Вот пример скриптов — нужно только один раз запустить

timer_1s
============

clearTimeout("timer_1s_timeout");


// -------------------->

// Код для запуска раз в 1 секунду

// -------------------->


setTimeOut("timer_1s_timeout", "runScript('timer_1s');", 1);



timer_1s_stop
=============

clearTimeout("timer_1s_timeout");

Re: Дизайн интерфейса

Добавлено: Чт окт 08, 2015 9:55 pm
nick7zmail
Alex писал(а): Всё это желательно проделывать с пониманием, иначе навряд ли это запустится.
Всегда все стараюсь проделывать с пониманием, но когда заходит речь о ява скриптах - могу только догадываться как правильно, ну или хотя бы чтобы работало. Заставить работать не все получается.

Про секундный цикл - я не имел ввиду, что не понял как его делать), я имел ввиду то что скрипт, который убивает свой таймаут, потом устанавливает себя же на запуск через секунду, и потом опять все по-кругу - по моему как то сильно похоже на самодельные костыли)). (как уже говорил - поправьте, если не прав). Я вот избрал чуть более простой способ ежесекундно запускать метод. В system.checkState добавил

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

callMethod('ClockChime.onNewSecond');
А спрашивал: вдруг кто знает, откуда вызываются методы onNewHour/onNewMinute? Может туда же вписать onNewSecond, и все, и нигде его прописывать не надо будет?

Но это оффтоп. Вернемся к индикатору.
Я думаю в цикл надо добавить как минимум sg() как то так:

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

for ($i = 0; $i <= $seconds; $i++) {
$a = $a.'■';
sg('ClockChime.visio', $a);
} 
Одним словом в свойства все записывается прекрасно:
Свойства
Свойства
11.jpg (18.86 КБ) 12806 просмотров
Но, как я и говорил, когда дело доходит до явы, действую в слепую, и прошу помощи. В default.html подключил:

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

<script language="javascript" type="text/javascript" src="/js/middle_connector.js"></script>
<script language="javascript" type="text/javascript" src="/js/middle_object.js"></script>
Мидл коннектор качал отсюда (из первого поста, может там чего то не хватает?).

Далее вписал скрипт:

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

<script language="javascript">
cycle_test_value = new middle_connector('ClockChime.value', '', 9000, 0);
cycle_test_visio = new middle_connector('ClockChime.visio', '', 9000, 0);

function show9s() {
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_visio").html(cycle_test_visio.valueStr);
}

$(document).ready(function(){
setInterval('show9s()', 9000);
});
</script>
после скрипта скрытия левой панели.
И вписал в верхнюю панель это:

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

                                <td align="right" width="5%" >
                                
                                <font size="3" color="#77bb77" face="Arial"> <span id="cycle_visio"></span></font>
                                <font size="2" color="lightgray" face="Arial"><span id="cycle_value"><b>OK</b></span></font>
                                </td>
В итоге получил всего лишь надпись:
Результат
Результат
22.jpg (20.39 КБ) 12806 просмотров
И то, по-моему это та, которая вписана в ручную в строке

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

<span id="cycle_value"><b>OK</b></span> 
Где я ошибся? Или что-то забыл?

Re: Дизайн интерфейса

Добавлено: Пт окт 09, 2015 10:01 am
skysilver
Для справки. system.checkState запускается не раз в секунду, а раз в 5 секунд. Или даже 6, т.к. в коде есть задержка sleep(1). Большинство циклов в MJD крутится с 5-6 секундным интервалом.
Ниже выдержка из исходника цикла cycle_states.php:

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

 while (1)
   {
     if (time() - $checked_time > 5)
      {
         setGlobal((str_replace('.php', '', basename(__FILE__))) . 'Run', time(), 1);
         $checked_time = time();
         cycleBody();
      }
   
      if (file_exists('./reboot') || IsSet($_GET['onetime']))
      {
         $db->Disconnect();
         exit;
      }
   
      sleep(1);
   } 

Re: Дизайн интерфейса

Добавлено: Пт окт 09, 2015 10:10 am
Alex
Я думаю в цикл надо добавить как минимум sg() как то так:
Совершенно верно. Кубики :) нужно «запихнуть» в свойство, видимо этот кусок я пропустил при копировании.

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

<script language="javascript" type="text/javascript" src="/js/middle_connector.js"></script>
<script language="javascript" type="text/javascript" src="/js/middle_object.js"></script>
У меня директория middle, а не js
Мидл коннектор качал отсюда (из первого поста, может там чего то не хватает?).
Там чуть ниже выложен код из системы и комментарий пользователя, что у него всё заработало
Далее вписал скрипт:
Тут трудно сказать, на первый взгляд всё правильно. Для начала нужно понять работает ли цикл и сам коннектор. Попробуйте запустить вместо

$("#cycle_value").html(cycle_test_value.valueStr);

$("#cycle_value").html('test');

Тогда будет понятно, попадает ли вообще что-то в "#cycle_value"

Re: Дизайн интерфейса

Добавлено: Пт окт 09, 2015 4:31 pm
nick7zmail
skysilver писал(а):Для справки. system.checkState запускается не раз в секунду, а раз в 5 секунд. Или даже 6
Спасибо, не знал. А есть информация - какой php запускает onNewHour/onNewMinute?
Alex писал(а):
$("#cycle_value").html(cycle_test_value.valueStr);

$("#cycle_value").html('test');

Тогда будет понятно, попадает ли вообще что-то в "#cycle_value"
Попробовал...ноль реакции. Результат тот же. Либо middle_connector не подключается, либо скрипт цикла на страничке не запускается. Как понять?

PS: на всякий случай попробовал перекинуть все из js в middle, и подключить соответственно. Результат тот же.