本帖最后由 freeznet 于 2009-9-23 04:40 编辑
花了一天的时间研究keete的uchome2.0的ajax技术流程研究心得跟大家分享
[https://discuz.dismall.com/viewthread.php?tid=1401814]
终于把晒秘密的系统搞得自己比较满意了...
回复使用ajax局部刷新,回复成功后自动从数据库读取新数据并且显示
增加了匿名的选项,你可以选择是不是发表匿名秘密
P.S:因为自己从来没接触也没学过PHP,所以有些代码可能显得比较多余
请大家见谅...
P.S2:GBK之前下载无法使用的请重新下载试试
P.S3:真心话插件暂时不发布...请不要购买错了附件!
XBOX360:修复了匿名回复通知用户的BUG,请自行修改...修改方法在下面
安装指南
请修改以下文件
=============source/function_cp.php=============
?>之前加入- //隐藏事件发布
- function feed_add_anonymous($icon, $title_template='', $title_data=array(), $body_template='', $body_data=array(), $body_general='', $images=array(), $image_links=array(), $target_ids='', $friend='', $appid='', $returnid=0) {
- global $_SGLOBAL;
- if(empty($appid)) {
- if(is_numeric($icon)) {
- $appid = 0;
- } else {
- $appid = UC_APPID;//本地
- }
- }
-
- $feedarr = array(
- 'appid' => $appid,
- 'icon' => $icon,
- 'uid' => 0,
- 'username' => $_SGLOBAL['supe_username'],
- 'dateline' => $_SGLOBAL['timestamp'],
- 'title_template' => $title_template,
- 'body_template' => $body_template,
- 'body_general' => $body_general,
- 'image_1' => empty($images[0])?'':$images[0],
- 'image_1_link' => empty($image_links[0])?'':$image_links[0],
- 'image_2' => empty($images[1])?'':$images[1],
- 'image_2_link' => empty($image_links[1])?'':$image_links[1],
- 'image_3' => empty($images[2])?'':$images[2],
- 'image_3_link' => empty($image_links[2])?'':$image_links[2],
- 'image_4' => empty($images[3])?'':$images[3],
- 'image_4_link' => empty($image_links[3])?'':$image_links[3],
- 'target_ids' => $target_ids,
- 'friend' => $friend,
- 'id' => $id,
- 'idtype' => $idtype
- );
-
- $feedarr = sstripslashes($feedarr);//去掉转义
- $feedarr['title_data'] = serialize(sstripslashes($title_data));//数组转化
- $feedarr['body_data'] = serialize(sstripslashes($body_data));//数组转化
- $feedarr['hash_template'] = md5($feedarr['title_template']."\t".$feedarr['body_template']);//喜好hash
- $feedarr['hash_data'] = md5($feedarr['title_template']."\t".$feedarr['title_data']."\t".$feedarr['body_template']."\t".$feedarr['body_data']);//合并hash
- $feedarr = saddslashes($feedarr);//增加转义
-
- //去重
- $query = $_SGLOBAL['db']->query("SELECT feedid FROM ".tname('feed')." WHERE uid='$feedarr[uid]' AND hash_data='$feedarr[hash_data]' LIMIT 0,1");
- if($oldfeed = $_SGLOBAL['db']->fetch_array($query)) {
- updatetable('feed', $feedarr, array('feedid'=>$oldfeed['feedid']));
- return 0;
- }
-
- //插入
- if($returnid) {
- return inserttable('feed', $feedarr, $returnid);
- } else {
- inserttable('feed', $feedarr);
- return 1;
- }
- }
复制代码 =============source/script_manage.js=============
文件最底部加入- //添加秘密评论
- function mimi_comment_add(mimi_id, result) {
- if(result) {
- var obj = $('mimi_comment_ul');
- var newli = document.createElement("div");
- var x = new Ajax();
- x.get('do.php?ac=ajax&op=mimicomment', function(s){
- newli.innerHTML = s;
- });
- if($('comment_prepend')){
- obj = obj.firstChild;
- while (obj && obj.nodeType != 1){
- obj = obj.nextSibling;
- }
- obj.parentNode.insertBefore(newli, obj);
- } else {
- obj.appendChild(newli);
- }
- if($('comment_message')) {
- $("comment_message").value = "";
- }
- showreward();
- //location.reload();
- }
- }
复制代码 =============source/do_ajax.php=============- } elseif($op == 'getfriendgroup') {
复制代码 前加入- } elseif($op == 'mimicomment'){
-
- $mimi_id = empty($_GET['mimi_id'])?0:intval($_GET['mimi_id']);
-
- if($mimi_id) {
- $cidsql = "mimi_id='$mimi_id' AND";
- $ajax_edit = 1;
- } else {
- $cidsql = '';
- $ajax_edit = 0;
- }
- //评论
- $list = array();
- $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('app_mimi_reply')." WHERE $cidsql uid='$_SGLOBAL[supe_uid]' ORDER BY dateline DESC LIMIT 0,1");
- while ($value = $_SGLOBAL['db']->fetch_array($query)) {
- include_once(S_ROOT.'./source/function_bbcode.php');
- $value['content'] = nl2br(bbcode(htmlspecialchars($value['content']))) ;
- realname_set($value['uid'], $value['username']);
- $list[] = $value;
- }
-
- realname_get();
复制代码 =============template/default/do_ajax.htm=============- <!--{elseif $op == 'getfriendgroup'}-->
复制代码 前加入- <!--{elseif $op == 'mimicomment'}-->
- <!--{loop $list $value}-->
- <!--{template /mimi/view_free/mimi_comment_li}-->
- <!--{/loop}-->
复制代码 插件文件下载
GBK版的我是用工具转的,具体能不能用不清楚....
如果有BUG请反馈给我,谢谢
9月21日更新BUG:
解决了IE6.0错位的问题...感谢hao123789指出
解决了删除秘密不转跳的问题,感谢pp336指出...
9月23日更新BUG
匿名回复后用户会收到回复通知
解决办法
修改mimi_cp.php中
搜索- if ($mimi_uid != $_SGLOBAL['supe_uid']) {
复制代码 替换成- if (($mimi_uid != $_SGLOBAL['supe_uid']) && ($mimi_anonymous == 0)) {
复制代码 实名发布秘密的Feed
匿名发布秘密的Feed
插件界面
各位可以帮忙去测试一下
http://home.zuiuk.com/
测试账号demo
测试密码demo
如果发现BUG希望告诉我,如果各位觉得已经比较完美,那么我就整理一下发布...
==============我叫分割线=============
还模仿川内网开发了一个真心话的插件...
晒秘密的测试系统里面也安装了真心话插件... |