Как создать в 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']; ?>&deg;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.

Теперь модуль будет отображать текущую погоду.

Комментарии