449 lines
21 KiB
PHP
449 lines
21 KiB
PHP
<?php
|
|
|
|
/**
|
|
* The public-facing functionality of the plugin.
|
|
*
|
|
* @link https://www.themepunch.com
|
|
* @since 1.0.0
|
|
*
|
|
* @package Revslider_Weather_Addon
|
|
* @subpackage Revslider_Weather_Addon/public
|
|
*/
|
|
|
|
/**
|
|
* The public-facing functionality of the plugin.
|
|
*
|
|
* Defines the plugin name, version, and two examples hooks for how to
|
|
* enqueue the admin-specific stylesheet and JavaScript.
|
|
*
|
|
* @package Revslider_Weather_Addon
|
|
* @subpackage Revslider_Weather_Addon/public
|
|
* @author ThemePunch <info@themepunch.com>
|
|
*/
|
|
class Revslider_Weather_Addon_Public {
|
|
|
|
/**
|
|
* The ID of this plugin.
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $plugin_name The ID of this plugin.
|
|
*/
|
|
private $plugin_name;
|
|
|
|
/**
|
|
* The version of this plugin.
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @var string $version The current version of this plugin.
|
|
*/
|
|
private $version;
|
|
|
|
private $weather;
|
|
|
|
/**
|
|
* Initialize the class and set its properties.
|
|
*
|
|
* @since 1.0.0
|
|
* @param string $plugin_name The name of the plugin.
|
|
* @param string $version The version of this plugin.
|
|
*/
|
|
public function __construct( $plugin_name, $version ) {
|
|
|
|
$this->plugin_name = $plugin_name;
|
|
$this->version = $version;
|
|
|
|
}
|
|
|
|
/**
|
|
* Register the stylesheets for the public-facing side of the site.
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
public function enqueue_styles() {
|
|
|
|
/**
|
|
* This function is provided for demonstration purposes only.
|
|
*
|
|
* An instance of this class should be passed to the run() function
|
|
* defined in Revslider_Weather_Addon_Loader as all of the hooks are defined
|
|
* in that particular class.
|
|
*
|
|
* The Revslider_Weather_Addon_Loader will then create the relationship
|
|
* between the defined hooks and the functions defined in this
|
|
* class.
|
|
*/
|
|
|
|
//wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/revslider-weather-addon-public.css', array(), $this->version, 'all' );
|
|
|
|
}
|
|
|
|
/**
|
|
* Register the JavaScript for the public-facing side of the site.
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
public function enqueue_scripts() {
|
|
|
|
/**
|
|
* This function is provided for demonstration purposes only.
|
|
*
|
|
* An instance of this class should be passed to the run() function
|
|
* defined in Revslider_Weather_Addon_Loader as all of the hooks are defined
|
|
* in that particular class.
|
|
*
|
|
* The Revslider_Weather_Addon_Loader will then create the relationship
|
|
* between the defined hooks and the functions defined in this
|
|
* class.
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* Get Information from Slide and call the weather
|
|
* @since 1.0.0
|
|
*/
|
|
public function revslider_add_layer_html($slider, $slide){
|
|
//global $revslider_weather;
|
|
|
|
$sliderParams = $slider->getParams();
|
|
|
|
if( isset($sliderParams["revslider-weather-enabled"]) && $sliderParams["revslider-weather-enabled"] == "true" ){
|
|
wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/revslider-weather-addon-public.css', array(), $this->version, 'all' );
|
|
}
|
|
|
|
if( isset($sliderParams["revslider-weather-enabled"]) && $sliderParams["revslider-weather-enabled"] == "true" && !empty( $sliderParams["revslider-weather-refresh"] ) ){
|
|
wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/revslider-weather-addon-public.js', array( 'jquery' ), $this->version, false );
|
|
wp_localize_script( $this->plugin_name, 'rev_slider_weather_addon', array(
|
|
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
|
'interval' => $sliderParams["revslider-weather-refresh"]
|
|
));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Connects to Yahoo API and collects Weather Info
|
|
* @since 1.0.0
|
|
*/
|
|
public function get_weather($type,$woeid,$name,$unit){
|
|
|
|
//Get weather information dependent from Slider options
|
|
$revslider_weather = RevAddOnWeatherYahoo::get_weather_infos($type,$woeid,$name,$unit);
|
|
return $revslider_weather;
|
|
|
|
}
|
|
|
|
/**
|
|
* Filters the custom meta placeholders and calls function to replace
|
|
* @since 1.0.0
|
|
*/
|
|
public function rev_addon_insert_meta($record){
|
|
|
|
$params = json_decode($record["params"]);
|
|
|
|
$type = isset($params->{"revslider-weather-location-type"}) ? $params->{"revslider-weather-location-type"} : '';
|
|
$woeid = isset($params->{"revslider-weather-location-woeid"}) ? $params->{"revslider-weather-location-woeid"} : '';
|
|
$name = isset($params->{"revslider-weather-location-name"}) ? $params->{"revslider-weather-location-name"} : '';
|
|
$unit = isset($params->{"revslider-weather-unit"}) ? $params->{"revslider-weather-unit"} : '';
|
|
$params->params_10 = (!isset($params->params_10)) ? '' : $params->params_10;
|
|
|
|
//Get weather information dependent from Slider options
|
|
$revslider_weather = $this->get_weather($type,$woeid,$name,$unit);
|
|
// $revslider_weather = '';
|
|
|
|
|
|
$params->params_10_chars = 1200;
|
|
$params->params_10 = $params->params_10 . '{"revslider-weather-addon" : { "type" : "' . $type . '" ,"name" : "' . $name . '" ,"woeid" : "' . $woeid . '" ,"unit" : "' . $unit . '" }}';
|
|
|
|
$record["params"] = json_encode($params);
|
|
|
|
if(strpos($record["layers"], "%weather_icon%")) wp_enqueue_style( $this->plugin_name . '_icons', plugin_dir_url( __FILE__ ) . 'css/revslider-weather-addon-icon.css', array(), $this->version, 'all' );
|
|
|
|
// if(!isset($revslider_weather->query->results->channel)) return $record;
|
|
|
|
$def_value = '--';
|
|
$def_fc = 'F';
|
|
$def_icon = '30';
|
|
$results = false;
|
|
|
|
if(!empty($revslider_weather) && isset($revslider_weather->query) && isset($revslider_weather->query->results) && isset($revslider_weather->query->results->channel)) {
|
|
|
|
$results = true;
|
|
$values = array(
|
|
'revslider_data_weather_title' => $revslider_weather->query->results->channel->item->title,
|
|
'revslider_data_weather_temp' => $revslider_weather->query->results->channel->item->condition->temp,
|
|
'revslider_data_weather_code' => $revslider_weather->query->results->channel->item->condition->code,
|
|
'revslider_data_weather_todayCode' => $revslider_weather->query->results->channel->item->forecast[0]->code,
|
|
'revslider_data_weather_date' => $revslider_weather->query->results->channel->item->forecast[0]->date,
|
|
'revslider_data_weather_day' => $revslider_weather->query->results->channel->item->forecast[0]->day,
|
|
'revslider_data_weather_currently' => RevAddOnWeatherYahoo::condition_lang($revslider_weather->query->results->channel->item->condition->text),
|
|
'revslider_data_weather_high' => $revslider_weather->query->results->channel->item->forecast[0]->high,
|
|
'revslider_data_weather_low' => $revslider_weather->query->results->channel->item->forecast[0]->low,
|
|
'revslider_data_weather_text' => RevAddOnWeatherYahoo::condition_lang($revslider_weather->query->results->channel->item->forecast[0]->text),
|
|
'revslider_data_weather_humidity' => $revslider_weather->query->results->channel->atmosphere->humidity,
|
|
'revslider_data_weather_pressure' => $revslider_weather->query->results->channel->atmosphere->pressure,
|
|
'revslider_data_weather_rising' => $revslider_weather->query->results->channel->atmosphere->rising,
|
|
'revslider_data_weather_visbility' => $revslider_weather->query->results->channel->atmosphere->visibility,
|
|
'revslider_data_weather_sunrise' => $revslider_weather->query->results->channel->astronomy->sunrise,
|
|
'revslider_data_weather_sunset' => $revslider_weather->query->results->channel->astronomy->sunset,
|
|
'revslider_data_weather_city' => $revslider_weather->query->results->channel->location->city,
|
|
'revslider_data_weather_country' => $revslider_weather->query->results->channel->location->country,
|
|
'revslider_data_weather_region' => $revslider_weather->query->results->channel->location->region,
|
|
'revslider_data_weather_updated' => $revslider_weather->query->results->channel->item->pubDate,
|
|
'revslider_data_weather_link' => $revslider_weather->query->results->channel->item->link,
|
|
'revslider_data_weather_thumbnail' => $revslider_weather->query->results->channel->item->forecast[0]->code . 'ds.png',
|
|
'revslider_data_weather_image' => $revslider_weather->query->results->channel->item->forecast[0]->code . 'd.png',
|
|
'revslider_data_weather_units_temp' => $revslider_weather->query->results->channel->units->temperature,
|
|
'revslider_data_weather_units_distance' => $revslider_weather->query->results->channel->units->distance,
|
|
'revslider_data_weather_units_pressure' => $revslider_weather->query->results->channel->units->pressure,
|
|
'revslider_data_weather_units_speed' => $revslider_weather->query->results->channel->units->speed,
|
|
'revslider_data_weather_wind_chill' => $revslider_weather->query->results->channel->wind->chill,
|
|
'revslider_data_weather_wind_direction' => $revslider_weather->query->results->channel->wind->direction,
|
|
'revslider_data_weather_wind_speed' => $revslider_weather->query->results->channel->wind->speed,
|
|
'revslider_data_weather_alt_temp' => $this->get_alt_temp($revslider_weather->query->results->channel->units->temperature,$revslider_weather->query->results->channel->item->condition->temp),
|
|
'revslider_data_weather_alt_high' => $this->get_alt_temp($revslider_weather->query->results->channel->units->temperature,$revslider_weather->query->results->channel->item->forecast[0]->high),
|
|
'revslider_data_weather_alt_low' => $this->get_alt_temp($revslider_weather->query->results->channel->units->temperature,$revslider_weather->query->results->channel->item->forecast[0]->low),
|
|
'revslider_data_weather_alt_unit' => $revslider_weather->query->results->channel->units->temperature == "F" ? "C" : "F",
|
|
'revslider_data_weather_description' => $revslider_weather->query->results->channel->item->description,
|
|
'revslider_data_weather_icon' => $revslider_weather->query->results->channel->item->forecast[0]->code
|
|
);
|
|
|
|
}
|
|
else {
|
|
|
|
$values = array(
|
|
'revslider_data_weather_title' => $def_value,
|
|
'revslider_data_weather_temp' => $def_value,
|
|
'revslider_data_weather_code' => $def_value,
|
|
'revslider_data_weather_todayCode' => $def_value,
|
|
'revslider_data_weather_date' => $def_value,
|
|
'revslider_data_weather_day' => $def_value,
|
|
'revslider_data_weather_currently' => $def_value,
|
|
'revslider_data_weather_high' => $def_value,
|
|
'revslider_data_weather_low' => $def_value,
|
|
'revslider_data_weather_text' => $def_value,
|
|
'revslider_data_weather_humidity' => $def_value,
|
|
'revslider_data_weather_pressure' => $def_value,
|
|
'revslider_data_weather_rising' => $def_value,
|
|
'revslider_data_weather_visbility' => $def_value,
|
|
'revslider_data_weather_sunrise' => $def_value,
|
|
'revslider_data_weather_sunset' => $def_value,
|
|
'revslider_data_weather_city' => $def_value,
|
|
'revslider_data_weather_country' => $def_value,
|
|
'revslider_data_weather_region' => $def_value,
|
|
'revslider_data_weather_updated' => $def_value,
|
|
'revslider_data_weather_link' => $def_value,
|
|
'revslider_data_weather_thumbnail' => $def_value,
|
|
'revslider_data_weather_image' => $def_value,
|
|
'revslider_data_weather_units_temp' => $def_value,
|
|
'revslider_data_weather_units_distance' => $def_value,
|
|
'revslider_data_weather_units_pressure' => $def_value,
|
|
'revslider_data_weather_units_speed' => $def_value,
|
|
'revslider_data_weather_wind_chill' => $def_value,
|
|
'revslider_data_weather_wind_direction' => $def_value,
|
|
'revslider_data_weather_wind_speed' => $def_value,
|
|
'revslider_data_weather_alt_temp' => $def_value,
|
|
'revslider_data_weather_alt_high' => $def_value,
|
|
'revslider_data_weather_alt_low' => $def_value,
|
|
'revslider_data_weather_alt_unit' => $def_fc,
|
|
'revslider_data_weather_description' => $def_value,
|
|
'revslider_data_weather_icon' => $def_icon
|
|
);
|
|
}
|
|
|
|
//Replace Placeholders on Slide Layers
|
|
$record["layers"] = str_replace(
|
|
array(
|
|
"%weather_title%",
|
|
"%weather_temp%",
|
|
"%weather_code%",
|
|
"%weather_todayCode%",
|
|
"%weather_date%",
|
|
"%weather_day%",
|
|
"%weather_currently%",
|
|
"%weather_high%",
|
|
"%weather_low%",
|
|
"%weather_text%",
|
|
"%weather_humidity%",
|
|
"%weather_pressure%",
|
|
"%weather_rising%",
|
|
"%weather_visbility%",
|
|
"%weather_sunrise%",
|
|
"%weather_sunset%",
|
|
"%weather_city%",
|
|
"%weather_country%",
|
|
"%weather_region%",
|
|
"%weather_updated%",
|
|
"%weather_link%",
|
|
"%weather_thumbnail%",
|
|
"%weather_image%",
|
|
"%weather_units_temp%",
|
|
"%weather_units_distance%",
|
|
"%weather_units_pressure%",
|
|
"%weather_units_speed%",
|
|
"%weather_wind_chill%",
|
|
"%weather_wind_direction%",
|
|
"%weather_wind_speed%",
|
|
"%weather_alt_temp%",
|
|
"%weather_alt_high%",
|
|
"%weather_alt_low%",
|
|
"%weather_alt_unit%",
|
|
"%weather_description%",
|
|
"%weather_icon%"
|
|
),
|
|
array(
|
|
'<span class=\"revslider-weather-data revslider_data_weather_title\">' . $values['revslider_data_weather_title'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_temp\">' . $values['revslider_data_weather_temp'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_code\">' . $values['revslider_data_weather_code'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_todayCode\">' . $values['revslider_data_weather_todayCode'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_date\">' . $values['revslider_data_weather_date'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_day\">' . $values['revslider_data_weather_day'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_currently\">' . $values['revslider_data_weather_currently'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_high\">' . $values['revslider_data_weather_high'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_low\">' . $values['revslider_data_weather_low'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_text\">' . $values['revslider_data_weather_text'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_humidity\">' . $values['revslider_data_weather_humidity'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_pressure\">' . $values['revslider_data_weather_pressure'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_rising\">' . $values['revslider_data_weather_rising'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_visbility\">' . $values['revslider_data_weather_visbility'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_sunrise\">' . $values['revslider_data_weather_sunrise'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_sunset\">' . $values['revslider_data_weather_sunset'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_city\">' . $values['revslider_data_weather_city'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_country\">' . $values['revslider_data_weather_country'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_region\">' . $values['revslider_data_weather_region'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_updated\">' . $values['revslider_data_weather_updated'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_link\">' . $values['revslider_data_weather_link'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_thumbnail\">' . $values['revslider_data_weather_thumbnail'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_image\">' . $values['revslider_data_weather_image'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_units_temp\">' . $values['revslider_data_weather_units_temp'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_units_distance\">' . $values['revslider_data_weather_units_distance'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_units_pressure\">' . $values['revslider_data_weather_units_pressure'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_units_speed\">' . $values['revslider_data_weather_units_speed'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_wind_chill\">' . $values['revslider_data_weather_wind_chill'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_wind_direction\">' . $values['revslider_data_weather_wind_direction'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_wind_speed\">' . $values['revslider_data_weather_wind_speed'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_alt_temp\">' . $values['revslider_data_weather_alt_temp'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_alt_high\">' . $values['revslider_data_weather_alt_high'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_alt_low\">' . $values['revslider_data_weather_alt_low'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_alt_unit\">' . $values['revslider_data_weather_alt_unit']. '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_description\">' . $values['revslider_data_weather_description'] . '</span>',
|
|
'<span class=\"revslider-weather-data revslider_data_weather_icon\"><i class=\"revslider-weather-icon revslider-weather-icon-' . $values['revslider_data_weather_icon'] . '\"></i>' . '</span>'
|
|
),
|
|
$record["layers"]);
|
|
|
|
//Check for forecasts
|
|
$forecasts = preg_match_all('/\\%weather_.*?_forecast:[0-9]\\%/', $record["layers"], $matches);
|
|
|
|
if($forecasts){
|
|
|
|
foreach ($matches as $forecast_array) {
|
|
if(is_array($forecast_array)){
|
|
foreach ($forecast_array as $forecast) {
|
|
$orig_forecast = $forecast;
|
|
$forecast = str_replace(array("%","_forecast","weather_"), "", $forecast);
|
|
$forecast = explode(":", $forecast);
|
|
$what = $forecast[0];
|
|
$when = $forecast[1];
|
|
if(strpos($what, "alt_") !== false){
|
|
|
|
$what = str_replace("alt_", "", $what);
|
|
|
|
$temp = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->$what : $def_value;
|
|
$what = $what == "text" ? RevAddOnWeatherYahoo::condition_lang($temp) : $temp;
|
|
|
|
$fc = $results ? $revslider_weather->query->results->channel->units->temperature : $def_fc;
|
|
$record["layers"] = str_replace( $orig_forecast , $this->get_alt_temp( $def_fc , $what ) , $record["layers"] );
|
|
|
|
}
|
|
else{
|
|
$what_orig = $what;
|
|
switch($what) {
|
|
case 'image':
|
|
$temp = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->code : $def_value;
|
|
$what = 'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/'. $temp . 'd.png';
|
|
break;
|
|
case 'thumbnail':
|
|
$temp = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->code : $def_value;
|
|
$what = 'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/'. $temp . 'ds.png';
|
|
break;
|
|
case 'icon':
|
|
$temp = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->code : $def_icon;
|
|
$what = '<i class=\"revslider-weather-icon revslider-weather-icon-' . $temp . '\"></i>';
|
|
break;
|
|
case 'text':
|
|
$temp = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->$what : $def_value;
|
|
$what = RevAddOnWeatherYahoo::condition_lang($revslider_weather->query->results->channel->item->forecast[$when]->$what);
|
|
break;
|
|
default:
|
|
$what = $results ? $revslider_weather->query->results->channel->item->forecast[$when]->$what : $def_value;
|
|
}
|
|
|
|
$what = '<span class=\"revslider-weather-data revslider_weather_'.$what_orig.'_forecast_'.$when.'\">' . $what . '</span>';
|
|
|
|
$record["layers"] = str_replace($orig_forecast, $what , $record["layers"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $record;
|
|
}
|
|
|
|
/**
|
|
* Get alternative temp unit data
|
|
* @since 1.0.0
|
|
*/
|
|
public function get_alt_temp($unit, $temp) {
|
|
if($unit === 'F') {
|
|
return $this->fahrenheit_to_celsius($temp);
|
|
}
|
|
else {
|
|
return $this->celsius_to_fahrenheit($temp);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Convert Temp Fahrenheit to Celsius
|
|
* @since 1.0.0
|
|
*/
|
|
public function fahrenheit_to_celsius($given_value)
|
|
{
|
|
$celsius=5/9*($given_value-32);
|
|
return $celsius ;
|
|
}
|
|
|
|
/**
|
|
* Convert Temp Celsius to Fahrenheit
|
|
* @since 1.0.0
|
|
*/
|
|
public function celsius_to_fahrenheit($given_value)
|
|
{
|
|
$fahrenheit=$given_value*9/5+32;
|
|
return $fahrenheit ;
|
|
}
|
|
|
|
/**
|
|
* Ajax Function for refreshing on screen weather data dynamically
|
|
* @since 1.0.0
|
|
*/
|
|
public function revslider_weather_addon_refresh(){
|
|
$weather_data = $_POST["weather"]["revslider-weather-addon"];
|
|
$weather_data["type"] = sanitize_title( $weather_data["type"] );
|
|
$weather_data["name"] = sanitize_title( $weather_data["name"] );
|
|
$weather_data["unit"] = sanitize_title( $weather_data["unit"] );
|
|
$weather_data["woeid"] = intval( $weather_data["woeid"] );
|
|
|
|
$revslider_weather = $this->get_weather( $weather_data["type"] , $weather_data["woeid"] , $weather_data["name"] , $weather_data["unit"] );
|
|
|
|
echo json_encode($revslider_weather);
|
|
}
|
|
|
|
}
|