This commit is contained in:
wangjinlei
2024-08-19 16:30:50 +08:00
parent 63f0bb503c
commit 0cc5aa6e5f
2 changed files with 79 additions and 5 deletions

View File

@@ -110,7 +110,7 @@ function getArticleMains($article_id)
}
function grabCiteFromCrossref($article_id,$act="zd"){
$article_obj = Db::name("article_id");
$article_obj = Db::name("article");
$article_cite_obj = Db::name("article_cite");
$article_info = $article_obj->where("article_id",$article_id)->find();
$cite_days = (time()-$article_info['cite_time'])/3600*24;
@@ -126,6 +126,8 @@ function grabCiteFromCrossref($article_id,$act="zd"){
$articleEntity['doi'] = $v['doi'];
$articleEntity['journal_name'] = $v['journal_title'];
$articleEntity['article_name'] = $v['article_title'];
$articleEntity['author'] = formateAuthor(isset($v['contributors']['contributor'])?$v['contributors']['contributor']:null);
$articleEntity['vol'] = formateVol($v);
$articleEntity['ctime'] = time();
$articleEntity['state'] = 1;
$article_cite_obj->insert($articleEntity);
@@ -134,10 +136,47 @@ function grabCiteFromCrossref($article_id,$act="zd"){
}
function formateVol($v){
$flag = "";
if(isset($v['year'])) {
$flag .= $v['year']." ";
}
if(isset($v['volume'])) {
$flag .= $v['volume']." ";
}
if(isset($v['first_page'])) {
$flag .= $v['first_page']." ";
}
if(isset($v['item_number'])&&!isset($v['first_page'])) {
$flag .= $v['item_number']." ";
}
if(isset($v['issue'])) {
$flag .= $v['issue']." ";
}
return trim($flag);
}
function formateAuthor($list){
$flag = '';
if (count($list)<=3){
foreach ($list as $v){
$flag .= $v['given_name']." ".$v['surname'].", ";
}
$flag = trim(trim($flag),",");
}else{
for ($i=0;$i<3;$i++){
$flag .= $list[$i]['given_name']." ".$list[$i]['surname'].", ";
}
$flag .= "et al";
}
return $flag;
}
function pCrossrefCite($article_id){
$article_obj = Db::name("article_id");
$article_obj = Db::name("article");
$article_info = $article_obj->where("article_id",$article_id)->find();
$get_url = "https://doi.crossref.org/servlet/getForwardLinks";
$get_data["usr"] = "books@tmrjournals.com/tmrp";
@@ -152,7 +191,8 @@ function pCrossrefCite($article_id){
if(isset($re['journal_cite'])){
$rr[] = $re['journal_cite'];
}else{
foreach ($re as $k){
foreach ($re as $kk=>$k){
if(!isset($k['journal_cite'])){continue;}
$rr[] = $k['journal_cite'];
}
}