hestec/silverstripe-openweathermap

为您的SilverStripe网站添加简单1到5天的天气预报

安装: 35

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放性问题: 0

类型:silverstripe-vendormodule

dev-master 2018-10-02 12:58 UTC

This package is auto-updated.

Last update: 2024-08-29 05:06:17 UTC


README

通过OpenWeatherMap免费版(https://openweathermap.org/)的数据,在您的SilverStripe网站上添加简单1到5天的天气预报。这个免费版只提供5天/3小时的预报,但这个模块将收集的数据转换为1到5天的全天预报。目前它只是一个简单的预报,包含天气图标和最低/最高温度。

要求

  • SilverStripe 4
  • cmfcmf/openweathermap-php-api

版本

使用语义版本控制。

安装

通过Composer安装

composer require "hestec/silverstripe-openweathermap": "1.*"

配置

https://openweathermap.org/注册(免费)账户并获取API密钥。

将OpenWeatherMap API密钥添加到您的yaml文件中

Hestec\OpenWeatherMap\OpenWeatherMapExtension:
  ApiKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

执行dev/build并刷新。

工作状态

OpenWeatherMap免费版(最多5天)的预报数据将存储在OpenWeatherMapData表中,并在有人访问网站时每3小时更新一次。这种方法减少了API调用次数,即使OpenWeatherMap服务暂时不可用,也会显示天气。

使用方法

在您的页面上包含OpenWeatherMap

<% include OpenWeatherMap %>

这提供了里约热内卢的5天天气预报。我想你可能想查看其他城市的预报。为此,将模板\silverstripe-openweathermap\templates\Includes\OpenWeatherMap.ss复制到你的主题的templates\Includes文件夹,并更改循环调用参数

<% loop WeatherForecast(5, 3451190) %>

其中数字是预报天数(最多5天),代码是OpenWeathetMap上使用的城市代码。在https://openweathermap.org/city上获取你城市的代码:搜索城市名称,并在URL中找到代码。

或者简单地将这个循环放入你的页面

<% loop WeatherForecast(5, 3451190) %>
       <p>$CityName, $CityCountry $Date:<br>
           Minimum temperatuur: $TemperatureMin<br>
           Maximum temperatuur: $TemperatureMax<br>
           <img src="$IconUrl">
       </p>
   <% end_loop %>

如果你想使用自己的图标而不是标准的OpenWeatherMap图标,只需使用$Icon和图标路径。例如

<% loop WeatherForecast(5, 3451190) %>
       <p>$CityName, $CityCountry $Date:<br>
           Minimum temperatuur: $TemperatureMin<br>
           Maximum temperatuur: $TemperatureMax<br>
           <img src="/themes/simple/img/weather/$Icon\.png">
       </p>
   <% end_loop %>

在此处找到必要的图标列表:https://openweathermap.org/weather-conditions

问题

没有已知的问题。

待办事项

  • 制作一个 elemental 扩展。
  • 测试。
  • 更多预报类型(3小时预报,更多详细信息)。