db=Zend_Registry::get('db'); $this->view->config = Zend_Registry::get('config'); $this->messenger=$this->_helper->getHelper('FlashMessenger'); $this->view->messages = $this->messenger->getMessages(); } function postDispatch() { $this->view->messages = $this->messenger->getMessages(); } function indexAction() { $sql="select count(id) as total from users"; $uq=$this->db->query($sql); $row=$uq->fetch(); $sqlt="select count(id) as total from users where usertype='administrator'"; $uqt=$this->db->query($sqlt); $adminrow=$uqt->fetch(); $this->view->su=$row; $this->view->suadmin=$adminrow; }//indexAction function listAction() { $select=$this->db->select(); $select->from('users') ->where('usertype = ?', 'member') ->order('users.id desc'); $paginator = Zend_Paginator::factory($select); $paginator->setCurrentPageNumber($this->_getParam('page')); $paginator->setItemCountPerPage(30); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml'); $this->view->paginator=$paginator; }//listAction function searchAction() { $search = $this->_getParam('search'); $realname = $this->view->realname = $this->_getParam('realname'); $unit = $this->view->unit = $this->_getParam('unit'); $project = $this->view->project = $this->_getParam('project'); $select=$this->db->select(); if(!empty($search) && ( !empty($realname) || !empty($unit) || !empty($project) )) { $this->messenger->addMessage('搜索结果'); $select->from('users'); if(!empty($realname)) { $select->where('realname like ? ', '%'.$realname.'%'); $select->orWhere('username like ? ', '%'.$realname.'%'); } if(!empty($unit)) $select->where('unit like ? ', '%'.$unit.'%'); if(!empty($project)) $select->where('project like ? ', '%'.$project.'%'); $select->order('users.id desc'); $paginator = Zend_Paginator::factory($select); $paginator->setCurrentPageNumber($this->_getParam('page')); $paginator->setItemCountPerPage(30); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); $this->view->paginator=$paginator; $this->_helper->viewRenderer('list'); } else { $this->_redirect("/admin/user/list"); } }//searchAction function deleteAction() { $delete=(int)$this->_getParam('id'); $deletename = $this->_getParam('uname'); if (isset($delete)) { $sql="delete from users where id=?"; try { $this->db->query($sql,array($delete)); $this->messenger->addMessage('您已经成功的删除了用户:'.$deletename); } catch (Exception $e) { $this->messenger->addMessage($e->getMessage()); } $this->_redirect("/admin/user/list"); } } function adminlistAction() { $select=$this->db->select(); $select->from('users') ->where('usertype = ?', 'administrator') ->order('users.id desc'); $paginator = Zend_Paginator::factory($select); $paginator->setCurrentPageNumber($this->_getParam('page')); $paginator->setItemCountPerPage(30); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml'); $this->view->paginator=$paginator; } function showAction() { $id=(int)$this->_getParam('id'); if (isset($id)) { try { $sql="select * from users where id=?"; $result=$this->db->query($sql,$id); $rows = $result->fetch(); $this->view->infos=$rows; } catch (Exception $e) { $this->messenger->addMessage($e->getMessage()); } } else { $this->_redirect("/admin/user/list"); } }//showAction() function upAction() { $id=(int)$this->_getParam('id'); if (isset($id)) { try { $sql="select u.*,m.id as mid from users u left join mdexperts m on m.id=u.id where u.id='$id'"; $result = $this->db->query($sql); $ex = $result->fetch(); if(empty($ex['mid'])){ $submit=$this->_getParam('submit'); $speciality = $this->_getParam('speciality'); if($submit) { $sql="insert into mdexperts (id,speciality) values ('$id','$speciality')"; if($this->db->exec($sql)>0) { $this->messenger->addMessage('已经成功将用户提升为评审专家'); $this->_redirect("/admin/user/list"); } } else { $this->view->infos = $ex; } }else { $this->messenger->addMessage("该用户已经是评审专家"); $this->_redirect("/admin/user/list"); } } catch (Exception $e) { $this->messenger->addMessage($e->getMessage()); $this->_redirect("/admin/user/list"); } } else { $this->_redirect("/admin/user/list"); } }//upAction() 把用户提升为评审专家 function editAction() { $id=(int)$this->_getParam('id'); $usertype=$this->_getParam('usertype'); $newpwd=$this->_getParam('newpwd'); $cfnewpwd=$this->_getParam('cfnewpwd'); $sql=""; $updates=array(); if (isset($id)) { if(!empty($newpwd)&&!empty($cfnewpwd)) { if($newpwd==$cfnewpwd) { $password=md5($newpwd); $updates[]="password='$password'"; } else { $this->messenger->addMessage('两次密码不相同'); $this->_redirect("/admin/user/show/id/$id"); } } if(isset($usertype)) { $updates[]="usertype='$usertype'"; } $update=join(',',$updates); $sql="update users set $update where id='$id'"; try { $this->db->query($sql); $this->messenger->addMessage('编辑成功!'); } catch (Exception $e) { $this->messenger->addMessage($e->getMessage()); } $this->_redirect("/admin/user/show/id/$id"); } else { $this->_redirect("/admin/user/list"); } } function fetchpwdAction() { $id=(int)$this->_getParam('id'); $email=$this->_getParam('email'); if (!empty($email)) { try { $sql="select * from users where email=?"; $uq=$this->db->query($sql,$email); if ($urow=$uq->fetch()) { //email the url to user $username=$urow['username']; $sql="update users set activation=? where email=?"; $uid=uniqid(); $this->db->query($sql,array($uid,$email)); $mail=new WestdcMailer($this->view->config->smtp); $body="尊敬的西部数据中心用户: 有人提出了针对此用户名的密码重置请求。 用户名:"; $body.=$username; $body.=" 若想重置您的密码请打开下面的链接,否则请忽略此邮件,一切如常。 "; $body.="http://westdc.westgis.ac.cn/account/fetchpwd/".$username."/".$uid; $mail->setBodyText($body); $mail->setFrom($this->view->config->service->email,'西部数据中心服务组'); $mail->addTo($email); $mail->setSubject('密码已重置'); $mail->send(); $this->messenger->addMessage('密码重置成功!'); } } catch (Exception $e) { $this->messenger->addMessage($e->getMessage().$email); } $this->_redirect("/admin/user/show/id/$id"); } else { $this->_redirect("/admin/user/list"); } } //overview }