【Ver1.0】(2009-8-13更新)强大的自动判断IP显示地区的天气预报插件!!

2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家



天气预报插件【Ver1.0】
最新版(2009-8-13更新)!!请在该更新时间前使用的用户进行本次的更新,否则将无法使用!
更新包括:
(1)Service地址重构
(2)主体代码全部重构,速度更快!
(3)天气显示lbi库全部更新

特点:
(1)即时当天,天气预报!
(2)未来三天,天气预报!
(3)所有数据均采用缓存,加载速度超快!
(4)自动根据访问用户的IP地址所指向的地区来获取天气数据!
(5)本天气预报插件并不是像一般网站提供的天气插件提供一个<iframe>或JS给你嵌入到页面中。它是完全在自己的页面中生成数据,可以由你自己DIY控制天气数据或改动样式。
(6)本插件适用于ECSHOP 2.5 以上的所有版本。


注意事项:
(1)本天气预报通过纯真IP库来取得地区。如果IP在IP库中不能正常显示完整的地区,则无法取得该地区的天气!
(2)本天气预报插件目前只支持中国地区的天气预报。如果你的网站是国外的那么天气预报就无法使用了!
(3)本天气预在测试时候要求可以访问公网!


实际使用效果:
http://shop.17kaixin8.com/

实际效果图:


更多基于RPC技术开发WebService请参看这里:http://app.17kaixin8.com


请选择正确的版本进行下载:
UTF-8:
GBK:


使用说明:
(1)将附件解压后的,WClient目录下的所有文件复制到ECSHOP的根目录下;
(2)将附件解压后的,get_weather.lbi和weather.lbi文件复制到ECSHOP的根目录/themes/你的模板目录/library/下面,因为这两个库文件我用的是自己模板的CSS,所以有可能会走位!你可以跟据自己模板样式改动CSS或布局等;

(3)找到ECSHOP的根目录/themes/你的模板目录/index.dwt文件,在想要调用天气预报的地方加入以下代码:
  1. <!-- #BeginLibraryItem "/library/get_weather.lbi" -->
  2. <!-- #EndLibraryItem -->
复制代码
(4)将以下代码复制到ECSHOP的根目录/includes/lib_insert.php文件中,最好在结尾处

  1. /**
  2. * =======================================
  3. * ECSHOP专用天气预报生成
  4. * =======================================
  5. **/
  6. function insert_GetWeather()
  7. {
  8. $need_cache = $GLOBALS['smarty']->caching;
  9. $GLOBALS['smarty']->caching = false;
  10. $error = array();
  11. $flag = false;
  12. //检测需要的文件是否存在
  13. if(file_exists('WClient/phprpc_client.php'))
  14. {
  15. include('WClient/phprpc_client.php');

  16. $wc = new PHPRPC_Client('http://app.17kaixin8.com/weather/weather.ser.php');
  17. $wc->setTimeout(60);//设置超时60s
  18. $wdata = $wc->WeatherIp(real_ip(),'UTF-8');
  19. if( is_array($wdata) && array_key_exists('nowday',$wdata) && array_key_exists('nowday',$wdata) )
  20. {
  21. $flag = true;
  22. }
  23. elseif(!$wdata)
  24. {
  25. $error[] = 'The weather can not be found!<br />' .
  26. 'The region with IP:' . real_ip() . ' can not be found!';
  27. $flag = false;
  28. }
  29. else
  30. {
  31. $error[] = 'Error occurred can not be expected to';
  32. $flag = false;
  33. }
  34. }
  35. else
  36. {
  37. $error[] = 'Please check the "WClient/phprpc_client.php" file exists!';
  38. $flag = false;
  39. }
  40. if( $flag )
  41. {
  42. $GLOBALS['smarty']->assign('nowday',$wdata['nowday']);
  43. $GLOBALS['smarty']->assign('threeday', $wdata['threeday']);
  44. }
  45. else
  46. {
  47. $GLOBALS['smarty']->assign('error',$error);
  48. }
  49. $output = $GLOBALS['smarty']->fetch('library/weather.lbi');
  50. $GLOBALS['smarty']->caching = $need_cache;
  51. return $output;
  52. }
复制代码


最后再介绍一下超强的文章函数功能包括:
(1)随意调用文章并抽取内容中的图片
(2)制作广告轮换
(3)产品分类广告\文章调用
具体可以参看:
http://bbs.ecshop.com/thread-91717-1-1.html

回答:


其实附件中有带两种编码的lib_insert.php文件,但如果你的lib_insert.php改动过等,并且你是GBK编码的,请确定使用步骤(4)代码中的第20行
  1. $wdata = $wc->WeatherIp(real_ip(),'UTF-8');
复制代码
将其改为
  1. $wdata = $wc->WeatherIp(real_ip(),'GBK');
复制代码
.

不错,虽然用不到,但很感谢共享!!

里面的get_weather.lbi和weather.lbi库显示样式你完全可以自己改动,默认我上传上去的只在IE7中测试。毕竟不是专业美工!没办法!



如果你想传输进行加密,那么在代码第7行下面加入以下代码,但传输速度会受到影响
  1. $wc->setKeyLength(128);//设置密钥长度
  2. $wc->setEncryptMode(3);//设置加密模式
复制代码

支持一下!!!

很好,支持

今天重新改了lbi库,请须要的朋友到下载地址下载

不错。加油

不错,支持一下,希望楼主继续开发更多实用的插件

确实不错

很好很强大,谢谢共享!

樓主太有心了,謝謝您!

也许用得上,做记号

佩服啊,收起来