添加了Gravatar头像引用,添加了用户组的session信息放置
This commit is contained in:
parent
bdcf1e824e
commit
1ff46e39b1
|
@ -292,6 +292,8 @@ class Admin_UserController extends Zend_Controller_Action
|
||||||
$groupsTable = "groups";
|
$groupsTable = "groups";
|
||||||
$userGroupTable = "usergroup";
|
$userGroupTable = "usergroup";
|
||||||
$nameField = $paramName = "name";
|
$nameField = $paramName = "name";
|
||||||
|
include_once("User.php");
|
||||||
|
$u = new User($this->db);
|
||||||
|
|
||||||
if(empty($ac) || $ac == "index")
|
if(empty($ac) || $ac == "index")
|
||||||
{
|
{
|
||||||
|
|
|
@ -174,8 +174,19 @@ class AccountController extends Zend_Controller_Action
|
||||||
$result = $auth->authenticate($authAdapter);
|
$result = $auth->authenticate($authAdapter);
|
||||||
if ($result->isValid()) {
|
if ($result->isValid()) {
|
||||||
|
|
||||||
// success: store database row to auth's storage
|
// success: store database row to auth's storage
|
||||||
$data = $authAdapter->getResultRowObject(null,'password');
|
$data = $authAdapter->getResultRowObject(null,'password');
|
||||||
|
|
||||||
|
//头像
|
||||||
|
include_once("Avatar.php");
|
||||||
|
$avatar = new Avatar();
|
||||||
|
$data->avatar = $avatar->Get($data->email,40);
|
||||||
|
|
||||||
|
//组ID
|
||||||
|
include_once("Users.php");
|
||||||
|
$usr = new Users($db);
|
||||||
|
$data->gid = $usr->getGroup($data->id);
|
||||||
|
|
||||||
$auth->getStorage()->write($data);
|
$auth->getStorage()->write($data);
|
||||||
$db->query("update users set ts_last_login=now() where username=?",array($u));
|
$db->query("update users set ts_last_login=now() where username=?",array($u));
|
||||||
|
|
||||||
|
|
|
@ -877,12 +877,14 @@ class DataController extends Zend_Controller_Action
|
||||||
$paginator->setView($this->view);
|
$paginator->setView($this->view);
|
||||||
Zend_View_Helper_PaginationControl::setDefaultViewPartial('data/pagination_ajax.phtml');
|
Zend_View_Helper_PaginationControl::setDefaultViewPartial('data/pagination_ajax.phtml');
|
||||||
|
|
||||||
|
include_once("Avatar.php");
|
||||||
|
$avatar = new Avatar();
|
||||||
if ($paginator)
|
if ($paginator)
|
||||||
{
|
{
|
||||||
foreach($paginator as $c)
|
foreach($paginator as $c)
|
||||||
{
|
{
|
||||||
//$author=$this->view->escape($c['author']);
|
//$author=$this->view->escape($c['author']);
|
||||||
$sql = "SELECT cr.id,cr.content as body,cr.reply,u.username,cr.ts_created,u.usertype,
|
$sql = "SELECT cr.id,cr.content as body,cr.reply,u.username,cr.ts_created,u.usertype,u.email as email,
|
||||||
(SELECT au.uuid FROM mdauthor au WHERE au.userid=u.id AND au.uuid='$uuid') as uuid
|
(SELECT au.uuid FROM mdauthor au WHERE au.userid=u.id AND au.uuid='$uuid') as uuid
|
||||||
FROM comments cr
|
FROM comments cr
|
||||||
LEFT JOIN users u ON cr.userid=u.id
|
LEFT JOIN users u ON cr.userid=u.id
|
||||||
|
@ -918,11 +920,16 @@ class DataController extends Zend_Controller_Action
|
||||||
</div>";
|
</div>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$author=$c['author'];
|
|
||||||
$author=($c['userid'])?"<strong>".$author."</strong>":$author;
|
$img = $avatar->Get($c['email'],30);
|
||||||
$author=($c['url'])?'<a href="'.$c['url'].'">'.$author.'</a>':$author;
|
$img = '<img src="'.$img.'" />';
|
||||||
|
|
||||||
|
$author = $c['author'];
|
||||||
|
$author = ($c['url'])?'<a href="'.$c['url'].'">'.$author.'</a>':$author;
|
||||||
|
$author = '<div class="post_name">'.$author."</div>";
|
||||||
|
$time = '<div class="post_time">发表于'.date('Y-m-d H:i:s',strtotime($c['ts_created'])).'</div>';
|
||||||
print "
|
print "
|
||||||
<div class='comment-content'><span class='title'>".$author." 发表于".date('Y-m-d H:i:s',strtotime($c['ts_created']))."</span>
|
<div class='comment-content'><div class='title'>".$img.$author.$time."</div>
|
||||||
<p>".($c['content'])."</p>
|
<p>".($c['content'])."</p>
|
||||||
$replyhtml
|
$replyhtml
|
||||||
</div>";
|
</div>";
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
class Avatar{
|
||||||
|
|
||||||
|
public $def_img = "http://www.gravatar.com/avatar/";
|
||||||
|
|
||||||
|
function Get( $email, $size='' ) {
|
||||||
|
|
||||||
|
$default = $this->def_img;
|
||||||
|
|
||||||
|
if(empty($size))
|
||||||
|
{
|
||||||
|
$size = 40;
|
||||||
|
}
|
||||||
|
|
||||||
|
$url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
|
||||||
|
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,6 +33,7 @@
|
||||||
// add an exception so guests can log in or register
|
// add an exception so guests can log in or register
|
||||||
// in order to gain privilege
|
// in order to gain privilege
|
||||||
$this->acl->allow('guest', 'account', array('login',
|
$this->acl->allow('guest', 'account', array('login',
|
||||||
|
'logout',
|
||||||
'fetchpwd',
|
'fetchpwd',
|
||||||
'register',
|
'register',
|
||||||
'registercomplete'));
|
'registercomplete'));
|
||||||
|
@ -59,10 +60,11 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
$phpSessId = $request->getParam('PHPSESSID');
|
$phpSessId = $request->getParam('PHPSESSID');
|
||||||
|
|
||||||
if (!empty($phpSessId) && session_id() != $phpSessId) {
|
if (!empty($phpSessId) && session_id() != $phpSessId) {
|
||||||
session_destroy();
|
session_destroy();
|
||||||
session_id($phpSessId);
|
session_id($phpSessId);
|
||||||
session_start();
|
session_start();
|
||||||
}
|
}
|
||||||
// check if a user is logged in and has a valid role,
|
// check if a user is logged in and has a valid role,
|
||||||
// otherwise, assign them the default role (guest)
|
// otherwise, assign them the default role (guest)
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Users 用户相关操作
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Users
|
||||||
|
{
|
||||||
|
|
||||||
|
private $db;//传入PDO对象
|
||||||
|
|
||||||
|
//使用到的公共变量
|
||||||
|
public $tbl_user = "users";
|
||||||
|
public $tbl_group = "groups";
|
||||||
|
public $tbl_userToGroup = "usergroup";
|
||||||
|
|
||||||
|
function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取用户的组ID
|
||||||
|
public function getGroup($uid=0){
|
||||||
|
|
||||||
|
if(!empty($uid) && is_numeric($uid))
|
||||||
|
{
|
||||||
|
$sql = "SELECT gid FROM ".$this->tbl_userToGroup." WHERE uid=$uid";
|
||||||
|
$rs = $this->db->query($sql);
|
||||||
|
$row = $rs->fetch();
|
||||||
|
return $row['gid'];
|
||||||
|
}else{
|
||||||
|
$select = $this->db->select();
|
||||||
|
return $select ->from($this->tbl_group)
|
||||||
|
->order('groups.id desc');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取组名
|
||||||
|
public function getGroupName($gid){
|
||||||
|
|
||||||
|
if(!is_numeric($gid))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT * FROM ".$this->tbl_group." WHERE id=$gid";
|
||||||
|
$rs = $this->db->query($sql);
|
||||||
|
$row = $rs->fetch();
|
||||||
|
|
||||||
|
return $row['name'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//创建用户组
|
||||||
|
public function CreateGroup($name){
|
||||||
|
|
||||||
|
$groupTable = $this->tbl_group;
|
||||||
|
|
||||||
|
if(empty($name))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
"name" => $name
|
||||||
|
);
|
||||||
|
|
||||||
|
return $this->db->insert($groupTable,$data);
|
||||||
|
}
|
||||||
|
|
||||||
|
//把用户移动到组
|
||||||
|
public function AddTo($uid,$gid){
|
||||||
|
|
||||||
|
if(!is_numeric($uid) || !is_numeric($gid))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT * FROM ".$this->tbl_userToGroup." WHERE uid=? AND gid=?";
|
||||||
|
|
||||||
|
$sth = $this->db->prepare($sql);
|
||||||
|
|
||||||
|
$sth->execute(array($uid,$gid));
|
||||||
|
|
||||||
|
$row = $sth->fetch();
|
||||||
|
|
||||||
|
if(!empty($row['ts_created']))
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
"uid"=>$uid,
|
||||||
|
"gid"=>$gid
|
||||||
|
);
|
||||||
|
$whereSql = " uid=$uid AND gid=$gid ";
|
||||||
|
return $this->db->update($this->tbl_userToGroup,$data,$whereSql);
|
||||||
|
}else{
|
||||||
|
$data = array(
|
||||||
|
"uid"=>$uid,
|
||||||
|
"gid"=>$gid
|
||||||
|
);
|
||||||
|
return $this->db->insert($this->tbl_userToGroup,$data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -51,8 +51,12 @@ h2{clear:both;}
|
||||||
|
|
||||||
label{float:left;text-align:right;width:100px;padding-right:20px;}
|
label{float:left;text-align:right;width:100px;padding-right:20px;}
|
||||||
#allcomments li{display:block;border:1px solid #aaa;white-space:wrap;width:100%;overflow:hidden;}
|
#allcomments li{display:block;border:1px solid #aaa;white-space:wrap;width:100%;overflow:hidden;}
|
||||||
#allcomments span.title {background:#dfdfdf;display:block;padding-left:10px;line-height:20px;}
|
#allcomments div.title,#allcomments span.title {background:#dfdfdf;display:block;padding-left:10px;line-height:20px;}
|
||||||
.comment-content{display:block;border:1px solid #aaa;text-indent:2em;width:98%;margin:5px 0 0 0;}
|
.comment-content{display:block;border:1px solid #aaa;text-indent:2em;width:98%;margin:5px 0 0 0; overflow:hidden;}
|
||||||
|
.comment-content .title{overflow:hidden;width:100%;}
|
||||||
|
.comment-content .title img{height:30px;float:left; padding:0px;margin:0px;}
|
||||||
|
.comment-content div.title .post_name{width:80%;margin:0px;padding:0px;line-height:15px;overflow:hidden;}
|
||||||
|
.comment-content div.title .post_time{width:80%;margin:0px;padding:0px;line-height:15px;overflow:hidden;}
|
||||||
|
|
||||||
.attach img {height:20px;vertical-align:middle;}
|
.attach img {height:20px;vertical-align:middle;}
|
||||||
.thumb {float:left;width:250px;height:200px;}
|
.thumb {float:left;width:250px;height:200px;}
|
||||||
|
|
Loading…
Reference in New Issue