function blog_comments($comments, $comnum, $nowCommentPage) { extract($comments); if (!$commentStacks || !$comnum) { return ''; } $page = intval($nowCommentPage); $isCommentPage = Option::get('comment_paging') == 'y'; #bool $CommentPageNum = intval(Option::get('comment_pnum')); #int ?> <!--ol class="parents"--> <?php // dump($comments); $isGravatar = Option::get('isgravatar'); #处理会员评论等信息 多次foreach为的是能In查询 减轻mysql压力 $Adm = getAdminUserInfo(); $MailArr = array(); foreach ($comments as $keys => $vals) { $comments[$keys]['figure'] = J_getGravatar($vals['mail']); if (in_array($vals['mail'], $Adm)) { $comments[$keys]['role'] = 'c_admin'; $comments[$keys]['roledes'] = '管理员'; continue; } $comments[$keys]['role'] = 'c_visiter'; #默认访客 $comments[$keys]['roledes'] = '游客'; $MailArr[] = $vals['mail']; } $MailArr = array_unique($MailArr); // dump($comments); #过滤掉的数据读取是否有Juser注册用户 if ($MailArr) { $JuserInfo = Juser::getUserInfoByMail($MailArr); // dump($JuserInfo); if ($JuserInfo) { foreach ($comments as $key => $val) { foreach ($JuserInfo as $ukey => $uval) { if ($val['mail'] == $uval['mail']) { $comments[$key]['role'] = 'c_user'; $comments[$key]['roledes'] = '注册会员'; #处理会员头像 switch ($uval['use_type']) { case 'q': $comments[$key]['figure'] = $uval['qq_figure']; $comments[$key]['poster'] = $uval['qq_name']; break; case 'w': $comments[$key]['figure'] = $uval['sina_figure']; $comments[$key]['poster'] = $uval['sina_name']; #昵称合法性在会员中心检测 break; default: #默认情况:未设置 检测qq、wb头像是否存在 否则gravator if ($uval['qq_openid']) { $comments[$key]['figure'] = $uval['qq_figure']; $comments[$key]['poster'] = $uval['qq_name']; } else { if ($uval['sina_openid']) { $comments[$key]['figure'] = $uval['sina_figure']; $comments[$key]['poster'] = $uval['sina_name']; } } break; } } } } } } // dump($comments); #会员信息处理结束 foreach ($commentStacks as $key => $cid) { $comment = $comments[$cid]; $isNofollow = isset($comment['url']) && false === strpos($comment['url'], rtrim(BLOG_URL, '/')) ? 'rel="external nofollow"' : ''; $comment['poster'] = $comment['url'] ? '<a href="' . $comment['url'] . '" target="_blank" ' . $isNofollow . '>' . $comment['poster'] . '</a>' : $comment['poster']; ?> <li class="comment dpt_line" id="comment-<?php echo $comment['cid']; ?> "> <span class="comment_floor"> <?php #输出楼层 按分页来计算 if ($isCommentPage) { #评论分页 $nowFlooer = $CommentPageNum * ($page - 1) + $key + 1; } else { $nowFlooer = $key + 1; } echo '#' . $nowFlooer; ?> </span> <a name="<?php echo $comment['cid']; ?> "></a> <?php if ($isGravatar == 'y') { echo '<div class="avatar"><img src="' . TEMPLATE_URL . 'images/noAvator.jpg" data-src="' . $comment['figure'] . '" /></div>'; } else { echo '<div class="avatar"><img src="' . TEMPLATE_URL . 'images/noAvator.jpg" /></div>'; } ?> <div class="comment-info"> <div class="comment-content"><p><?php echo comment2emoji($comment['content']); ?> </p></div> <div class="comment-meata"><span class="comment-poster <?php echo $comment['role']; ?> " title="<?php echo $comment['roledes']; ?> "><?php echo $comment['poster']; ?> </span> <span class="comment-time"><?php if (strtotime($comment['date'])) { echo timeago(strtotime($comment['date'])); } else { echo str_replace(' ', '', $comment['date']); } ?> </span> <a href="#comment-<?php echo $comment['cid']; ?> " onclick="commentReply(<?php echo $comment['cid']; ?> ,this)" class="comment-reply-btn">回复</a></div> </div> <?php blog_comments_children($comments, $comment['children']); ?> </li> <?php } ?> <!--/ol--> <div class="page comment-page"> <?php echo $commentPageUrl; ?> </div> <?php }
/** * Juser登录处理器 * @param null * @return mixed */ public function doLogin($isLogin = null) { if ($isLogin) { if (IS_POST && IS_AJAX) { #客户端执行刷新页面指令 $this->ajaxReturn(array('code' => '500', 'info' => '已登录')); } emDirect(BLOG_URL . '?plugin=juser&a=UserCenter'); #get方式 301跳转 } else { #post+ajax 处理登录请求(可能存在客户端js运行异常的情况 TODO暂不处理) if (IS_POST && IS_AJAX) { if (!$this->__Token(true)) { $this->ajaxReturn(array('code' => '500', 'info' => 'Token Error.')); } #路由类检测并获取数据 $userLoginData = JuserRouter::getInputData('login'); if ($userLoginData && isset($userLoginData['mail']) && isset($userLoginData['password'])) { #读取该用户数据 $hasUser = Juser::getUserInfoByMail($userLoginData['mail']); #不存在该用户 if (!$hasUser) { $this->ajaxReturn(array('code' => '501', 'info' => '该会员不存在')); } #比对密码 $checkResult = Juser::checkPassword($userLoginData['password'], $hasUser['password']); #密码错误 if (!$checkResult) { $this->ajaxReturn(array('code' => '501', 'info' => '密码效验失败')); } #给予登录状态 Juser::setAuthCookie($hasUser['id']); #可能存在的开放平台数据写入并效验 if (isset($_SESSION['OpenUserInfo']) && !empty($_SESSION['OpenUserInfo'])) { $OpenUserInfo = $_SESSION['OpenUserInfo']; $key = $OpenUserInfo['type'] . '_name'; /*=====检测登录的账号该开放平台数据的合理性=====*/ $hasOpenUser = Juser::getUserInfoByOpenID($OpenUserInfo['type'], $OpenUserInfo['_pk']); unset($_SESSION['OpenUserInfo']); #没有绑定过 直接写数据 if (empty($hasUser[$key]) && !$hasOpenUser) { #更新绑定数据 $JuserModel = Juser::getJuserModel(); unset($OpenUserInfo['type'], $OpenUserInfo['_pk'], $OpenUserInfo['typeName']); $OpenUserInfo['id'] = $hasUser['id']; $ret = $JuserModel->data($OpenUserInfo)->save(); if ($ret) { $this->ajaxReturn(array('code' => '200', 'info' => '登录并绑定成功')); } } #其他情况::绑定写入数据失败、登录的用户已绑定过或极端情况:开放平台用户已经存在了 $this->ajaxReturn(array('code' => '200', 'info' => '登录成功,但绑定失败')); } unset($_SESSION['__TOKEN__'], $_SESSION['__TOKEN_EXPIRE__']); $this->ajaxReturn(array('code' => '200', 'info' => '登录成功')); } $this->ajaxReturn(array('code' => '501', 'info' => '密码格式错误')); } #此处不再处理兼容性::Get方式提交的登录请求不处理 emDirect(BLOG_URL . '?plugin=juser'); #get方式 301跳转 } }