Допустим, есть у погодного объекта
Погода свойство
Направление_ветра_в_градусах. Нам нужно получить свойство
Название_направления_ветра.
Расскажу как сделано у меня, то же самое можно делать по-другому.
Давно уже удалил модуль OpenWeather, но в папке у меня обнаружился файл htdocs/lib/OpenWeather/OpenWeather.php
Там (респект автору) обнаружилось много полезняшек, в том числе и функция
Код: Выделить всё
/**
* Get wind direction name by direction in degree
* @param $degree Degree
* @return
*/
private static function GetWindDirection
($degree)
{
$windDirection = ['<#LANG_N#>', '<#LANG_NNE#>', '<#LANG_NE#>', '<#LANG_ENE#>', '<#LANG_E#>', '<#LANG_ESE#>', '<#LANG_SE#>', '<#LANG_SSE#>', '<#LANG_S#>', '<#LANG_SSW#>', '<#LANG_SW#>', '<#LANG_WSW#>', '<#LANG_W#>', '<#LANG_WNW#>', '<#LANG_NW#>', '<#LANG_NNW#>', '<#LANG_N#>'];
return $windDirection[round($degree / 22.5)];
}
, какую я и подогнал под себя
myWindDirFull($degree) - полно
myWindDirection($degree) - кратко
Код: Выделить всё
/**
* Get wind direction name by direction in degree
* @param mixed $degree Wind degree
* @return string
*/
function myWindDirection($degree)
{
$windDirection = ['С', 'ССВ', 'СВ', 'ВСВ', 'В', 'ВЮВ', 'ЮВ', 'ЮЮВ', 'Ю', 'ЮЮЗ', 'ЮЗ', 'ЗЮЗ', 'З', 'ЗСЗ', 'СЗ', 'ССЗ', 'С'];
$direction = $windDirection[round($degree / 22.5)];
return $direction;
}
/**
* Get wind direction name by direction in degree
* @param mixed $degree Wind degree
* @return string
*/
function myWindDirFull($degree)
{
$windDirection = ['Северный', 'Северо-северо-восточный', 'Северо-восточный', 'Восточно-северо-восточный', 'Восточный', 'Восточно-юго-восточный', 'Юго-восточный', 'Юго-юго-восточный', 'Южный', 'Юго-юго-западный', 'Юго-западный', 'Западно-юго-западный', 'Западный', 'Западно-северо-западный', 'Северо-западный', 'Северо-северо-западный', 'Северный'];
$direction = $windDirection[round($degree / 22.5)];
return $direction;
}
Для своих функций у меня заведен файлик c:\_majordomo\htdocs\lib\my_funcs.php,
куда я всякую вкусность складываю - туда и добавляем новые наши функции. Следим, чтобы файл сохранялся в кодировке UTF-8 without BOM, в начале
<?php
Перезагружаем МЖДМ, проверяем в консоли myWindDirection(10)
Если заработало, можем определить свойство
Погода.Название_направления_ветра
Там, где обновляется свойство
Погода.Направление_ветра_в_градусах дописываем
Код: Выделить всё
setGlobal('Погода.Название_направления_ветра',myWindDirFull(getGlobal(Погода.Направление_ветра_в_градусах)));
Для того, чтобы получить краткое наименование, соотв. используем функцию myWindDirection