Как создать в Joomla модуль которая показывает погоду
Для создания модуля, который будет показывать текущую погоду, необходимо выполнить следующие шаги:
Создать новый модуль в административной панели Joomla и задать ему уникальное имя, например "WeatherModule".
Создать файлы "weather.php" и "helper.php" в папке модуля "WeatherModule" и поместить туда следующий код:
Файл "weather.php":
<?php
defined('_JEXEC') or die;
require_once dirname(__FILE__) . '/helper.php';
$weather = modWeatherHelper::getWeather();
require JModuleHelper::getLayoutPath('mod_weather');
?>
Файл "helper.php":
<?php
defined('_JEXEC') or die;
class modWeatherHelper {
public static function getWeather() {
// Получаем данные о погоде
$url = 'http://api.openweathermap.org/data/2.5/weather?q=Moscow&appid=YOUR_API_KEY&units=metric';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
$weather = json_decode($result, true);
// Формируем массив данных для шаблона
$data = array(
'city' => $weather['name'],
'temp' => round($weather['main']['temp']),
'description' => $weather['weather'][0]['description'],
'icon' => $weather['weather'][0]['icon']
);
return $data;
}
}
?>
Создать файл "default.php" в папке "tmpl" модуля и поместить туда следующий код:
<div class="weather-module">
<div class="city"><?php echo $weather['city']; ?></div>
<div class="temp"><?php echo $weather['temp']; ?>°C</div>
<div class="description"><?php echo $weather['description']; ?></div>
<img class="icon" src="http://openweathermap.org/img/wn/<?php echo $weather['icon']; ?>.png" alt="<?php echo $weather['description']; ?>">
</div>
Заменить "YOUR_API_KEY" в файле "helper.php" на ваш ключ API для OpenWeatherMap.
Добавить CSS-стили для модуля в файл "weather.css", который следует разместить в папке "css" модуля:
.weather-module {
background-color: #fff;
border: 1px solid #ddd;
padding: 10px;
}
.weather-module .city {
font-size: 18px;
font-weight: bold;
margin-bottom: 5px;
}
.weather-module .temp {
font-size: 36px;
font-weight: bold;
margin-bottom: 10px;
}
.weather-module .description {
font-size: 14px;
margin-bottom: 10px;
}
.weather-module .icon {
width: 50px;
height: 50px;
}
Сохранить все файлы и опубликовать модуль на нужной позиции на сайте Joomla.
Теперь модуль будет отображать текущую погоду.
Комментарии
Отправить комментарий