diff --git a/application/default/controllers/DataController.php b/application/default/controllers/DataController.php index 0b5e9252..41d34bc2 100755 --- a/application/default/controllers/DataController.php +++ b/application/default/controllers/DataController.php @@ -190,18 +190,18 @@ class DataController extends Zend_Controller_Action function tagAction() { $id = (int)$this->_request->getParam('id'); - $key = $this->_request->getParam('key'); + $key = $this->_request->getParam('key'); $keytype = $this->_request->getParam('keytype'); $page=(int)$this->_request->getParam('page'); if (empty($page)) $page=1; $limit=10; - $offset=$limit*($page-1); - $sql='select keyword,count(*),keytype from keyword '; - if (!empty($keytype) && ($keytype=='place' || $keytype=='theme' || $keytype=='discipline'||$keytype=='temporal')) $sql.=" where keytype='".$keytype."'"; + $offset=$limit*($page-1); + $sql='select keyword,count(*),keytype from keyword '; + if (!empty($keytype) && ($keytype=='place' || $keytype=='theme' || $keytype=='discipline'||$keytype=='temporal')) $sql.=" where keytype='".$keytype."'"; $sql.=' group by keyword,keytype order by keytype,keyword,count desc'; $state=$this->db->query($sql); $this->view->keywords=$state->fetchAll(); - + if ($id>0 or !empty($key)) { if (empty($key)) { $where=$this->db->quoteInto('id = ?',$id); @@ -209,7 +209,7 @@ class DataController extends Zend_Controller_Action $key=$row->name; } $this->view->codename=$key; - $sql=$this->db->quoteInto('select count(m.id) from normalmetadata m,keyword k where m.id=k.id and k.keyword=?',$key); + $sql=$this->db->quoteInto('select count(m.id) from normalmetadata m,keyword k where m.id=k.id and k.keyword=?',$key); $state=$this->db->query($sql); $row=$state->fetchAll(); @@ -650,6 +650,10 @@ class DataController extends Zend_Controller_Action } } $this->view->data_archives = $data_archives; + //支持项目 + include_once("data/Fund.php"); + $fund = new Fund($this->db); + $this->view->fund = $fund->fetch($uuid); //自动跳转 $sql="select s.* from datasource d left join source s on d.sourceid=s.id where d.uuid=?"; @@ -1940,16 +1944,16 @@ class DataController extends Zend_Controller_Action public function jsonexit($data){ $this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK)); return true; - } - function organizationAction() - { - $page = $this->_request->getParam('page'); - $name = $this->_request->getParam('name'); - $state=$this->db->query("select distinct responsible.organisation from responsible left join role on role.resid=responsible.id where role.role in ('pointOfContact','resourceProvider','owner')"); - $this->view->organisation=$state->fetchAll(); - if (!empty($name)) { - $this->view->codename=$name; - $sql="select distinct m.* from normalmetadata m left join role r on m.uuid=r.uuid left join responsible s on r.resid=s.id where r.role in ('pointOfContact','resourceProvider','owner') and s.organisation=?"; + } + function organizationAction() + { + $page = $this->_request->getParam('page'); + $name = $this->_request->getParam('name'); + $state=$this->db->query("select distinct responsible.organisation from responsible left join role on role.resid=responsible.id where role.role in ('pointOfContact','resourceProvider','owner')"); + $this->view->organisation=$state->fetchAll(); + if (!empty($name)) { + $this->view->codename=$name; + $sql="select distinct m.* from normalmetadata m left join role r on m.uuid=r.uuid left join responsible s on r.resid=s.id where r.role in ('pointOfContact','resourceProvider','owner') and s.organisation=?"; $sth = $this->db->prepare($sql); $sth->execute(array($name)); $rows = $sth->fetchAll(); @@ -1958,10 +1962,10 @@ class DataController extends Zend_Controller_Action $paginator->setItemCountPerPage(10); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); - $this->view->paginator=$paginator; - } else { - //提供全部分类列表 - } + $this->view->paginator=$paginator; + } else { + //提供全部分类列表 + } } } diff --git a/application/default/views/scripts/data/view.phtml b/application/default/views/scripts/data/view.phtml index b9ced8d0..5ce67f00 100755 --- a/application/default/views/scripts/data/view.phtml +++ b/application/default/views/scripts/data/view.phtml @@ -82,9 +82,18 @@ if ($md->title_en) echo '
'.$this->escape($md->title_en);?>
- suppinfo) : ?> + suppinfo || $this->fund) : ?>

资助项目

+ suppinfo)) { ?> '.str_replace(array("\r\n", "\n", "\r"),'

',$this->escape($md->suppinfo)).'

';?> + + fund)) { ?> + fund as $k=>$v) { ?> + + +
resources) : ?> diff --git a/application/models/data/Fund.php b/application/models/data/Fund.php index 98d4b3a3..1704e993 100644 --- a/application/models/data/Fund.php +++ b/application/models/data/Fund.php @@ -1,227 +1,227 @@ -db = $db; - $this->auth = $auth; - } - - function fetch($uuid = "",$include = true,$uid=0){ - if(empty($uuid)) - { - if(empty($uid)) - { - $sql = "SELECT * FROM ".$this->tbl_fund." ORDER BY id DESC"; - }else{ - $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid ORDER BY id DESC"; - } - $rs = $this->db->query($sql); - $rows = $rs->fetchAll(); - return $rows; - }else{ - $wheresql = array(); - - if($include) - { - $wheresql[] = " mf.uuid='$uuid' "; - }else{ - $fids = $this->getMdFunds($uuid); - if(count($fids)>0) - { - $wheresql[] = ' f.id NOT IN ('.join(",",$fids).')'; - } - } - if(!empty($uid) && is_int($uid)) - { - $wheresql[] = " f.userid='$uid' "; - } - - if(count($wheresql)>0) - { - $wheresql = " WHERE ".join(" AND ",$wheresql); - }else{ - $wheresql = ""; - } - - if($include) - { - $sql = "SELECT f.*,mf.place,mf.id as mfid FROM ".$this->tbl_fund." f - LEFT JOIN ".$this->tbl_mdfund." mf ON mf.fid=f.id - $wheresql - ORDER BY mf.place DESC"; - }else{ - $sql = "SELECT f.* FROM ".$this->tbl_fund." f $wheresql ORDER BY f.id DESC"; - } - $rs = $this->db->query($sql); - $rows = $rs->fetchAll(); - return $rows; - } - } - - function add($data) - { - include_once("helper/dbh.php"); - $dbh = new dbh($this->db); - return $dbh->insert($this->tbl_fund,$data); - } - - function update($data,$id,$uid=0) - { - if(!is_numeric($id)) - { - return "参数错误"; - } - - if(!empty($uid)) - { - if(!is_numeric($uid)) - { - return "参数错误"; - } - $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid AND id=$id"; - $rs = $this->db->query($sql); - $row = $rs->fetch(); - if(empty($row['id'])) - { - return "您无权修改这条记录"; - } - $condition = " id=$id AND userid=$uid "; - }else{ - $condition = " id=$id "; - } - - include_once("helper/dbh.php"); - $dbh = new dbh($this->db); - - $state = $dbh->update($this->tbl_fund,$data,$condition,true); - - if( $state == true) - { - return true; - }else{ - return $state; - } - } - - function delete($id,$uid=0){ - if(!is_numeric($id)) - { - return "参数错误"; - } - if(!empty($uid)) - { - if(!is_numeric($uid)) - { - return "参数错误"; - } - $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid AND id=$id"; - $rs = $this->db->query($sql); - $row = $rs->fetch(); - if(empty($row['id'])) - { - return "您无权修改这条记录"; - } - $condition = " id=$id AND userid=$uid "; - }else{ - $condition = " id=$id "; - } - $sql = "DELETE FROM ".$this->tbl_fund." WHERE $condition"; - return $this->db->exec($sql); - } - - function mfdelete($id){ - $sql = "DELETE FROM ".$this->tbl_mdfund." WHERE id=$id"; - return $this->db->exec($sql); - } - - function view($id){ - $sql = "SELECT * FROM ".$this->tbl_fund." WHERE id=$id"; - $rs = $this->db->query($sql); - $row = $rs->fetch(); - return $row; - } - - function getMdFunds($uuid){ - $sql = "SELECT * FROM ".$this->tbl_mdfund." WHERE uuid='$uuid'"; - $rs = $this->db->query($sql); - $rows = $rs->fetchAll(); - - $fids = array(); - foreach($rows as $k=>$v) - { - $fids[] = $v['fid']; - } - return $fids; - } - - function addToMdfund($uuid,$id,$order){ - if(empty($order)) - { - $order = 0; - } - $data = array( - 'uuid'=>$uuid, - 'fid'=>$id, - 'place'=>$order - ); - include_once("helper/dbh.php"); - $dbh = new dbh($this->db); - return $dbh->insert($this->tbl_mdfund,$data); - } - - function changeorder($id,$order){ - if(!is_numeric($id) || !is_numeric($order)) - { - return false; - } - - $data = array( - 'place'=>$order - ); - - include_once("helper/dbh.php"); - $dbh = new dbh($this->db); - $state = $dbh->update($this->tbl_mdfund,$data,"id=$id",true); - - if( $state == true) - { - return true; - }else{ - return $state; - } - } - - function addPaginator($data,$ctl,Zend_Controller_Request_Abstract $request) - { - $page = $request->getParam('page'); - - $paginator = Zend_Paginator::factory($data); - $paginator->setCurrentPageNumber($page); - $paginator->setItemCountPerPage(12); - $paginator->setView($ctl); - Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); - $ctl->paginator = $paginator; - } - - function _getParams(Zend_Controller_Request_Abstract $request) - { - $data = array( - 'title' => trim($request->getParam('title')), - 'fund_id' => trim($request->getParam('fund_id')), - 'fund_type' => trim($request->getParam('fund_type')), - 'title_en' => trim($request->getParam('title_en')), - 'fund_type_en' => trim($request->getParam('fund_type_en')), - ); - return $data; - } - -} +db = $db; + $this->auth = $auth; + } + + function fetch($uuid = "",$include = true,$uid=0){ + if(empty($uuid)) + { + if(empty($uid)) + { + $sql = "SELECT * FROM ".$this->tbl_fund." ORDER BY id DESC"; + }else{ + $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid ORDER BY id DESC"; + } + $rs = $this->db->query($sql); + $rows = $rs->fetchAll(); + return $rows; + }else{ + $wheresql = array(); + + if($include) + { + $wheresql[] = " mf.uuid='$uuid' "; + }else{ + $fids = $this->getMdFunds($uuid); + if(count($fids)>0) + { + $wheresql[] = ' f.id NOT IN ('.join(",",$fids).')'; + } + } + if(!empty($uid) && is_int($uid)) + { + $wheresql[] = " f.userid='$uid' "; + } + + if(count($wheresql)>0) + { + $wheresql = " WHERE ".join(" AND ",$wheresql); + }else{ + $wheresql = ""; + } + + if($include) + { + $sql = "SELECT f.*,mf.place,mf.id as mfid FROM ".$this->tbl_fund." f + LEFT JOIN ".$this->tbl_mdfund." mf ON mf.fid=f.id + $wheresql + ORDER BY mf.place DESC"; + }else{ + $sql = "SELECT f.* FROM ".$this->tbl_fund." f $wheresql ORDER BY f.id DESC"; + } + $rs = $this->db->query($sql); + $rows = $rs->fetchAll(PDO::FETCH_BOTH); + return $rows; + } + } + + function add($data) + { + include_once("helper/dbh.php"); + $dbh = new dbh($this->db); + return $dbh->insert($this->tbl_fund,$data); + } + + function update($data,$id,$uid=0) + { + if(!is_numeric($id)) + { + return "参数错误"; + } + + if(!empty($uid)) + { + if(!is_numeric($uid)) + { + return "参数错误"; + } + $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid AND id=$id"; + $rs = $this->db->query($sql); + $row = $rs->fetch(); + if(empty($row['id'])) + { + return "您无权修改这条记录"; + } + $condition = " id=$id AND userid=$uid "; + }else{ + $condition = " id=$id "; + } + + include_once("helper/dbh.php"); + $dbh = new dbh($this->db); + + $state = $dbh->update($this->tbl_fund,$data,$condition,true); + + if( $state == true) + { + return true; + }else{ + return $state; + } + } + + function delete($id,$uid=0){ + if(!is_numeric($id)) + { + return "参数错误"; + } + if(!empty($uid)) + { + if(!is_numeric($uid)) + { + return "参数错误"; + } + $sql = "SELECT * FROM ".$this->tbl_fund." WHERE userid=$uid AND id=$id"; + $rs = $this->db->query($sql); + $row = $rs->fetch(); + if(empty($row['id'])) + { + return "您无权修改这条记录"; + } + $condition = " id=$id AND userid=$uid "; + }else{ + $condition = " id=$id "; + } + $sql = "DELETE FROM ".$this->tbl_fund." WHERE $condition"; + return $this->db->exec($sql); + } + + function mfdelete($id){ + $sql = "DELETE FROM ".$this->tbl_mdfund." WHERE id=$id"; + return $this->db->exec($sql); + } + + function view($id){ + $sql = "SELECT * FROM ".$this->tbl_fund." WHERE id=$id"; + $rs = $this->db->query($sql); + $row = $rs->fetch(); + return $row; + } + + function getMdFunds($uuid){ + $sql = "SELECT * FROM ".$this->tbl_mdfund." WHERE uuid='$uuid'"; + $rs = $this->db->query($sql); + $rows = $rs->fetchAll(); + + $fids = array(); + foreach($rows as $k=>$v) + { + $fids[] = $v['fid']; + } + return $fids; + } + + function addToMdfund($uuid,$id,$order){ + if(empty($order)) + { + $order = 0; + } + $data = array( + 'uuid'=>$uuid, + 'fid'=>$id, + 'place'=>$order + ); + include_once("helper/dbh.php"); + $dbh = new dbh($this->db); + return $dbh->insert($this->tbl_mdfund,$data); + } + + function changeorder($id,$order){ + if(!is_numeric($id) || !is_numeric($order)) + { + return false; + } + + $data = array( + 'place'=>$order + ); + + include_once("helper/dbh.php"); + $dbh = new dbh($this->db); + $state = $dbh->update($this->tbl_mdfund,$data,"id=$id",true); + + if( $state == true) + { + return true; + }else{ + return $state; + } + } + + function addPaginator($data,$ctl,Zend_Controller_Request_Abstract $request) + { + $page = $request->getParam('page'); + + $paginator = Zend_Paginator::factory($data); + $paginator->setCurrentPageNumber($page); + $paginator->setItemCountPerPage(12); + $paginator->setView($ctl); + Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); + $ctl->paginator = $paginator; + } + + function _getParams(Zend_Controller_Request_Abstract $request) + { + $data = array( + 'title' => trim($request->getParam('title')), + 'fund_id' => trim($request->getParam('fund_id')), + 'fund_type' => trim($request->getParam('fund_type')), + 'title_en' => trim($request->getParam('title_en')), + 'fund_type_en' => trim($request->getParam('fund_type_en')), + ); + return $data; + } + +}