Как вывести курсы валют в MajorDoMo

Posted by

Задача: Хочу чтобы на главной странице отображались данные текущего курса доллара и евро, как это сделать и какова последовательность шагов.

Ведь не всегда удобно лазить в интернет и искать, а какой сейчас курс доллара или евро. Вообще стоит ли сейчас их покупать или продавать. Да и какому банку (обменному пункту) отдать свои кровным, т. к. многие наживаются на незнающих, а разница покупки и продажи может здорово отличаться от реальных.

http://IP&DNS — Панель управления — (Объекты) Сценарии — Добавить новый сценарий

  • Название: Valuta

нажимаю «Добавить»

  • Код (PHP):

$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));

$xml = $file->xpath("//Valute[@ID='R01235']");

$valute = strval($xml[0]->Value);

$dollar = str_replace(",",".",$valute);

echo $dollar;

echo "\t";

sg("kurs.dollar",$dollar);

$xml = $file->xpath("//Valute[@ID='R01239']");

$valute = strval($xml[0]->Value);

$euro = str_replace(",",".",$valute);

echo $euro;

sg("kurs.euro",$euro);

где:

  • kurs.dollar — объект.свойство
  • kurs.euro — объект.свойство

Результат перехода по ссылке созданного сценария:

http://10.7.9.161/objects/?script=Valuta

Результат отработки сценария

в этом значении 57.5336 68.5801 зашифровано два результата:

  • это доллар: 57.5336
  • это евро: 68.5801

Теперь нужно чтобы данный скрипт записывал объекты в MajorDoMo. Создаю новый класс:

http://IP&DNS — Панель управления — (Объекты) Объекты — Добавить новый класс и называю его:

  • Название: Valuta

и нажимаю «Добавить», после перехожу во вкладку «Объекты» — «Добавить новый объект»:

Название:

  • Название: kurs
  • Класс: Valuta

и нажимаю «Добавить».

Затем запускаю скрипт: http://10.7.9.161/objects/?script=Valuta чтобы в объекте kurs создались свойства dollar & euro

После чего возвращаюсь в (Объекты) Объекты — разворачиваю класс Valuta, захожу в объект kurs, затем перехожу во вкладку «Свойства» и вижу созданные свойства со значениями представленными на скриншоте ниже.

После выполнения скрипта создались свойства доллара и евро

Чтобы свойства сохраняли историю нужно, нужно зайти в свойства класса:

http://IP&DNS — Панель управления — (Объекты) Объекты — Valuta — вкладка «Свойства» — «Добавить новое свойство»

  • Название: dollar
  • Хранить историю (дней): 14

и нажимаю «Сохранить» и так же добавляю свойство euro.

Чтобы сценарий выполнялся каждый час. Нужно как один из вариантов добавить его в метод «onNewHour» объекта «ClockChime» класса Timer, но вот что странно в моей системе нет такого метода (а на форумах в него добавляли), ладно создам его:

http://IP&DNS — Панель управления — (Объекты) Объекты — Timer — ClockChime -

  • Название: onNewHour
  • Код (PHP):

if (gg('DebugMode.active') == 1) {

DebMes('Метод Timer onNewHour');

}

//выводим дату и день

$h=(int)date('G',time());

$day[0]="Воскресенье";

$day[1]="Понедельник";

$day[2]="Вторник";

$day[3]="Среда";

$day[4]="Четверг";

$day[5]="Пятница";

$day[6]="Суббота";

if (($h=="00")) {

sg("ThisComputer.Date",date( "d.m.Y", time()));

sg("ThisComputer.Day",$day[date("w")]);

}

//END Ну а дальше где надо вставляем день недели и дату

//START openweather module

$updateTime = gg('ow_setting.updateTime');

if($updateTime > 0)

{

$count = gg('ow_setting.countTime');

if($count >= $updateTime)

{

include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');

$app_openweather = new app_openweather();

$app_openweather->get_weather(gg('ow_city.id'));

sg('ow_setting.countTime', 1);

}

else

{

$count++;

sg('ow_setting.countTime', $count);

}

}

// END openweather module

и нажимаю «Сохранить», затем в него же добавляю строку:

runScript('valuta');

Выводим:

http://IP&DNS — Панель управления — (Объекты) Меню управления, к примеру в раздел «State», «Данные»

<br/>

Доллар %kurs.dollar% Евро %kurs.euro%

Указываю формат отображаемых курсов валют

и нажимаю «Сохранить», после чего если открыть главную страницу MajorDoMo то вид текущего состояния будет следующим:

Представление курса валют на главной странице MajorDoMo

Также можно добавить иконки и все что нужно для наглядности т. к. поле «Данные» представляет из себя страницу в формате HTML.

На этом всё, я для себя понял как создаются свойства и как вывести на главную страницу данные об текущем курсе доллара и евро. В последствии на своем блоге я буду также расписывать все что меня интересовало при использовании MajorDoMo, а пока я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.