uchome工作笔记--添加微新闻功能

微新闻功能介绍:

    微新闻即短小的新闻新闻,像新鲜事,微博一样。

   功能有:用户通过即时窗口发布,其他用户可以在第一条微新闻下的直接进行回复评论。

   在UCHOME中添加功能具体方法如下:

   1、建立发布微新闻的页面:

   以下是发布微新闻的发布框,可用更新个人签名的模块来修改。称为页面a.html

<div id="mood_wxwform">
	<form method="post" action="cp.php?ac=mnews" id="mood_addwxwform">
		<div id="mood_statusinput_wxw" class="statusinput_wxw"><textarea name="message" id="mood_message_wxw" οnclick="statusFace();" οnkeydοwn="if(event.keyCode == 13 ){ event.returnValue=false;event.cancel = true;$('mood_add_wxw').click();$('mood_message_wxw').value='';this.blur(); };" >你可以在这里发布你相关的所见所闻,分享给大家!</textarea></div>
		<div class="statussubmit_wxw">
			<input type="button" id="mood_add_wxw" name="add_wxw" value="发布" class="submit" style="display:block;" οnclick="ajaxpost('mood_addwxwform', 'reloadMood');$('mood_message_wxw').value='';" />
			<input type="hidden" name="addsubmit" value="true" />
			<input type="hidden" name="spacenote" value="true" />
			<input type="hidden" name="formhash" value="<!--{eval echo formhash();}-->" />
		</div>
		
	</form>
</div>
a.html显示微新闻部分:

<div id="mood_mystatus_wxw">
<!--{if $wxwlist}-->
<!--{loop $wxwlist $r}-->
<table style="width:620px; margin-top:10px;"><tr><td style="vertical-align:top; padding-top:5px; width:50px;"><!--{avatar($_SGLOBAL[supe_uid],small)}--></td>
<td style="vertical-align:top; padding-left:10px;">
<div style="height:auto; font-size:14px; color:#617d80; line-height:22px;"><span style="color:#124a83; font-weight:bold;">$r[username]</span>:$r[message]</div>
<br/>
<div style="height:25px; font-size:12px; color:#617d80; list-style:22px;">
  <!--{if empty($_TPL[hidden_time])}-->
		<span class="gray"><!--{date('m-d H:i',$r[dateline],1)}--></span>
		<!--{/if}-->
		</div>
</td></tr></table>
<!--{/loop}-->
<!--{if $count==$perpage}-->
	<div class="page" style="padding-top:20px;">
		<a href="javascript:;" οnclick="getmore();" id="a_feed_more">查看更多动态</a>
	</div>
	<!--{/if}-->
<!--{/if}-->
</div>
<div id="friendswxw" style="display:none;">
<!--{if $friendwxwlist}-->
<!--{loop $friendwxwlist $r}-->
<table style="width:620px; margin-top:10px;"><tr><td style="vertical-align:top; padding-top:5px; width:50px;"><!--{avatar($_SGLOBAL[supe_uid],small)}--></td>
<td style="vertical-align:top; padding-left:10px;">
<div style="height:auto; font-size:14px; color:#617d80; line-height:22px;"><span style="color:#124a83; font-weight:bold;">$r[username]</span>:$r[message]</div>
<br/>
<div style="height:25px; font-size:12px; color:#617d80; list-style:22px;">
  <!--{if empty($_TPL[hidden_time])}-->
		<span class="gray"><!--{date('m-d H:i',$r[dateline],1)}--></span>
		<!--{/if}-->
		 <span style="margin-left:15px; color:#124981;">
		
		(<a href="javascript:;" οnclick="dowxwcomment_get('dowxwcomment_$r[newsid]', 1);" id="dowxw_a_op_$r[newsid]">回复</a>)
		(<a href="cp.php?ac=share&type=blog&id=$blog[blogid]" id="a_share" οnclick="ajaxmenu(event, this.id, 1)" class="a_share">分享</a>)
</span></div>
<div id="dowxwcomment_$r[newsid]" style="display:none;"></div>
</td></tr></table>
<!--{/loop}-->
<!--{else}-->
<span class="gray">好友还没有发布微新闻!</span>
<!--{/if}-->
</div>

相应的a.php页面:

//分页
$perpage =5; //;$_SCONFIG['feedmaxnum']<50?50:$_SCONFIG['feedmaxnum'];
$start = 0;
if($_GET['pages']>1)
{
	$perpage=$perpage*$_GET['pages'];
	}
$perpage = mob_perpage($perpage);

$query= $_SGLOBAL['db']->query("SELECT a.newsid,a.username,a.uid,a.dateline,b.message FROM ".tname('m_news')." as a left join ".tname('m_newsfield')." as b on a.newsid=b.newsid where a.uid=".$space[uid]." order by dateline desc LIMIT $start,$perpage");
$count = $filtercount = 0;
$wxwlist=array();
while ($value=$_SGLOBAL['db']->fetch_array($query)) {
		
			$wxwlist[] = $value;
			$count++;
		};


调用的JS代码,也同样用个性签名的来做修改:

<script type="text/javascript">
	function statusFace() {
		if($('mood_message_wxw').value == '你可以在这里发布你相关的所见所闻,分享给大家!'){
			$('mood_message_wxw').value = '';
		}
		$('mood_statusinput_wxw').style.zIndex = '20000';
		$('mood_statusinput_wxw').className = 'statusinput2_wxw';
		
		
		var div = $('mood_face_bg');
		if(div) {
			div.parentNode.removeChild(div);
		}
		div = document.createElement('div');
		div.id = 'mood_face_bg';
		div.style.position = 'absolute';
		div.style.left = div.style.top = '0px';
		div.style.width = '100%';
		div.style.height = document.body.scrollHeight + 'px';
		div.style.backgroundColor = '#000';
		div.style.zIndex = 10000;
		div.style.display = 'none';
		div.style.filter = 'alpha(opacity=0)';
		div.style.opacity = 0;
		div.onclick = function() {
			hiddenstatus();
		}
		$('append_parent').appendChild(div);
	
	
		if($('mood_message_wxw_menu') != null) {
			$('mood_message_wxw_menu').style.display = '';
			$('mood_add_wxw').style.display = '';
		} else {
			var faceDiv = document.createElement("div");
			faceDiv.id = 'mood_message_wxw_menu';
			faceDiv.className = 'facebox';
			faceDiv.style.position = 'absolute';
			var faceul = document.createElement("ul");
			for(i=1; i<31; i++) {
				getStatusFace(i, faceul);	
			}
			faceDiv.appendChild(faceul);
			$('append_parent').appendChild(faceDiv);
		}
		//定位菜单
		setMenuPosition('mood_message_wxw', 0);
		div.style.display = '';
	}
	
	function hiddenstatus() {
		$('mood_message_wxw_menu').style.display = 'none';
		$('mood_face_bg').style.display = 'none';
		$('mood_statusinput_wxw').className = 'statusinput_wxw';
		if($('mood_message_wxw').value == ''){
			$('mood_message_wxw').value = '你可以在这里发布你相关的所见所闻,分享给大家!';
		}
		$('mood_statusinput_wxw').style.zIndex = '1';
	}
	
	function getStatusFace(i, faceul) {
		var faceli = document.createElement("li");
		faceli.innerHTML = '<img src="image/face/'+i+'.gif" style="cursor:pointer; position:relative;" />';
		faceli.getElementsByTagName('img').item(0).onclick = function(){var faceText = '[em:'+i+':]'; if($('mood_message_wxw') != null) { insertContent('mood_message_wxw', faceText); }};
		faceul.appendChild(faceli);
	}
	
	function reloadMood(showid, result) {
		var x = new Ajax();
		x.get('cp.php?ac=mnews&op=getwxw', function(s){
			$('mood_mystatus_wxw').innerHTML = s;
		});
		//提示获得积分
		showreward();
		hiddenstatus();
	}
</script>

以上就完成了发布框的与微新闻信息的显示。

接下来看如果发布微新闻:

当点击发布按钮时:

<input type="button" id="mood_add_wxw" name="add_wxw" value="发布" class="submit" style="display:block;" οnclick="ajaxpost('mood_addwxwform', 'reloadMood');$('mood_message_wxw').value='';" />
表单提交到mnews.php:
<form method="post" action="cp.php?ac=mnews" id="mood_addwxwform">
mnews.php代码部分:

if(submitcheck('addsubmit')) {
	if(empty($mnews['newsid'])) 
	{
		$mnews = array();
	}
	else
	{
		if(!checkperm('allowmblog'))
		{
			ckspacelog();
			showmessage('no_authority_to_add_log');
		}
	}

	include_once(S_ROOT.'./source/function_mnews.php');
	//入库
	if($newmnews = mnews_post($_POST, $mnews)) {
		
			$aa="1";
	 }
}
至此发布功能完成。

接下来是回复,回复延用动态信息的回复框:

<span id="dowxwcomment_form_{$newsid}_{$id}">
	<form id="dowxwcommform_{$newsid}_{$id}" method="post" action="cp.php?ac=comment" style="padding-left:10px;">
		<a href="#" id="do_face_{$newsid}_{$id}" title="插入表情" οnclick="showFace(this.id, 'do_message_{$newsid}_{$id}');return false;"><img src="image/facelist.gif" align="absmiddle" /></a>
		<input type="text" id="do_message_{$newsid}_{$id}" name="message" size="35" class="t_input" οnkeydοwn="return ctrlEnter(event, 'dowxwcommform_btn_{$newsid}_{$id}', 1);">
		<input type="hidden" name="commentsubmit" value="true" />
        <input type="hidden" name="idtype" value="newsid">
         <input type="hidden" name="id" value="{$newsid}">
		<input type="button" name="do_button" class="submit" id="dowxwcommform_btn_{$newsid}_{$id}" οnclick="ajaxpost('dowxwcommform_{$newsid}_{$id}', 'dowxwcomment_get', 1)" value="回复">
		<button type="button" name="btncancel" class="button" οnclick="dowxwcomment_form_close($newsid, $id);">取消</button>
		<input type="hidden" name="formhash" value="<!--{eval echo formhash();}-->" />
	</form>
	<div id="__dowxwcommform_{$newsid}_{$id}"></div>
	</span>
以上表单,提交到
action="cp.php?ac=comment",完成入库,统计,权限判断等操作后返回请求页面 
if($_POST['idtype']=='newsid')
    {
        $url='cp.php?ac=mnews&op=getcomment';
        }
    showmessage($msg, $url, 0, $magvalues);


回复功能完成!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值