コード例 #1
0
ファイル: module.php プロジェクト: jjonline/J4
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 
}
コード例 #2
0
 /**
  * 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跳转
     }
 }