修改DOI中相关操作

This commit is contained in:
Li Jianxuan 2013-04-23 10:09:58 +00:00
parent 227a0ca119
commit 0af6ccfe94
3 changed files with 3841 additions and 3695 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +1,153 @@
<?php <?php
class Doi extends Zend_Controller_Plugin_Abstract class Doi extends Zend_Controller_Plugin_Abstract
{ {
private $db; //传入PDO对象. private $db; //传入PDO对象.
private $auth = NULL; //Zend_Auth 对象 private $auth = NULL; //Zend_Auth 对象
//使用到的公共变量 //使用到的公共变量
public $tbl_doi = "datadoi"; public $tbl_doi = "datadoi";
function __construct($db) function __construct($db)
{ {
$this->db = $db; $this->db = $db;
} }
function fetch() function fetch()
{ {
$sql = "SELECT * FROM ".$this->tbl_doi." ORDER BY id DESC"; $sql = "SELECT * FROM ".$this->tbl_doi." ORDER BY id DESC";
$rs = $this->db->query($sql); $rs = $this->db->query($sql);
$rows = $rs->fetchAll(); $rows = $rs->fetchAll();
return $rows; return $rows;
} }
function view($id) function add($data){
{ include_once("helper/dbh.php");
if(is_numeric($id)) $dbh = new dbh($this->db);
{ $this->data_process_in($data);
$sql = "SELECT * FROM ".$this->tbl_doi." WHERE id=$id"; include_once("helper/view.php");
}else{ view::Dump($data);
$sql = "SELECT * FROM ".$this->tbl_doi." WHERE uuid='$id'"; return $dbh->insert($this->tbl_doi,$data);
} }
$rs = $this->db->query($sql);
$row = $rs->fetch(); function update($data,$uuid){
return $row; $doi_info = $this->view($uuid);
} if(!$doi_info)
{
function _getParams(Zend_Controller_Request_Abstract $request) $this->data_process_in($data);
{ include_once("helper/view.php");
$data = array( view::Dump($data);
'doi' => trim($request->getParam('doi')), include_once("helper/dbh.php");
'uuid' => trim($request->getParam('uuid')), $dbh = new dbh($this->db);
'publisher' => trim($request->getParam('publisher')), if(is_numeric($uuid))
'url' => trim($request->getParam('url')), {
'title' => trim($request->getParam('title')), $condition = " id=$uuid ";
'info'=>$_POST['info'] }else{
); $condition = " uuid='$uuid' ";
return $data; }
} $state = $dbh->update($this->tbl_doi,$data,$condition,true);
} if( $state == true)
{
return true;
}else{
return $state;
}
}else{
$this->add($data);
}
}
function data_process_in(&$data){
$authors = array();
$orgs = array();
foreach($data['info'] as $k=>$v)
{
$authors[$v['order']] = $v['author'];
$orgs[$v['order']] = $v['organization'];
}
$authors = "{".join(",",$authors)."}";
$orgs = "{".join(",",$orgs)."}";
$data['authors'] = $authors;
$data['organization'] = $orgs;
unset($data['info']);
}
function view($id)
{
if(is_numeric($id))
{
$sql = "SELECT * FROM ".$this->tbl_doi." WHERE id=$id";
}else{
$sql = "SELECT * FROM ".$this->tbl_doi." WHERE uuid='$id'";
}
$rs = $this->db->query($sql);
$row = $rs->fetch();
return $row;
}
function _getParams(Zend_Controller_Request_Abstract $request)
{
$data = array(
'doi' => trim($request->getParam('doi')),
'uuid' => trim($request->getParam('uuid')),
'publisher' => trim($request->getParam('publisher')),
'url' => trim($request->getParam('url')),
'title' => trim($request->getParam('title')),
'info'=>$this->checkinfo($_POST['info'])
);
if(!is_array($data['info'])){
return $data['info'];
}else{
$data['info'] = $this->sksort($data['info'],"order",SORT_DESC);
}
return $data;
}
function checkinfo($info){
if(!is_array($info)){
return NULL;
}
foreach($info as $k=>$v)
{
if(empty($v['author']) && empty($v['organization']) && empty($v['order']))
{
unset($info[$k]);
}else{
if(empty($v['author']))
{
return "请输入 $k 中的作者";
}
if(empty($v['organization']))
{
return "请输入 $k 中的单位";
}
if(empty($v['order']))
{
return "请输入 $k 中的排序";
}
}
}
return $info;
}
function sksort($array,$key,$type=SORT_DESC) {
$sortArray = array();
foreach($array as $v){
foreach($v as $key=>$value){
if(!isset($sortArray[$key])){
$sortArray[$key] = array();
}
$sortArray[$key][] = $value;
}
}
if(array_multisort($sortArray[$key],$type,$array))
{
return $array;
}else{
return $array;
}
}
}

View File

@ -58,4 +58,25 @@ class view extends Zend_Controller_Plugin_Abstract
$html.= '</div>'."\r\n"; $html.= '</div>'."\r\n";
return $html; return $html;
} }
static function User($param){
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity())
{
$user = $auth->getIdentity();
return $user->$param;
}else{
return false;
}
}
static function Dump($data,$exit = true){
echo "<pre>";
var_dump($data);
echo "</pre>";
if($exit)
{
exit();
}
}
} }