写在前面:好久没有更新博客,这段时间主要在写这个东西了,其实东西也不难,两三天就写好了。也收获了一些东西,这里做一下分享和总结。

需求:是学校新闻中心组织的一个活动,感恩母亲节微言活动,将收集到的祝福通过网站(wap端)展示出来,然后通过微信公共帐号,广播给同学们。

成果见:成电母亲节活动 ,用手机打开,效果好点~

功能有:

(1)通过下拉刷新查看状态(微信昵称+文字+图片);

(2)后台上传状态的界面,这里主要考虑到和谐的因素,没有像微博那样发布状态,而是我们来审核和发布;

(3)根据微信昵称搜索对应的状态;

(4)分享到新浪微博;

(5)用户点赞。

感觉东西主要在前端,现在我都还没怎么仔细看前端的代码,是凝聚工作室的同学写的,有时间看看,这里主要根据以上功能介绍下后台的实现逻辑。

(1)下拉刷新,查看状态:

自己稍微看了下ajax的请求,也看了点jquery的东东,,自己写不来,不过大概了解了原理,后台代码写起来不难。前端根据url接口请求数据,会带上页码信息,后端收到页码信息,就会去数据库取对应的数据,然后以json格式返回给前端即可。这里添加了一个剩余页码的字段,来通知前端数据没有了,不用用户再去加载一次,为用户着想。  其实,这里还没有完全设计好,不能通知有多少新消息,这个感觉需要记录住用户的加载时间,如果有新数据,就去通知用户,然后用户刷新获取新数据。

从上面也可以看出后端的数据库设计,哪些字段。这里特别指出的是,返回时间这个东西,应前端的需求(显示大小/用户体验这些),需要设计成“昨天、今天”这种时间的格式,所以需要对时间做一下判断,然后返回,从网上找了一个函数,参见:

//转换时间的显示格式

public function timeLine($t)

{

$t = strtotime($t);

$now = time();

$diff = $now - $t; // 计算出当前时间和给予时间的差,单位秒

if ($diff < 60) {

return $diff.' 秒前'; // 小于60秒

} elseif ($diff < 3600) {

return floor($diff / 60).' 分钟前'; //小于一小时

} elseif (date('Ymd', $now) == date('Ymd', $t)) {

return '今天 '.date('H:i', $t); // 今天

} elseif (strtotime(date('Ymd', $now)) - strtotime(date('Ymd', $t)) == 86400) {

return '昨天 '.date('H:i', $t); //昨天

} elseif (date('Y', $now)-date('Y', $t) <= 0) {

return date('m月d日', $t); // 一年内

} else {

return date('Y-m-d', $t); // 一年之外

}

}

(2)后台上传页面。

上传的数据包括:微信昵称、文字、图片,这里主要是图片上传这个东西,花费的时间多一点。图片上传直接用CI的文件上传类轻松解决,配置一下图片的参数就可以了。然后这里使用的是sae,使用的是storage服务,也就相当于电脑的硬盘。需要注意的是sae上部署的代码和本地的代码配置不一样,最明显的是数据库的配置,这个小项目用到的一些CI 的辅助类的系统文件也不一样,所以本地和新浪上需要两套代码(当然也有新浪的本地部署策略,我没有研究这个)。 我的方法是建两个工程,一个本地测试,一个用于新浪的svn上传。本地测试通过之后,将对应的代码添加到另外一个工程就好。

接着说图片的处理。我们打开新浪微博可以看到,默认打开的是小图(thumbnail),点击可以查看打图(bmiddle),还有查看原图的功能。这是为什么呢?当时自己还在纠结这个问题,前端可以控制图片的显示大小,直接传原图给前端就可以了,干嘛这么麻烦。原因是:节省流量、提高加载速度。。。很简单的道理。所以我们这里也类似做了这个图像的处理,同样使用的是CI 的图像处理类。跟上面一样,部署到sae可能会出错误,不用担心,一般使用sae版本的CI 版本可以解决问题~ 处理成功之后,同样保存在storage中,然后在数据库中存储路径,在前端请求数据的时候,返回这些数据就可以了。

(3)根据微信昵称搜索状态:

这个简单,根据数据库中的微信昵称字段,进行搜索就可以了;

(4)分享到新浪微博:

申请新浪微博的开放接口就可以了。http://open.weibo.com/sharebutton  。注意网站和应用的区别,以及上传东西的问题,我上传了好几次才审核通过,有次是网站内容不够丰富,上传点东西上去就好了。。。

(5)用户点赞:

点赞请求发过来,数据库中的字段+1就可以了,然后返回当前的赞的数量。这里没有做点赞的限制,也就是可以无限点赞。。。想着需要一张表记录赞的人数,而我们又没有用户这些~  当然限制IP也是一个思路。

最后,当然是源码了:源码下载链接

github链接(后面会上传):

写在后面:

现在在看python的django框架,准备用这个写个实验室的网站玩玩,,,java的搞不起啊,感觉有点复杂。。。

ci写微博php,php(CI框架)+ajax实现类似微博的东东相关推荐

  1. android仿微博评论功能,MVC网页中实现类似微博的评论功能

    @using (Html.BeginForm("publish_comment", "comment")) { @ViewBag.comment_txt } 通 ...

  2. ssh框架怎么写ajax,SSH框架+Ajax(运用dwr框架)综合小实例[精校版本]

    <SSH框架+Ajax(运用dwr框架)综合小实例[精校版本]>由会员分享,可在线阅读,更多相关<SSH框架+Ajax(运用dwr框架)综合小实例[精校版本](36页珍藏版)> ...

  3. 基于K8s的CI/CD自动化持续集成部署框架

    文章目录 什么是CI/CD? 1 环境准备 2 组件部署 2.1 jenkins快速部署 2.2 gitlab快速部署 2.3 harbor快速部署 3 CI/CD交付 什么是CI/CD? CI/CD ...

  4. 基于SSM框架的BS架构微博系统

    摘要:自上个世纪末起.互联网技术得到飞速发展,时至今日信息时代的到来,短短十几年,互联网就让我们见识到了它的魅力,在我们的生活中,网络无处不在,而信息的爆炸性发展也拓展了人们获取信息的方式. 微博作为 ...

  5. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  6. Appium+python自动化(三十二)- 代码写死一时爽,框架重构火葬场 - PageObject+unittest(超详解)...

    简介 江湖有言:"代码写死一时爽,框架重构火葬场",更有人戏言:"代码动态一时爽,一直动态一直爽?",虽然听起来有点耸人听闻,但也没有想象中的那么严重,我们在开 ...

  7. 手写一个山寨版的springmvc框架

    文章目录 一,环境准备 二,项目结构搭建 三,简易版的前端控制器 DnDispatcherServlet 四,测试springmvc的性能 五,结束语 首先贴出来一张从网上copy下来的 spring ...

  8. jQuery系列 第八章 jQuery框架Ajax模块

    第八章 jQuery框架Ajax模块 8.1 jQuery框架中的Ajax简介 Ajax技术的核心是XMLHTTPRequest对象,该对象是Ajax实现的关键,发送异步请求.接收服务器端的响应以及执 ...

  9. 如何写一个Android inline hook框架

    Android_Inline_Hook https://github.com/GToad/Android_Inline_Hook_ARM64 有32和64的实现,但是是分离的,要用的话还要自己把两份代 ...

最新文章

  1. nf_conntrack: table full, dropping packet 解决方案
  2. Jsp-request与requestScope的区别
  3. 用 Go 语言实现 Raft 选主
  4. 计算机专业录取分数及大学排名,计算机专业录取分数最高的大学有哪些?附排名前50大学名单...
  5. Python静态类型解析工具简介和实践
  6. 拼接图像亮度均匀调整_品质不变 价格更香 | 爆款拼接屏新品上市
  7. 滑铁卢大学计算机科学双录取,滑铁卢大学双录取要求
  8. redhat rhel 7中如何切换中英文输入法。
  9. c#使用私有构造方法
  10. Python 简易实现 base64 编码
  11. QT上位机学习(一)
  12. 本地Windows环境下使用AWS DynamoDB
  13. MySQL基础学习(三)————SQL语句的常用操作
  14. DirectX11--实现一个3D魔方(1)
  15. matlab 机器人运动,matlab机器人运动计算
  16. Idea注释模板——让你的代码看起来更完美
  17. kaldi lesson教程示例
  18. 农产品追溯系统免费源代码分享及下载---第2篇
  19. 求2~n之间所有的质数及其个数
  20. 领导周末让我们加班时应该怎么应对

热门文章

  1. htmlcss全屏视频背景
  2. python获得用户输入的一段文字将这段文字进行垂直输出_Python练习题2020
  3. 系统servlet、request知识付费(List/Map/Set)小程序开发
  4. “蔚来杯“2022牛客暑期多校训练营7 L Maximum Range(强连通缩点+网络流输出方案)
  5. linux学习笔记(十一)-----linux中的虚拟机管理
  6. 文件上传漏洞初步解析(个人浅薄理解)
  7. Eclipse上red5插件安装
  8. vsftp配置详解篇
  9. 乐MAX 乐视X900_官方线刷包_救砖包_解账户锁
  10. 真势模态逻辑中的排中律