Задача: Хочу чтобы на главной странице MajorDoMo отображались данные текущего курса доллара и евро, как это сделать и какова последовательность шагов.
Ведь не всегда удобно лазить в интернет и искать, а какой сейчас курс доллара или евро. Вообще стоит ли сейчас их покупать или продавать. Да и какому банку (обменному пункту) отдать свои кровным, т. к. многие наживаются на незнающих, а разница покупки и продажи может здорово отличаться от реальных.
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 то вид текущего состояния будет следующим:
Также можно добавить иконки и все что нужно для наглядности т. к. поле «Данные» представляет из себя страницу в формате HTML.
На этом всё, я для себя понял как создаются свойства и как вывести на главную страницу данные об текущем курсе доллара и евро. В последствии на своем блоге я буду также расписывать все что меня интересовало при использовании MajorDoMo, а пока я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.